private void Redraw(IGameHandler handler) { handler.Clear(); foreach (var cell in _cells.AsEnumerable()) { int i = cell.Key.Item1 - _players[0].ViewportLeft; int j = cell.Key.Item2 - _players[0].ViewportTop; if (0 > i || i >= CellsCount || 0 > j || j >= CellsCount) { continue; } if (cell.Value == CellType.X) { handler.DrawX(i, j); } else { handler.DrawZero(i, j); } } }
private void UpdateCell(int i, int j, string playerId, IGameHandler handler) { if (_isFirstPlayerTurn && _players[0].PlayerId == playerId && CheckMovePermissibility(i, j, handler)) { _cells[i, j] = CellType.Zero; handler.DrawZero(i - _players[0].ViewportLeft, j - _players[0].ViewportTop); _isFirstPlayerTurn = false; } else if (!_isFirstPlayerTurn && _players[1].PlayerId == playerId && CheckMovePermissibility(i, j, handler)) { _cells[i, j] = CellType.X; handler.DrawX(i - _players[0].ViewportLeft, j - _players[0].ViewportTop); _isFirstPlayerTurn = true; } else { handler.BroadcastMessage(true, "Please, wait... it's not your turn"); } }