スクラッチでオセロゲームの作り方

上級

今回つくるゲーム

難易度4 out of 5 stars

今回はスクラッチでオセロゲームを作っていきます。オセロは作るのすごく難しそうに感じますが、ルールが単純なのでプログラムは意外とシンプルにできてしまうのです。是非みなさんもオセロ作りにチャレンジしてみてください。

この記事ではそれぞれのコードの意味を解説していきたいと思いますので作り方の詳細はYouTube動画で確認してください。


まずゲームをプレイしてみましょう。

youtube解説

こちらの動画ではわかりやすくゲームの作り方を解説しています。実際に作るときはこの動画を見ながら作ることをお勧めします。チャンネル登録もよろしくお願いします!

[スクラッチ]オセロの作り方(前半)

すべてのコード

今回のゲームのすべてのコードはこちらにあります。この記事ではこのコードの意味を解説していきます。

かんたんオセロ

オセロゲームの仕組み

まずは、今回オセロゲームを作る上でポイントとなるふたつの仕組みを解説します。

1つ目は盤面の管理です。オセロの盤面は8×8ですが今回は周りの枠も含めて10×10の盤面を作りひとつづつのマスに番号をつけます。そして枠リスト、黒リスト、白リストという3つのリストを作成しそれぞれのマスの状態を管理していきます。

スクラッチでオセロゲームの作り方1

そして2つ目のポイントが裏返す考え方です。以下の図のように、盤面に黒いオセロを置いたときに、8方向を確認し、裏返せるか裏返せないかを確認します。実際にオセロをするときもそのように考えていますよね。それをプログラムで書いていくということです。

スクラッチでオセロゲームの作り方2

マスのコード

ではまずマスのコードを解説していきます。

コスチューム

マスのコスチュームはこのように4種類のコスチュームを作ります。大きさは32×32の正方形になるようにつくるときれいに並びます。この後、クローンで盤面を作っていきますが、それぞれのマスの状態によってコスチュームが変わっていくという仕組みになります。

スクラッチでオセロゲームの作り方3

盤面を並べるコード

ではマスのスプライトのコードについて解説していきます。
まず、盤面を並べるところからです。以下が最初の状態を作るコードです。クローンを100個作り、それぞれに番号をつけ、10×10に並べていきます。そして、それぞれのマス番号がどのリストに入っているかでコスチュームを変えます。最初に45と56を白リスト、46と55を黒リストに入れているのは一番最初の状態を作るためです。

スクラッチでオセロゲームの作り方4

また、枠リストについては、別で作っておくようにしましょう。仕組み①で解説した枠の番号をリストに追加していくだけです

スクラッチでオセロゲームの作り方5

オセロを盤面に置く

つぎにオセロを盤面に置けるようにします。マスをクリックするとそこにオセロを置けるようにするので、以下のようにコードを書きます。前提として”オセロが置かれてない”場所にしかおけず、黒のターンだと、押されたマスの番号を黒リストに追加し、リバースできるかを調査します。リバースできればターンを白に変更します。

スクラッチでオセロゲームの作り方6

リバースする

ではリバースはどのように行うのか。それが以下の黒リバース・白リバースの定義に書かれています。さきほどの仕組み②で解説した、8方向を確認していくプロセスがここに書かれているのです。詳しくは動画で確認してください。

スクラッチでオセロゲームの作り方7
スクラッチでオセロゲームの作り方8

勝負をつける

そして最後に勝負をつけます。黒リスト・白リストそれぞれの長さがつまり、獲得した色の数になるので、その合計が64になるとゲーム終了で、その時点で多い方が勝ちということになります。リアルタイムに黒と白のそれぞれの数を表示できるようにもしておきましょう。

スクラッチでオセロゲームの作り方9

パスできるようにする

ここまでで、基本的にオセロゲームは完成ですが、オセロが置けない時はパスができるようにしましょう。パスというボタンを別に作り、このようにコードを書きます。

スクラッチでオセロゲームの作り方10
スクラッチでオセロゲームの作り方11

また、勝負がついたときにどちらの勝ちかを表示できるようにもしましょう

スクラッチでオセロゲームの作り方12
スクラッチでオセロゲームの作り方13

これでオセロは完成です!おつかれさまでした!