スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

事例研究part2

週に2時間分正規の授業で事例研究があって
それとは別に作業ができる時間が週に6時間あります
プログラムは考えてしまえば後は打ち込むだけなので、家でいろいろ考えて
学校では打ち込み作業 これが理想の形ですね
現実には怠惰という宿敵が居まして
勝ったり負けたりしてます

と、前にこの記事書くまでは勝ち越してたんですけど
今日まで負け続けてました;;
というのも、オセロをとりあえず作ろう・・と
しかし、コマの動きを画像でどうにかしようとしてそこでつまづき
萎えてました
その動きとは、ImageIconに白、黒、無しの画像をそれぞれ読み込み
必要に応じて張り替える といった考え方です
授業でも画像処理は習ったのですが、いまいちでしたね
なので、そもそも画像で処理しようとすることが間違ってるのか?
俺がわけわからんことやってるのか?
といったところでした

で、今日はその2時間がある日
はぁ~今週の2時間は無駄になりそうだな~と思いつつAPIでJLabelを開いてみると
setIconなんて便利なメソッドが用意されてました!
ためしに色んなマスにコマを配置してみたり、これは希望が見えてきた・・ところが
ボードゲームなんだから、マスをクリックしてコマ置きたいですよね?
64マス全てにアクションリスナー登録をするのはやっぱり嫌だったので
MouseEventでなんかないかな~と
getComponentこれなんか使えそう、でも使えなかった
setSourceよくわかんないけど↑のと同じ値が返されてる
実は一番最初に考えてた、クリックした座標を取得して、それ分岐する
これしかないかなぁ、と渋々その方向で考えてると
いい方法思いついたんですよ!

クリックしたx、y座標を取得する

取得した座標からフィールド外でウィンドウ内の周りの部分、この値を引いた値から
画像の縦幅、横幅で割る

その商を配列で使う

という考え方です
横座標は20から、縦座標は130から88×88の画像を8×8個配置してるので
取得したx座標からは20を引き88で割る
yも同様に130を引き88で割る
JLabelの配列はicon_labelで定義してます
x = (me.getX() - 20) / 88;
y = (me.getY() - 130) / 88;
icon_label[x][y].setIcon(koma);
これで張替えができそうですね
次に白黒判定ですが、これはフラグでどうにかします
そこで、張り替えメソッドでも作ってみようかな~と思いました
引数にx、y、と白黒フラグ
ifで分岐してみいいような気もしますけどね!せっかくだしメソッドも作ってみたいんです

後は色んな判定できればオセロ完成です
ソケット通信を使ってネットワークでなんかやりたいな~ってコンセプトなので
これで終わりじゃないですけどね!

事例研究part1

学校の事例研究(卒業制作みたいなの?)で何かプログラムを作れ!と
その過程でも書いていこうかな~なんて思ってます

java使ってさくさくっと作っちゃおうと思っていたところ
ネットで対戦できるオセロや五目並べ、あわよくばダイヤモンドゲームだっけ?あんなのも
やってみるつもりが、初歩的なところで躓いちゃってます
とりあえずオセロ作って、チャット機能加えて・・って順序に作って行く予定です
それと、TwitterのAPIが公開されているというのを最近知りまして
こいつも実装できたら面白いかな~って思います
とかいってTwitterやってないんですけどね、実装するならID取得が先ですか・・

で、どこで躓いたかというと
オセロのコマを画像でどうにかしようと思ってるんですけど
うまくいかないんですよね、困っちゃいますよ・・
画像の描画はこんな感じ

private ImageIcon black_icon = new ImageIcon("Black.jpg"); //画像を読み込む
private JPanel panel = new JPanel(); //パネルを生成
JLabel label1 = new JLabel(black_icon); //ラベルを生成と同時に画像を配置
add(panel); //パネルをadd
panel.setBounds(40,40,80,80); //画像が縦横80ピクセル
panel.add(label1); //パネルにラベルをadd

ってな具合です
画像はソースコードと同じ場所にあるのでファイル名を指定してます
これさえできてしまえば後はゲームを作っていくだけなんですけどねえ、困ったもんです
簡単に説明すると
ImageIconをラベルに貼り付けて、それをパネルにadd
ですかね、自分自身java初心者なのでこの説明であってるかもわからないです・・
そもそも画像でどうにかしようと思ってるのが間違いだったりしそうですよね
別の手も考えてあります、それは
パネルに白、黒、フィールドと同じ色の丸を描画することで
コマの配置を実現できるかな?って案です
それでもいいような気がするんですけど、成功手前まで来てるような気がして
なかなか画像の案も捨てられずに居ます

