public void GrowCaterpillar() { int[] lastCoord = CaterpillarCoords[CaterpillarCoords.Count - 1]; int x = lastCoord[1]; int y = lastCoord[0]; if (IsFoodEaten()) { if (Direction == "a") { x += 1; } else if (Direction == "s") { y -= 1; } else if (Direction == "d") { x -= 1; } else if (Direction == "w") { y += 1; } x = x >= 0 ? x % BoardSize_X : x + BoardSize_X; y = y >= 0 ? y % BoardSize_Y : y + BoardSize_Y; CaterpillarCoords.Add(new int[] { y, x }); } }
public void Move(string directionLetter) { GrowCaterpillar(); int x = CaterpillarCoords[0][1]; int y = CaterpillarCoords[0][0]; if (directionLetter == "a") { CaterpillarCoords[0][1] = (x - 1) >= 0 ? (x - 1) % BoardSize_X : (x - 1) + BoardSize_X; } else if (directionLetter == "s") { CaterpillarCoords[0][0] = (y + 1) % BoardSize_Y; } else if (directionLetter == "d") { CaterpillarCoords[0][1] = (x + 1) % BoardSize_X; } else if (directionLetter == "w") { CaterpillarCoords[0][0] = (y - 1) >= 0 ? (y - 1) % BoardSize_Y : (y - 1) + BoardSize_Y; } CaterpillarCoords.Insert(1, new int[] { y, x }); CaterpillarCoords.Remove(CaterpillarCoords[CaterpillarCoords.Count - 1]); Direction = directionLetter; }
public void GenerateFood() { for (int i = 0; i < 5; i++) { bool noCat = false; if (FoodCoords.ElementAtOrDefault(i) == null) { while (!noCat) { Random random = new Random(); int randNumX = random.Next(0, BoardSize_X); int randNumY = random.Next(0, BoardSize_Y); Console.WriteLine("random" + randNumX + ", " + randNumY); int[] coords = new int[] { randNumX, randNumY }; if (!CaterpillarCoords.Contains(coords)) { FoodCoords.Add(coords); noCat = true; } } } } }