Esempio n. 1
0
        public void Start()
        {
            isStarted = true;
            Position movement = new Position(0, 0);

            while (isStarted == true)
            {
                BoundariesChecker.CheckBoundaries(Snake.SnakeBody.Head.Value, movement);
                Snake.Move(movement);
                if (Snake.CheckSelfCanibalism())
                {
                    Console.Clear();
                    ConsoleHelper.Write(new Position(0, 0), "Game over! You ate yourself?????");
                    isStarted = false;
                    break;
                }

                if (Console.KeyAvailable)
                {
                    var key = Console.ReadKey(false).Key;
                    movement = ReadUserInput.GetMovement(key, movement);
                }
                Thread.Sleep(40);
                gameItems.ForEach(i => i.Draw());
            }
        }
        public void Grow(Position position)
        {
            var reverse     = new Position(position.X * -1, position.Y * -1);
            var oldPosition = SnakeBody.Tail.Value;

            var newHead = new Node(new Position(oldPosition.X, oldPosition.Y));

            newHead.Value.ChangePosition(reverse);
            BoundariesChecker.CheckBoundaries(newHead.Value, reverse);
            SnakeBody.AddLast(newHead);
        }