一応、こんな感じで作っていくつもりです
othello1
緑の四角はパネルを2次元配列で生成して
そこに色と大きさを設定しただけです
後は2重ループで配置ですね
パネルを2次元配列にしたことで、オセロ盤の8×8とうまくあわせられるんじゃないかな~って考えです
うまくあわさるといいですけどね!

Javaでメイプルのダメージ計算機4

とりあえずは完成です!
ブログに貼れない様なので
bhjyajd@livedoor.com
までメールくれればjarファイルで渡せると思います
気がつけば・・ですけど
スカイプやらチャットやらで催促してくれればしっかり反応します!
できるだけ気づく努力します

~~~~仕様など~~~~
まず、javaプログラミング初心者の作った物なので期待はしないでください

全部に0以上の数字を入れてください
クリアボタンを押すと取り合えずは最低限計算できる入力がされます
要は初期化機能です
これ書いてて思い出したんですけど、マイナスの数字いれたらどうなるか知らないです;;
多分計算結果がおかしくなるだけだと思いますが・・
ちなみに半角数字でお願いします、全角も試すの忘れてました
pcに害のでるようなエラーは出ないと思いますけど、出ちゃってもしりません!

投げの計算式なんですが、単純にステータスを乗算のようですね
なのでその計算式用の項目は削除しました
各項目に入力すると計算ボタンで計算してくれます

クルセイダー、パラディンのチャージ系とダークオーラ
これらは全て乗算した上で攻撃力+%に入力すれば正しい結果が出ると思います
例:潜在の攻撃力%(9)ディバインチャージ(140%)サンダーチャージ(125%)
  1.09 * 1.4 * 1.25 =1.9075 入力値は90.75
で、いいと思います
すみません、計算式あんまりわかってないです;;

javaの最新が7なんですが、開発環境が5か6だったので
ソースコード抽出してコンパイルすると警告でる可能性があります
ちなみに、jarファイルがzip形式のようなものらしいので
解凍するとソースコードでてきます
ソースコードの拡張子はjavaです

最初に書きましたが、初心者なので突っ込みどころ満載のプログラムだと思います
気づいた点は言ってもらえると次に生かします!
~~~~~~~~~~

ところで最近学校で知ったんですけど
eclipseって開発環境、すごいですね
すごいので勉強にならないと、授業では禁止なんですが;;
早速自宅のpcにインストールして、ついでに日本語化もしました
ほんとにチートツールみたいです
ソース書いていく授業だったので、慣れるのに苦労しそうですけど
半年後くらいで仕事になるものなので、慣れておきたいですね
javaだけでなく、c++とかいろいろと対応してるようです
まるでVBでプログラミングしてるようでした

この環境のおかげで自分で作れる物の範囲が広がったと思います
このほかにもしょーもないプログラム作って練習にしようと考えてます!
もちろん、この計算機もここで終わりにせず
バージョンアップみたいなこともやりたいですね

環境に慣れるのも大事なんですが、そもそも基礎がグラグラなので
APIリファレンスをちゃんと見れるようになったり
この程度の計算機くらい何も見ないで作れるようにしたいです
実はこの計算機、今年の5月あたりの授業で作れるような物なんです・・
復習がてら暇つぶし 暇つぶしがてら復習
まぁそんなのどっちでもいいです、復習です!

Javaでメイプルのダメージ計算機3

いろいろやること考えると萎えちゃって投げ出したんですが
つい昨日思いついたのでこんな感じで作り直しました
DamegeEx
こんな感じ
シンプルなのにかなり汎用性があります
ステータスの入力は必須項目なのでどれか抜けてると何か言ってきます!
右側の項目に注目です!
スキル倍率・・250%なら250と入力
しかし使い方がいろいろあるんですよ
250%の分間に与えるダメージも計算します
1分で100回攻撃できるとします、そしたら25000と入れます
6回攻撃のファントムブローなんかも、630と入れれば解決しますね
ミライメの分を足すならば630×1.7=1071 なので1071といれます

~~~~ちょっと説明~~~~
攻撃力+%・・魔力ディスってる訳じゃないです、書くの忘れてました
単純に、2%なら2と書けばいいです
ちなみにこの攻撃力+%はステータスにそのまま乗算してるようですね

ダメージ+%・・ボスダメとか総ダメです
総ダメ+9% ボスダメ+30%なら 39と入れればいいです

