コード例 #1
0
        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 });
            }
        }
コード例 #2
0
        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;
        }
コード例 #3
0
 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;
                 }
             }
         }
     }
 }