public void Update(GameTileState state) { lastValue = nextValue; lastTop = nextTop; lastLeft = nextLeft; nextValue = state.GetValue(); nextTop = (GameControl.TileSize + GameControl.TilePadding) * state.GetRow(); nextLeft = (GameControl.TileSize + GameControl.TilePadding) * state.GetColumn(); step = 0; }
private static void SpawnTile(PoweredTile[,] board) { List <GameTileState> holes = new List <GameTileState>(); for (int i = 0; i < board.GetLength(0); i++) { for (int j = 0; j < board.GetLength(0); j++) { if (board[i, j] == null) { holes.Add(new GameTileState(0, i, j)); } } } if (holes.Count > 0) { Random random = new Random(); GameTileState hole = holes[random.Next(holes.Count)]; board[hole.GetRow(), hole.GetColumn()] = new PoweredTile(new GameTile(), random.NextDouble() < 0.9 ? 1 : 2); } }
private static GameTileState RotateClockwise(GameTileState tileState, int size) { return(new GameTileState(tileState.GetPower(), size - 1 - tileState.GetColumn(), tileState.GetRow())); }