public void Move(Possition position) { if (position.X == 0 && position.Y == 0) { return; } ConsoleHelper.Clear(SnakeBody.Tail.Value); SnakeBody.ReverseForEach(n => { if (n.Previous != null) { n.Value.X = n.Previous.Value.X; n.Value.Y = n.Previous.Value.Y; } }); SnakeBody.Head.Value.ChangePossition(position); for (int i = 0; i < Foods.Count; i++) { if (Foods[i].Possition == SnakeBody.Head.Value) { } } }
public Snake(Possition headPossition) { SnakeBody = new LinkedList(); SnakeBody.AddHead(new Node(headPossition)); //this.Head = new Node(headPossition); for (int i = 0; i < 10; i++) { SnakeBody.AddLast(new Node (new Possition(headPossition.X + i, headPossition.Y))); } }
public void Start() { isStarted = true; Possition movement = new Possition(0, 0); while (isStarted == true) { //Console.WriteLine("Playing the game"); Snake.Move(movement); if (Console.KeyAvailable) { var key = Console.ReadKey(false).Key; movement = ReadUserInput.GetMovement(key); } Thread.Sleep(40); //Console.Clear(); gameItems.ForEach(i => i.Draw()); } }
public static Possition GetMovement(ConsoleKey key) { Possition possition = new Possition(0, 0); switch (key) { case ConsoleKey.UpArrow: possition = new Possition(0, -1); break; case ConsoleKey.DownArrow: possition = new Possition(0, 1); break; case ConsoleKey.LeftArrow: possition = new Possition(-1, 0); break; case ConsoleKey.RightArrow: possition = new Possition(1, 0); break; } return(possition); }
public void ChangePossition(Possition possition) { this.X += possition.X; this.Y += possition.Y; }
public Food(Possition possition, char symbol = '#') { this.Symbol = symbol; this.Possition = possition; }
public Node(Possition value) { this.Value = value; }