15パズル制作15パズル制作|Javaから楽しく学ぶ!ゲームプログラミング専門学校Javaから楽しく学ぶ!ゲームプログラミング専門学校ゲームプログラミングとはその名のとおりゲームのプログラムを作ることを指します。『Javaから楽しく学ぶ!ゲームプログラミング専門学校』ではゲームプログラミングについて、実際にゲームプログラムをJAVAプログラミング言語を使用し、作成していきながら詳しく解説していきます。»15パズル制作15パズル制作15パズルJavaで15パズルを作成してみます。コマの画像ファイルを用意する必要があります。自分で作成するのがめんどくさいという方は下記からダウンロードしてください。http://www.gamesite8.com/sozai/block.zipプログラム動作の流れを簡単にまとめます。Javaアプレットが読み込まれたらまず、1〜15までのコマ画像を読み込みます。コマをクリックしたら、そのコマの上下左右に空いているマスであるかを調べます。上下左右いずれかのマスが空いていれば、クリックされたコマを空いているマスへ移動させます。マスが空いていなければ何もしません。今回はメインクラスである『Num』クラスと盤上のマス情報を管理する『GridInfo』クラスの二つのクラスを作成しました。ソースファイルは下記からダウンロードできます。http://www.gamesite8.com/code/01/num.javaそれではソースコードを順に解説していきます。『num』というクラスを作成しています。...省略}Appletクラスのinitメソッドをオーバーライトしています。Javaアプレットに受け渡されたアプレット画面の横幅、縦幅を格納し、1〜15の数字が書かれた画像ファイル15個を読み込んでいます。HEIGHT);}mousePressedイベント(マウスがクリックされたときのイベント)が呼び出されたときの処理を下記に示します。ゲーム状態フラグにより処理を場合分けしています。タイトル画面時にアプレット画面がクリックされた場合、ゲーム初期化メソッド(gameInit)を呼び出しています。ゲーム中であった場合はクリックされた座標をもとめ、その座標からクリックされたコマが置いてあるマスをもとめます。グリッド情報クラス(GridInfo)のメソッドであるmoveTileメソッドを呼び出しています。moveTileメソッドではコマが移動できる場合はコマを移動させています。repaint();}paintイベント(画面を描画するイベント)が呼び出されたときの処理を下記に示します。それぞれのマスに置かれているコマを描画しています。どのマスに何番のコマが置かれているかの情報は、グリッド情報クラス(GridInfo)のメソッドであるgetTileNum(int,int)メソッドから取得しています。this);}下記からは『GridInfo』クラスを作成しています。...省略}引数で渡されるクリックしたマス目を元にwhileループ内で上下左右にコマが置かれていないマスがないかを調べています。見つかった場合はどのマスに何番のコマが置かれているかの情報を保持している『intGridFlg』2次元配列を更新し、whileループを抜けています。『intGridFlg』2次元配列を更新した場合はクリックしたマスを空にしています。blnRet;}ゲームがクリアされたかどうかを調べるメソッドです。ゲームがクリアされていたらtrueを、まだクリアしていなかったらfalseを返しています。blnRet;}次回はコマのシャッフル機能を組み込んでみます。