Categories:

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

今回僕が作った勝敗判定プログラムは、すべてのマスを一つづつ対象にして、そこから全八方向に一マスづつ進んでいき、同じ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

変更点なし。

2 Responses

  1. Awesome blog! Is your theme custom made or did you download it from somewhere?
    A theme like yours with a few simple tweeks would really make my
    blog shine. Please let me know where you got your design. Thanks

    Area 52 Delta 8 THC – Area 52 Delta 8 THC

    Area 52 Delta 8 THC – delta 8 THC for sale area 52

    delta 8 THC area 52 – area 52 delta 8 THC products

    buy delta 8 THC area 52 – delta 8 THC for sale area 52

    area 52 delta 8 THC products – Area 52 delta 8 carts

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です