示例#1
0
    public void SetTileType(GameTile.TileType type)
    {
        _tileType = type;

        switch (type)
        {
        case TileType.Blank:
            GetComponent <SpriteRenderer>().sprite = blankTexture;
            break;

        case TileType.O:
            GetComponent <SpriteRenderer>().sprite = textureO;
            break;

        case TileType.X:
            GetComponent <SpriteRenderer>().sprite = textureX;
            break;
        }
    }
示例#2
0
文件: Game.cs 项目: micsun/TicTacToe
    public void Step(GameTile.TileType type)
    {
        _moves++;

        if (checkWin(GameTile.TileType.X))
        {
            statusText.guiText.text = "You win!";
            _gameEnd = true;
        }
        else if (checkWin(GameTile.TileType.O))
        {
            statusText.guiText.text = "You lose!";
            _gameEnd = true;
        }
        else if (checkTie())
        {
            statusText.guiText.text = "Tie!";
            _gameEnd = true;
        }
        else if (type != GameTile.TileType.O)
        {
            computerMove();
        }
    }
示例#3
0
文件: Game.cs 项目: micsun/TicTacToe
    private bool checkWin(GameTile.TileType tileType)
    {
        // Check for horizontal win
        for (var i = 0; i < GRID_MAX; i++)
        {
            for (var j = 0; j < GRID_MAX; j++)
            {
                if (tiles[i, j].GetComponent <GameTile>().GetTileType() != tileType)
                {
                    break;
                }

                if (j == GRID_MAX - 1)
                {
                    return(true);
                }
            }
        }

        // Check for vertical win
        for (var i = 0; i < GRID_MAX; i++)
        {
            for (var j = 0; j < GRID_MAX; j++)
            {
                if (tiles[i, j].GetComponent <GameTile>().GetTileType() != tileType)
                {
                    break;
                }

                if (j == GRID_MAX - 1)
                {
                    return(true);
                }
            }
        }

        // Check for diagnol win
        for (var i = 0; i < GRID_MAX; i++)
        {
            if (tiles[i, i].GetComponent <GameTile>().GetTileType() != tileType)
            {
                break;
            }

            if (i == GRID_MAX - 1)
            {
                return(true);
            }
        }

        for (var i = 0; i < GRID_MAX; i++)
        {
            if (tiles[GRID_MAX - 1 - i, i].GetComponent <GameTile>().GetTileType() != tileType)
            {
                break;
            }

            if (i == GRID_MAX - 1)
            {
                return(true);
            }
        }

        return(false);
    }