Пример #1
0
 private void endgame(elements_of_game winner)
 {
     duck.GetComponent <Duck>().game_is_active = false;
     duck.GetComponent <Duck>().game_over(winner);
     //foreach(GameObject it in active_elements)
     //{
     //  Destroy(it);
     //}
 }
Пример #2
0
    private void Start()
    {
        matrix          = new elements_of_game[3, 3];
        active_elements = new List <GameObject>();
        help_bar        = null;
        int i, j;

        for (i = 0; i < 3; i++)
        {
            for (j = 0; j < 3; j++)
            {
                matrix[i, j] = elements_of_game.NOTHING;
            }
        }
        human = turn = elements_of_game.CROSS;
        robot = elements_of_game.CIRCLE;
        duck.GetComponent <Duck>().welcome();
        Edward = new AI(human, robot);
    }
Пример #3
0
    private void spawn_object(Vector3 spawn_position)
    {
        spawn_position = get_spawn_position(board_position);
        matrix[(int)board_position.x, (int)board_position.y] = turn;


        if (turn == elements_of_game.CROSS)
        {
            GameObject help = Instantiate(cross, spawn_position, Quaternion.identity);
            active_elements.Add(help);
            turn = elements_of_game.CIRCLE;
        }
        else if (turn == elements_of_game.CIRCLE)
        {
            GameObject help = Instantiate(circle, spawn_position, Quaternion.identity);
            active_elements.Add(help);
            turn = elements_of_game.CROSS;
        }
    }
Пример #4
0
    public void game_over(elements_of_game winner)
    {
        //player wins
        if (winner == elements_of_game.CROSS)
        {
            index = 9;
        }

        //AI wins
        else if (winner == elements_of_game.CIRCLE)
        {
            index = 7;
        }

        //Draw
        else
        {
            index = 8;
        }
        show_text();
        function_timer.create(clear_text, 5f);
    }
Пример #5
0
    int minimax(elements_of_game[,] board, int depth, elements_of_game player)
    {
        elements_of_game victory = who_win(board);

        if (victory == me)
        {
            return(10 - depth);
        }

        if (victory == human)
        {
            return(-10 + depth);
        }

        if (is_board_full(board) == true)
        {
            return(0);
        }

        if (player == me)
        {
            int best = -1000;

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (board[i, j] == elements_of_game.NOTHING)
                    {
                        board[i, j] = me;

                        best = Math.Max(best,
                                        minimax(board, depth + 1, human));

                        board[i, j] = elements_of_game.NOTHING;
                    }
                }
            }
            return(best);
        }
        else
        {
            int best = 1000;

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (board[i, j] == elements_of_game.NOTHING)
                    {
                        board[i, j] = human;

                        best = Math.Min(best,
                                        minimax(board, depth + 1, me));

                        board[i, j] = elements_of_game.NOTHING;
                    }
                }
            }
            return(best);
        }
    }
Пример #6
0
 public AI(elements_of_game human_player, elements_of_game AI_player)
 {
     this.human = human_player;
     this.me    = AI_player;
 }