Пример #1
0
        public void Update()
        {
            GameFieldCoords newHeadPosition;

            if (this.currentDirection == "up")
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row - 1, this.snakeElements.Last().Col);
            }
            else if (this.currentDirection == "right")
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row, this.snakeElements.Last().Col + 1);
            }
            else if (this.currentDirection == "down")
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row + 1, this.snakeElements.Last().Col);
            }
            else
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row, this.snakeElements.Last().Col - 1); 
            }

            this.snakeElements.Enqueue(newHeadPosition);

            if (!this.isGettingBigger)
            {
                this.snakeElements.Dequeue();
            }

            this.isGettingBigger = false;
        }
Пример #2
0
        public void Update()
        {
            // Get new head position
            GameFieldCoords newHeadPosition;

            if (this.currentDirection == "up")
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row - 1, this.snakeElements.Last().Col);
            }
            else if (this.currentDirection == "right")
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row, this.snakeElements.Last().Col + 1);
            }
            else if (this.currentDirection == "down")
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row + 1, this.snakeElements.Last().Col);
            }
            else
            {
                newHeadPosition = new GameFieldCoords(this.snakeElements.Last().Row, this.snakeElements.Last().Col - 1); 
            }

            // Add new snake element to the new position
            this.snakeElements.Enqueue(newHeadPosition);

            if (!this.isGettingBigger)
            {
                // Remove the last element if the snake is not getting bigger
                this.snakeElements.Dequeue();
            }

            this.isGettingBigger = false;
        }
Пример #3
0
        // Console Renderer's constructor
        public ConsoleRenderer(GameFieldCoords size)
        {
            this.InitializeGameField(size);
            this.gameFieldSize = size;

            this.consoleSize = new GameFieldCoords(this.gameFieldSize.Row + 2, this.gameFieldSize.Col + 21);

            this.highScores = FileOperator.ReadHighScoreFile();

            Console.CursorVisible = false;

            Console.WindowHeight = this.consoleSize.Row;
            Console.BufferHeight = Console.WindowHeight;

            Console.WindowWidth = this.consoleSize.Col;
            Console.BufferWidth = Console.WindowWidth;

            this.InitializeCursorPostions();
        }
Пример #4
0
 public Food(GameFieldCoords position)
 {
     this.foodCoords = new GameFieldCoords(position.Row, position.Col);
 }
Пример #5
0
        private void InitializeGameField(GameFieldCoords size)
        {
            Console.Title = "Snake Game";

            this.gameField = new char[size.Row, size.Col];

            for (int row = 0; row < this.gameField.GetLength(0); row++)
            {
                for (int col = 0; col < this.gameField.GetLength(1); col++)
                {
                    this.gameField[row, col] = ' ';
                }
            }
        }