コード例 #1
0
ファイル: GameArea.cs プロジェクト: andre197/SnakeGame
        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);
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: andre197/SnakeGame
        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;
            }
        }