五目並べの勝敗判定プログラムを作る【C#】【Unity】

五目並べの勝敗判定プログラムを作る【C#】【Unity】

五目並べでの勝敗判定プログラムはたくさんやり方がある中で、はっきりした答えがネットに見つからなかったので紹介しておきます。

今回僕が作った勝敗判定プログラムは、すべてのマスを一つづつ対象にして、そこから全八方向に一マスづつ進んでいき、同じIDを持っていた場合カウントします??? 説明が難しいので早速コードを見てください。

下準備

まず勝利判定の時に役に立つ関数を先に作ります。

Board.getNextIndex(int place, int direction)

この関数ではplace と directionを受け取り、そのplaceからdirection方向の隣マスのインデックスを返します。例えば10 x 10 の盤の場合、index 0 (盤の右上の角)の右隣はindex 1、下隣はindex 10、右下は index 11。それ以外の方向は盤の外なので-1を返します。

Board.is_allowed(int place)

この関数はシンプルで、もしも指定されたマスがまだ誰のものでもない場合はtrueを返します。

何個連続したマスがあるか調べる

Board.checkContinuous(int ID)

この関数ではさっき作ったgetNextIndexをつかって連続したマスがあるか調べ、最大連続数を返します。

マスの連続が最大5以上の場合は、is_gameDoneをtrueにして、これ以上の入力を却下している。

僕の「Unityで五目並べアプリ作ってみた」の記事から来てくれた人へ

今回作った関数を導入したことでGame.csも少し変更しています。

Game.cs

変更点は、82-93行目。

Board.cs

変更点はこの記事で追加(記述)した関数のみ。

UIOrganize.cs

変更点なし。

Gomokuカテゴリの最新記事