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); }