public void Draw(IWriterService writerService) { writerService.Clear(); var border = new string('#', BottomRightCoordinates.X - UpperLeftCoordinates.X); writerService.SetWritePosition(UpperLeftCoordinates.Y, UpperLeftCoordinates.X); writerService.WriteLine(border); for (int i = UpperLeftCoordinates.Y + 1; i < BottomRightCoordinates.Y - 1; i++) { writerService.SetWritePosition(i, UpperLeftCoordinates.X); writerService.Write("#"); writerService.SetWritePosition(i, BottomRightCoordinates.X - 1); writerService.WriteLine("#"); } writerService.WriteLine(border); }
public void Start() { _writerService.WriteLine("Welcome to snake game!"); while (true) { if (_game != null) { break; } _writerService.WriteLine("Press enter to start. Type help to get help for the game!"); var input = _readerService.Read().ToLower(); var result = _loadSettingsStrategyFactory .GetStrategy(input) .LoadSettings(); if (!result.Loaded || result.GameSettings == null) { continue; } _cancellationToken = new CancellationTokenSource(); _gameSettings = result.GameSettings; _game = BeginGame(_gameSettings, PauseTokenSource.Token, _cancellationToken.Token); Task.WaitAll(_game); _writerService.Clear(); _highLevelEventsService.Stop(); _writerService.WriteLine("You just died. If you want to restart press r"); var readInfo = _readerService.Read(); if (readInfo.ToLower() != "r") { break; } _game = null; _score = 0; } }