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; } }
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(); } }
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); }