クリティカル・・クリティカル最小と最大あるじゃないですか、それ入れます
最小15、最大50がデフォルト?ってきいたんですけどその辺知らないです
それとスキルの合計を入れればいいです
クリティカル最大ダメージが30あがるなら、デフォルトの50と足して80と入れます
最小も同様に

防御率・・説明不要ですよね
初期値に1といれてるのは全部のモンスターが防御率1あるらしいからです

クリアボタンで画像の状態に戻ります
計算ボタンで結果が表示されます
ちなみに、TTとかの特殊な計算式のスキルのも対応してます
weapon
投擲のLUK依存を選べばラッキーセブンとTTの計算が可能です
といっても計算式わかってないからそのうち計算できるようにします
~~~~説明おわり~~~~

職業別に分けるんじゃなくて、それを一括にしたことで
新しい武器が追加されてもすぐに対応できる作りになってます
武器の係数を配列にし、武器を選ぶコンボボックスから取得する数値と関係もたせてるので
追加された分だけそこに選択肢加えればいいだけ

かなりボリューム下がりましたけど
すっきりしたんじゃないかな~と思います
完成したらほしい人にあげます!

Javaでメイプルのダメージ計算機2

ヒーローのはとりあえず完成しました
未実装の部分を除くと大体550行になってしまいました・・
damagecalc002
これだけの内容なんですがね、Javaは仕方ないらしいです
damagecalc003
下の計算ボタンを押すとこんな風に動きます
スキルのレベルもすべて変更可能です!
damagecalc005
STR、DEX、攻撃、熟練 いずれかが未入力だと
ステータスのテキストフィールドに『未入力があります。』とでます
熟練は50をデフォルトにしてあるので計算するときの手間が少し省けます!
damagecalc006
ブランディッシュなどの複数攻撃は合計値も表示します
クリアボタンで熟練を50に戻し、他全て消去します
スキルレベルはそのままです

と、ここまでは単純に計算するだけです、自分Javaは初心者ですがこれくらいならできました
上と下にちょっと不自然な空白があると思いませんか・・?
わざとあけてあるんです
上にはこれを追加したいんです
damagecalc004
みてのとおり、計算機として動かなさそうですよね
よくわからないのですが、これ実装すると消えちゃうんです
というより、重なってしまう?よくみるとウィンドウが不自然に明るい色になってます
ちなみに何もできないこのメニューバーをつけるだけで役100行です
ヒーローだったらヒーローの計算機、パラディンだったらパラディンの計算機に変更
それだけの処理を加えるだけで恐らく200行増えそうです、恐ろしい・・;;
更に!
ヒーローだけで500行くらい使ったので、職業他にもたくさんありますね
もしかしたら5,000行とかになるんじゃないんでしょうか
damagecalc007
スキルレベルを選べるようにするのにこんな風に設定してます
行を無駄に使ってるようにも思えてしまいますが、詰めると汚くなります
見易さ大事です・・修正とかも楽ですから
決して行を稼いでるわけじゃないんです

そして下の空白
シャープアイズなど、クリティカル補正や
他職のスキルを実装するための空白です
とはいえ難しいのはクリティカルでしょうか・・
どう設定したらいいのやら
ダメージが○%上がるとかいうスキルなら楽なんですがね
とにかくも、クリティカルが実装されるのは大分先になります

更に、もう1つボタンを追加します
モンスターのデータベースをどうにか入力します、がんばります
何を知りたいかって、自分の火力もそうですが
何が1発で何が2発か、この情報を得るだけで狩りの幅は大分広がります
この1番重要そうなのがラスボスです!

コピーして貼り付けるだけと、自分で言いましたが
やっぱり時間と根気が要ります
地味な作業を続けるわけですから・・

>K
ソースコードはスカイプで送るね
特に難しいことしてないから参考になる要素が無い気がするけど

VBよりか難しいかも、というのも座標指定と大きさをプログラムで
Label1.setBound(横座標,縦座標,幅,高さ);
こうやって設定するから
レイアウトってすごく大事、名前のところに住所が表示されたりするプログラムなんて論外だからね
慣れれば関数が勝手に全部やっといてくれる、そしたら楽かもしれない!
04 | 2017/05 | 06
Su Mo Tu We Th Fr Sa
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
プロフィール

べ

Author:べ
3DSとWiiUがほしい

FC2カウンター
カテゴリ
最新記事
最新コメント
月別アーカイブ
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。