今回つくるゲーム
難易度
この記事ではそれぞれのコードの意味を解説していきたいと思いますので作り方の詳細はYouTube動画で確認してください。
まずゲームをプレイしてみましょう。
すべてのコード
今回のゲームのすべてのコードはこちらにあります。この記事ではこのコードの意味を解説していきます。
オセロゲームの仕組み
まずは、今回オセロゲームを作る上でポイントとなるふたつの仕組みを解説します。
1つ目は盤面の管理です。オセロの盤面は8×8ですが今回は周りの枠も含めて10×10の盤面を作りひとつづつのマスに番号をつけます。そして枠リスト、黒リスト、白リストという3つのリストを作成しそれぞれのマスの状態を管理していきます。
そして2つ目のポイントが裏返す考え方です。以下の図のように、盤面に黒いオセロを置いたときに、8方向を確認し、裏返せるか裏返せないかを確認します。実際にオセロをするときもそのように考えていますよね。それをプログラムで書いていくということです。
マスのコード
ではまずマスのコードを解説していきます。
コスチューム
マスのコスチュームはこのように4種類のコスチュームを作ります。大きさは32×32の正方形になるようにつくるときれいに並びます。この後、クローンで盤面を作っていきますが、それぞれのマスの状態によってコスチュームが変わっていくという仕組みになります。
盤面を並べるコード
ではマスのスプライトのコードについて解説していきます。
まず、盤面を並べるところからです。以下が最初の状態を作るコードです。クローンを100個作り、それぞれに番号をつけ、10×10に並べていきます。そして、それぞれのマス番号がどのリストに入っているかでコスチュームを変えます。最初に45と56を白リスト、46と55を黒リストに入れているのは一番最初の状態を作るためです。
また、枠リストについては、別で作っておくようにしましょう。仕組み①で解説した枠の番号をリストに追加していくだけです
オセロを盤面に置く
つぎにオセロを盤面に置けるようにします。マスをクリックするとそこにオセロを置けるようにするので、以下のようにコードを書きます。前提として”オセロが置かれてない”場所にしかおけず、黒のターンだと、押されたマスの番号を黒リストに追加し、リバースできるかを調査します。リバースできればターンを白に変更します。
リバースする
ではリバースはどのように行うのか。それが以下の黒リバース・白リバースの定義に書かれています。さきほどの仕組み②で解説した、8方向を確認していくプロセスがここに書かれているのです。詳しくは動画で確認してください。
勝負をつける
そして最後に勝負をつけます。黒リスト・白リストそれぞれの長さがつまり、獲得した色の数になるので、その合計が64になるとゲーム終了で、その時点で多い方が勝ちということになります。リアルタイムに黒と白のそれぞれの数を表示できるようにもしておきましょう。
パスできるようにする
ここまでで、基本的にオセロゲームは完成ですが、オセロが置けない時はパスができるようにしましょう。パスというボタンを別に作り、このようにコードを書きます。
また、勝負がついたときにどちらの勝ちかを表示できるようにもしましょう
これでオセロは完成です!おつかれさまでした!