internal void ReadState() { List <long> output = new List <long>(3); while (_outputQueue.Count >= 3) { output.Clear(); for (int i = 0; i < 3; i++) { output.Add(_outputQueue.Dequeue()); } if (output[0] == -1 && output[1] == 0) { Score = (int)output[2]; } else { ArcadeMachineTile tile = ArcadeMachineTileFactory.GetTile((int)output[0], (int)output[1], (int)output[2]); AddTile(tile); if (tile is ArcadeMachineBallTile) { _ballXPosition = tile.X; } else if (tile is ArcadeMachineHPaddleTile) { _paddleXPosition = tile.X; } } } }
private void AddTile(ArcadeMachineTile tile) { int x = tile.X; int y = tile.Y; if (!_state.ContainsKey(y)) { _state[y] = new SortedDictionary <int, ArcadeMachineTile>(); } _state[y][x] = tile; }