Question: Having issues with the Move() methods as well as a few errors showing with code. This is the main class (program.cs) using System; using System.Collections.Generic;
Having issues with the Move() methods as well as a few errors showing with code.
This is the main class (program.cs)
using System; using System.Collections.Generic; using System.Text; namespace dropbox08 { class Program { static void Main(string[] args) { Console.CursorVisible = false; int numberOfFruitEaten = 0; List xPosition = new List(); List yPosition = new List(); xPosition.Add(25); yPosition.Add(20); Snake snake = new Snake(xPosition, yPosition, numberOfFruitEaten); Console.SetCursorPosition(snake.XPosition[0], snake.YPosition[0]); Console.WriteLine(((char)214).ToString()); bool isEaten = false; Fruit fruit = new Fruit(); Console.WriteLine(fruit); ConsoleKey playerKey = Console.ReadKey().Key; do { Console.SetCursorPosition(snake.XPosition[numberOfFruitEaten], snake.YPosition[numberOfFruitEaten]); Console.WriteLine(" "); if (snake.XPosition[0] == fruit.XPosition && snake.YPosition[0] == fruit.YPosition) isEaten = true; if (isEaten) { Console.WriteLine(fruit); isEaten = false; numberOfFruitEaten++; snake.XPosition.Add(snake.XPosition[0]); snake.YPosition.Add(snake.YPosition[0]); } List xold = snake.XPosition; List yold = snake.YPosition; snake.NumberOfFruitEaten = numberOfFruitEaten; for (int j = numberOfFruitEaten; j > 0; j--) { xold[j] = xold[j - 1]; yold[j] = yold[j - 1]; } if (playerKey == ConsoleKey.LeftArrow) snake.MoveLeft(); else if (playerKey == ConsoleKey.RightArrow) snake.MoveRight(); else if (playerKey == ConsoleKey.UpArrow) snake.MoveUp(); else if (playerKey == ConsoleKey.DownArrow) snake.MoveDown(); Console.Write(snake); snake.XPosition = xold; snake.YPosition = yold; if (Console.KeyAvailable) playerKey = Console.ReadKey().Key; System.Threading.Thread.Sleep(240); } while (playerKey == ConsoleKey.LeftArrow || playerKey == ConsoleKey.RightArrow || playerKey == ConsoleKey.UpArrow || playerKey == ConsoleKey.DownArrow); Console.ReadKey(); } } }
This is the Snake.cs class
class Snake { // fields and properties // private int xPosition; // private int yPosition;
private List xPosition; private List yPosition; private int numberOfFruitEaten;
public List XPosition { get { return xPosition; } set { xPosition = value; } } public List YPosition { get { return yPosition; } set { yPosition = value; } }
// constructor and methods public Snake(List xPosition, List yPosition) { this.xPosition = xPosition; this.yPosition = yPosition; } public void MoveLeft() { XPosition--; } public void MoveRight() { XPosition++; } public void MoveUp() { YPosition--; } public void MoveDown() { YPosition++; } public override string ToString() { Console.SetCursorPosition(XPosition[0], YPosition[0]); Console.WriteLine(((char)214).ToString()); for (int i = 1; i <= NumberOfFruitEaten; i++) { Console.SetCursorPosition(XPosition[i], YPosition[i]); Console.Write("o"); } return ""; } }
This is the fruit class. (Fruit.cs) Not Showing any errors here. class Fruit { // fields and properties private int xPosition; private int yPosition;
public int XPosition { get { return xPosition; } set { xPosition = value; } } public int YPosition { get { return yPosition; } set { yPosition = value; } } public override string ToString() { Random random = new Random(); XPosition = random.Next(2, Console.WindowWidth - 2); YPosition = random.Next(2, Console.WindowHeight - 2); Console.SetCursorPosition(XPosition, YPosition); return ((char)64).ToString(); } } }