public override void StartGame() { board.InitBoard(); mctsPlayer.SetPlayerInd(Connect4Board.players[playerFirst ? 1 : 0]); mctsPlayer.ResetPlayer(); UpdateBoard(); thisTurn = Connect4PieceType.Yellow; aiMoved = false; StartCoroutine("StartGameLater"); }
private void UpdateBoard() { for (int i = 0; i < pieces.Length; i++) { if (board.states.ContainsKey(i)) { Connect4PieceType pieceType = board.states[i] == Connect4Board.players[0] ? Connect4PieceType.Yellow : Connect4PieceType.Red; pieces[i].SetPiece(pieceType); } else { pieces[i].SetPiece(Connect4PieceType.White); } } }
public void SetPiece(Connect4PieceType type) { switch (type) { case Connect4PieceType.White: spriteRenderer.color = Color.white; break; case Connect4PieceType.Yellow: spriteRenderer.color = Color.yellow; break; case Connect4PieceType.Red: spriteRenderer.color = Color.red; break; } }
private void EndThisTurn(int move) { // 判断是否有胜负 board.DoMove(move); UpdateBoard(); object[] endResult = board.GameEnd(); bool end = (bool)endResult[0]; int winner = (int)endResult[1]; if (end) { EndGame(winner); return; } // 进入下一步 thisTurn = (thisTurn == Connect4PieceType.Yellow ? Connect4PieceType.Red : Connect4PieceType.Yellow); }