スポンサーサイト

上記の広告は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で分岐してみいいような気もしますけどね!せっかくだしメソッドも作ってみたいんです

後は色んな判定できればオセロ完成です
ソケット通信を使ってネットワークでなんかやりたいな~ってコンセプトなので
これで終わりじゃないですけどね!
スポンサーサイト
10 | 2011/11 | 12
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 - - -
プロフィール

べ

Author:べ
3DSとWiiUがほしい

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