Exemplo n.º 1
0
 TicTacToe.Node GenerateNodeFromBoard()
 {
     TicTacToe.Node node = new TicTacToe.Node();
     for (int i = 0; i < cells.Length; i++)
     {
         node.cells[i] = cells[i].GetCurrentMark();
     }
     return(node);
 }
Exemplo n.º 2
0
    void Reset(bool doesHumanPlayerDoFirst)
    {
        foreach (var cell in cells)
        {
            cell.Reset();
        }

        result = TicTacToe.ResultType.NONE;

        if (!doesHumanPlayerDoFirst)
        {
            TicTacToe.Node node = GenerateNodeFromBoard();
            node.player = 1;
            int cellIndexChosenByComputer = miniMax.MakeComputerDecision(node, maxSearchDepth);
            cells[cellIndexChosenByComputer].DisplayMark(TicTacToeCell.MarkType.X_MARK);
        }
    }
Exemplo n.º 3
0
    void OnCellClicked(TicTacToeCell cell)
    {
        Debug.Log(GetCellIndex(cell));

        TicTacToe.Node node = GenerateNodeFromBoard();
        node.player = 1;
        if (miniMax.DoesGameFinish(node, ref result))
        {
            return;
        }

        int cellIndexChosenByComputer = miniMax.MakeComputerDecision(node, maxSearchDepth);

        cells[cellIndexChosenByComputer].DisplayMark(TicTacToeCell.MarkType.X_MARK);

        node = GenerateNodeFromBoard();
        if (miniMax.DoesGameFinish(node, ref result))
        {
            return;
        }
    }