Esempio n. 1
0
        internal void AddFood(Vector3 pos, int color)
        {
            NormalFood food = EntityFactory.InstanceEntity<NormalFood>();
            food.Create(0, color, pos);

            m_listFood.Add(food);
        }
Esempio n. 2
0
        public void CheckIfSameCoordWithFood_ReturnsTrue()
        {
            Snake snake = new Snake(new Circle(9, 8, Brushes.Black));
            IFood food  = new NormalFood(8, 8, Brushes.Red);

            var result = snake.CheckIfSameCoordWithFood(food);

            Assert.IsTrue(result);
        }
Esempio n. 3
0
        protected override void Create(EntityObject entity)
        {
            m_entity = entity as NormalFood;

            SpriteRenderer r = this.GetComponent <SpriteRenderer>();

            if (r != null)
            {
                r.color = GameManager.Instance.Context.GetUniqueColor(m_entity.Color);
            }

            m_entityPosition = m_entity.Position();
            Vector3 pos = GameManager.Instance.Context.EntityToViewPoint(m_entityPosition);

            this.transform.localPosition = pos;
        }
        private void T_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (!Enabled)
            {
                t.Stop();
                return;
            }

            //随机一种食物
            int rNum = Dice.Next(1, 100);

            if (rNum < 20 && isInsSpeedFood)
            {
                SpeedFood sf = new SpeedFood();
                NowScene.Ins.AddObjectToNowScene(sf);
                sf.target = followHead;
                sf.Init();
                sf.RandomPos();
                allSpeedFoods.Add(sf);
            }
            else if (rNum < 67 && isInsBulletFood)
            {
                BulletFood bf = new BulletFood();
                NowScene.Ins.AddObjectToNowScene(bf);
                bf.Init();
                bf.RandomPos();
                bf.RandomForce();
                allBulletFoods.Add(bf);
            }
            else
            {
                NormalFood nf = new NormalFood();
                nf.fColor = Dice.NextColor();
                NowScene.Ins.AddObjectToNowScene(nf);
                nf.Init();
                nf.RandomPos();
                nf.RandomForce();
                allFoods.Add(nf);
            }
        }
Esempio n. 5
0
 protected override void Release()
 {
     m_entity = null;
 }
Esempio n. 6
0
        private static void SeedDb()
        {
            using var context = new AnimalContext();

            context.SavedChanges += (sender, args) =>
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(
                    $"Saved {args.EntitiesSavedCount} changes for {((DbContext) sender)?.Database.GetConnectionString()}");
                Console.ForegroundColor = ConsoleColor.White;
            };

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            #region Seed TPT (Animal)

            var beaver1 = new Beaver
            {
                Name       = "SomeBeavers1",
                Age        = 27,
                Fluffiness = FluffinessEnum.VeryFluffy,
                Size       = 15,
                IpAddress  = IPAddress.Parse("127.0.0.1")
            };
            var beaver2 = new Beaver
            {
                Name       = "SomeBeavers2",
                Age        = 26,
                Fluffiness = FluffinessEnum.Fluffy,
                Size       = 14,
                IpAddress  = IPAddress.Parse("127.0.0.1")
            };
            var beaver3 = new Beaver
            {
                Name       = "SomeBeavers3",
                Age        = 25,
                Fluffiness = FluffinessEnum.NotFluffy,
                Size       = 13,
                IpAddress  = IPAddress.Parse("127.0.0.1")
            };
            var beaver4 = new Beaver
            {
                Name       = "SomeBeavers4",
                Age        = 24,
                Fluffiness = FluffinessEnum.Fluffy,
                Size       = 12,
                IpAddress  = IPAddress.Parse("127.0.0.1")
            };
            var beaver5 = new Beaver
            {
                Name       = "SomeBeavers5",
                Age        = 23,
                Fluffiness = FluffinessEnum.VeryFluffy,
                Size       = 11,
                IpAddress  = IPAddress.Parse("127.0.0.1")
            };

            var crow1 = new Crow
            {
                Name      = "Crowly",
                Age       = 5,
                Color     = "black",
                Size      = 1,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var crow2 = new Crow
            {
                Name      = "Crowly1",
                Age       = 5,
                Color     = "black",
                Size      = 1,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var crow3 = new Crow
            {
                Name      = "Crowly2",
                Age       = 22,
                Color     = "black",
                Size      = 4,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var crow4 = new Crow
            {
                Name      = "Crowly3",
                Age       = 50,
                Color     = "white",
                Size      = 10,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var crow5 = new Crow
            {
                Name      = "Crowly4",
                Age       = 5,
                Color     = "pink",
                Size      = 1,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };

            var deer1 = new Deer
            {
                Name      = "Dasher",
                Age       = 1,
                Horns     = true,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var deer2 = new Deer
            {
                Name      = "Dancer",
                Age       = 2,
                Horns     = true,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var deer3 = new Deer
            {
                Name      = "Prancer",
                Age       = 1,
                Horns     = false,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var deer4 = new Deer
            {
                Name      = "Vixen",
                Age       = 1,
                Horns     = true,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var deer5 = new Deer
            {
                Name      = "Comet",
                Age       = 1,
                Horns     = true,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var deer6 = new Deer
            {
                Name      = "Cupid",
                Age       = 1,
                Horns     = false,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var deer7 = new Deer
            {
                Name      = "Donder ",
                Age       = 1,
                Horns     = true,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };
            var deer8 = new Deer
            {
                Name      = "Blitzen",
                Age       = 1,
                Horns     = true,
                IpAddress = IPAddress.Parse("127.0.0.1")
            };

            context.Beavers.Add(beaver1);
            context.Beavers.Add(beaver2);
            context.Beavers.Add(beaver3);
            context.Beavers.Add(beaver4);
            context.Beavers.Add(beaver5);

            context.Crows.Add(crow1);
            context.Crows.Add(crow2);
            context.Crows.Add(crow3);
            context.Crows.Add(crow4);
            context.Crows.Add(crow5);

            context.Deers.Add(deer1);
            context.Deers.Add(deer2);
            context.Deers.Add(deer3);
            context.Deers.Add(deer4);
            context.Deers.Add(deer5);
            context.Deers.Add(deer6);
            context.Deers.Add(deer7);
            context.Deers.Add(deer8);

            #endregion

            #region Seed Many-to-many (Club)

            var club1 = new Club
            {
                Title   = "TreesWorshipers",
                Animals = new List <Animal> {
                    beaver1, beaver2, beaver3, beaver4, beaver5, crow4
                },
                Locations = new List <Location>
                {
                    new()
                    {
                        Address = "North America"
                    },
                    new()
                    {
                        Address = "Canada"
                    },
                    new()
                    {
                        Address = "Russia"
                    }
                }
            };

            var club2 = new Club
            {
                Title   = "CornLovers",
                Animals = new List <Animal> {
                    crow1, crow2, crow3, crow4, crow5
                },
                Locations = new List <Location>
                {
                    new()
                    {
                        Address = "Westeros"
                    }
                }
            };

            var club3 = new Club
            {
                Title   = "ChristmasTeam",
                Animals = new List <Animal>
                {
                    beaver1, beaver2, beaver3, beaver4, beaver5,
                    crow1, crow2, crow3, crow4, crow5,
                    deer1, deer2, deer3, deer4, deer5, deer6, deer7, deer8
                },
                Locations = new List <Location>
                {
                    new()
                    {
                        Address = "North Pole"
                    }
                }
            };

            context.Clubs.Add(club1);
            context.Clubs.Add(club2);
            context.Clubs.Add(club3);

            #endregion

            #region Seed Grades

            var grade1 = new Grade
            {
                TheGrade = 5,
                Club     = club1,
                Animal   = beaver1
            };
            var grade2 = new Grade
            {
                TheGrade = 4,
                Club     = club1,
                Animal   = beaver2
            };
            var grade3 = new Grade
            {
                TheGrade = 3,
                Club     = club1,
                Animal   = beaver3
            };
            var grade4 = new Grade
            {
                TheGrade = 3,
                Club     = club1,
                Animal   = beaver4
            };
            var grade5 = new Grade
            {
                TheGrade = 2,
                Club     = club1,
                Animal   = beaver5
            };
            var grade6 = new Grade
            {
                TheGrade = 1,
                Club     = club1,
                Animal   = crow4
            };
            var grade7 = new Grade
            {
                TheGrade = 5,
                Club     = club2,
                Animal   = crow1
            };
            var grade8 = new Grade
            {
                TheGrade = 4.5,
                Club     = club2,
                Animal   = crow2
            };
            var grade9 = new Grade
            {
                TheGrade = 2.1,
                Club     = club2,
                Animal   = crow3
            };
            var grade10 = new Grade
            {
                TheGrade = 4.3,
                Club     = club2,
                Animal   = crow4
            };

            var grade27 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver1
            };
            var grade26 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver2
            };
            var grade25 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver3
            };
            var grade24 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver4
            };
            var grade23 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver5
            };
            var grade22 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = crow1
            };
            var grade21 = new Grade
            {
                TheGrade = 3.5,
                Club     = club3,
                Animal   = crow2
            };
            var grade20 = new Grade
            {
                TheGrade = 2.5,
                Club     = club3,
                Animal   = crow3
            };
            var grade19 = new Grade
            {
                TheGrade = 1.5,
                Club     = club3,
                Animal   = crow4
            };
            var grade28 = new Grade
            {
                TheGrade = 4.9,
                Club     = club3,
                Animal   = crow5
            };
            var grade11 = new Grade
            {
                TheGrade = 4.8,
                Club     = club3,
                Animal   = deer1
            };
            var grade12 = new Grade
            {
                TheGrade = 4.7,
                Club     = club3,
                Animal   = deer2
            };
            var grade13 = new Grade
            {
                TheGrade = 4.6,
                Club     = club3,
                Animal   = deer3
            };
            var grade14 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = deer4
            };
            var grade15 = new Grade
            {
                TheGrade = 4.4,
                Club     = club3,
                Animal   = deer5
            };
            var grade16 = new Grade
            {
                TheGrade = 4.3,
                Club     = club3,
                Animal   = deer6
            };
            var grade17 = new Grade
            {
                TheGrade = 4.2,
                Club     = club3,
                Animal   = deer7
            };
            var grade18 = new Grade
            {
                TheGrade = 4.1,
                Club     = club3,
                Animal   = deer8
            };

            context.Grades.Add(grade1);
            context.Grades.Add(grade2);
            context.Grades.Add(grade3);
            context.Grades.Add(grade4);
            context.Grades.Add(grade5);
            context.Grades.Add(grade6);
            context.Grades.Add(grade7);
            context.Grades.Add(grade8);
            context.Grades.Add(grade9);
            context.Grades.Add(grade10);
            context.Grades.Add(grade11);
            context.Grades.Add(grade12);
            context.Grades.Add(grade13);
            context.Grades.Add(grade14);
            context.Grades.Add(grade15);
            context.Grades.Add(grade16);
            context.Grades.Add(grade17);
            context.Grades.Add(grade18);
            context.Grades.Add(grade19);
            context.Grades.Add(grade20);
            context.Grades.Add(grade21);
            context.Grades.Add(grade22);
            context.Grades.Add(grade23);
            context.Grades.Add(grade24);
            context.Grades.Add(grade25);
            context.Grades.Add(grade26);
            context.Grades.Add(grade27);
            context.Grades.Add(grade28);

            #endregion

            #region Seed Jobs

            var job1 = new Job
            {
                Title   = "Builder",
                Salary  = 1,
                Animals = new List <Animal>
                {
                    beaver1, beaver2, beaver3, beaver4, beaver5
                }
            };
            var job2 = new Job
            {
                Title   = "Messenger",
                Salary  = 10,
                Animals = new List <Animal>
                {
                    crow1, crow2, crow3, crow4
                }
            };
            var job3 = new Job
            {
                Title   = "Delivery",
                Salary  = 100,
                Animals = new List <Animal>
                {
                    deer1, deer2, deer3, deer4, deer5, deer6, deer7, deer8
                }
            };

            context.Jobs.Add(job1);
            context.Jobs.Add(job2);
            context.Jobs.Add(job3);

            #endregion

            #region Seed TPH (Food)

            var food1 = new NormalFood
            {
                Title  = "Elm",
                Animal = beaver1,
                Taste  = Taste.Normal
            };
            var food2 = new VeganFood
            {
                Title    = "Daphne laureola",
                Animal   = beaver2,
                Calories = 100
            };
            var food3 = new VeganFood
            {
                Title    = "Carpinus betulus",
                Animal   = beaver3,
                Calories = 1001
            };
            var food4 = new VeganFood
            {
                Title    = "Hornbeam",
                Animal   = beaver4,
                Calories = 101
            };
            var food5 = new NormalFood
            {
                Title  = "Pizza",
                Animal = beaver5,
                Taste  = Taste.Excellent
            };
            var food6 = new NormalFood
            {
                Title  = "Steak",
                Animal = crow1,
                Taste  = Taste.Excellent
            };
            var food7 = new NormalFood
            {
                Title  = "Meat",
                Animal = crow2,
                Taste  = Taste.Good
            };
            var food8 = new NormalFood
            {
                Title  = "Pizza",
                Animal = crow3,
                Taste  = Taste.VeryGood
            };
            var food9 = new VeganFood
            {
                Title    = "Corn",
                Animal   = crow4,
                Calories = 1
            };
            var food10 = new NormalFood
            {
                Title  = "Pizza",
                Animal = crow5,
                Taste  = Taste.Normal
            };
            var food11 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer1,
                Calories = 10
            };
            var food12 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer2,
                Calories = 10
            };
            var food13 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer3,
                Calories = 10
            };
            var food14 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer4,
                Calories = 10
            };
            var food15 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer5,
                Calories = 10
            };
            var food16 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer6,
                Calories = 10
            };
            var food17 = new NormalFood
            {
                Title  = "Elves",
                Animal = deer7,
                Taste  = Taste.Excellent
            };
            var food18 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer8,
                Calories = 10
            };

            context.Food.Add(food1);
            context.Food.Add(food2);
            context.Food.Add(food3);
            context.Food.Add(food4);
            context.Food.Add(food5);
            context.Food.Add(food6);
            context.Food.Add(food7);
            context.Food.Add(food8);
            context.Food.Add(food9);
            context.Food.Add(food10);
            context.Food.Add(food11);
            context.Food.Add(food12);
            context.Food.Add(food13);
            context.Food.Add(food14);
            context.Food.Add(food15);
            context.Food.Add(food16);
            context.Food.Add(food17);
            context.Food.Add(food18);

            #endregion

            #region Seed Many-to-many old style (Drawback)

            var drawback1 = new Drawback
            {
                Title = "Crowdy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, /*food5,*/ food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Nervousness"
                }
            };
            var drawback2 = new Drawback
            {
                Title = "Windy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, food5, food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Teleportation to Land of Oz"
                }
            };
            var drawback3 = new Drawback
            {
                Title = "Soggy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, food5, food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Wet clothes"
                }
            };
            var drawback4 = new Drawback
            {
                Title = "Hardy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, food5, food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Sadness"
                }
            };

            context.Drawbacks.Add(drawback1);
            context.Drawbacks.Add(drawback2);
            context.Drawbacks.Add(drawback3);
            context.Drawbacks.Add(drawback4);

            var jobDrawback1 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback1
            };
            var jobDrawback2 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback2
            };
            var jobDrawback3 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback3
            };
            var jobDrawback4 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback4
            };
            var jobDrawback5 = new JobDrawback
            {
                Job      = job2,
                Drawback = drawback1
            };
            var jobDrawback6 = new JobDrawback
            {
                Job      = job2,
                Drawback = drawback2
            };
            var jobDrawback7 = new JobDrawback
            {
                Job      = job3,
                Drawback = drawback1
            };
            var jobDrawback8 = new JobDrawback
            {
                Job      = job3,
                Drawback = drawback2
            };

            context.JobDrawbacks.Add(jobDrawback1);
            context.JobDrawbacks.Add(jobDrawback2);
            context.JobDrawbacks.Add(jobDrawback3);
            context.JobDrawbacks.Add(jobDrawback4);
            context.JobDrawbacks.Add(jobDrawback5);
            context.JobDrawbacks.Add(jobDrawback6);
            context.JobDrawbacks.Add(jobDrawback7);
            context.JobDrawbacks.Add(jobDrawback8);

            #endregion

            context.SaveChanges();

            #region Seed Property Bags (Category, Product)

            var category1 = new Dictionary <string, object>
            {
                ["Name"]   = "Beverages",
                ["FoodId"] = food1.Id
            };

            context.Categories.Add(category1);

            context.SaveChanges();

            var product1 = new Dictionary <string, object>
            {
                ["Name"]       = "Product1",
                ["CategoryId"] = context.Categories.First()["Id"]
            };

            context.Products.Add(product1);

            #endregion

            #region Seed Persons

            var person1 = new Person
            {
                Name         = "BeaverPerson",
                AnimalsLoved = new List <Animal> {
                    beaver1, beaver2, beaver3, beaver4, beaver5
                },
                AnimalsHated = new List <Animal> {
                    deer1, deer2, deer3, deer4, deer5, deer6, deer7, deer8
                }
            };

            context.Persons.Add(person1);

            #endregion

            #region Seed Elves

            var elf1 = new Elf
            {
                Name = "Alabaster Snowball",
                Deer = deer1
            };
            var elf2 = new Elf
            {
                Name = "Bushy Evergreen",
                Deer = deer1
            };
            var elf3 = new Elf
            {
                Name = "Pepper Minstix",
                Deer = deer2
            };
            var elf4 = new Elf
            {
                Name = "Shinny Upatree",
                Deer = deer3
            };
            var elf5 = new Elf
            {
                Name = "Sugarplum Mary",
                Deer = deer4
            };
            var elf6 = new Elf
            {
                Name = "Wunorse Openslae",
                Deer = deer5
            };
            var elf7 = new Elf
            {
                Name = "Grinch",
                Deer = deer6
            };
            var elf8 = new Elf
            {
                Name = "Legolas",
                Deer = deer7
            };
            var elf9 = new Elf
            {
                Name = "Iorveth",
                Deer = deer8
            };

            context.Elves.Add(elf1);
            context.Elves.Add(elf2);
            context.Elves.Add(elf3);
            context.Elves.Add(elf4);
            context.Elves.Add(elf5);
            context.Elves.Add(elf6);
            context.Elves.Add(elf7);
            context.Elves.Add(elf8);
            context.Elves.Add(elf9);

            #endregion

            #region Seed AdditionaInfos

            var additionalInfo1 = new AdditionalInfo()
            {
                Clubs = new List <Club>()
                {
                    club1, club2, club3
                },
                Comment = "Best club ever"
            };
            var additionalInfo2 = new AdditionalInfo()
            {
                Clubs = new List <Club>()
                {
                    club1, club2
                },
                Comment = "Evolution club"
            };
            var additionalInfo3 = new AdditionalInfo()
            {
                Clubs = new List <Club>()
                {
                    club1
                },
                Comment = "Original club"
            };

            context.AdditionalInfos.Add(additionalInfo1);
            context.AdditionalInfos.Add(additionalInfo2);
            context.AdditionalInfos.Add(additionalInfo3);

            #endregion

            context.SaveChanges();

            context.Database.ExecuteSqlRaw(File.ReadAllText(".\\BD\\CreateTVF.sql"));
        }
Esempio n. 7
0
        private static void SeedDb()
        {
            using var context = new AnimalContext();

            context.Database.Delete();
            context.Database.Create();

            #region Seed TPT (Animal)

            var beaver1 = new Beaver
            {
                Name       = "SomeBeavers1",
                Age        = 27,
                Fluffiness = FluffinessEnum.VeryFluffy,
                Size       = 15,
                IpAddress  = "127.0.0.1"
            };
            var beaver2 = new Beaver
            {
                Name       = "SomeBeavers2",
                Age        = 26,
                Fluffiness = FluffinessEnum.Fluffy,
                Size       = 14,
                IpAddress  = "127.0.0.1"
            };
            var beaver3 = new Beaver
            {
                Name       = "SomeBeavers3",
                Age        = 25,
                Fluffiness = FluffinessEnum.NotFluffy,
                Size       = 13,
                IpAddress  = "127.0.0.1"
            };
            var beaver4 = new Beaver
            {
                Name       = "SomeBeavers4",
                Age        = 24,
                Fluffiness = FluffinessEnum.Fluffy,
                Size       = 12,
                IpAddress  = "127.0.0.1"
            };
            var beaver5 = new Beaver
            {
                Name       = "SomeBeavers5",
                Age        = 23,
                Fluffiness = FluffinessEnum.VeryFluffy,
                Size       = 11,
                IpAddress  = "127.0.0.1"
            };

            var crow1 = new Crow
            {
                Name      = "Crowly",
                Age       = 5,
                Color     = "black",
                Size      = 1,
                IpAddress = "127.0.0.1"
            };
            var crow2 = new Crow
            {
                Name      = "Crowly1",
                Age       = 5,
                Color     = "black",
                Size      = 1,
                IpAddress = "127.0.0.1"
            };
            var crow3 = new Crow
            {
                Name      = "Crowly2",
                Age       = 22,
                Color     = "black",
                Size      = 4,
                IpAddress = "127.0.0.1"
            };
            var crow4 = new Crow
            {
                Name      = "Crowly3",
                Age       = 50,
                Color     = "white",
                Size      = 10,
                IpAddress = "127.0.0.1"
            };
            var crow5 = new Crow
            {
                Name      = "Crowly4",
                Age       = 5,
                Color     = "pink",
                Size      = 1,
                IpAddress = "127.0.0.1"
            };

            var deer1 = new Deer
            {
                Name      = "Dasher",
                Age       = 1,
                Horns     = true,
                IpAddress = "127.0.0.1"
            };
            var deer2 = new Deer
            {
                Name      = "Dancer",
                Age       = 2,
                Horns     = true,
                IpAddress = "127.0.0.1"
            };
            var deer3 = new Deer
            {
                Name      = "Prancer",
                Age       = 1,
                Horns     = false,
                IpAddress = "127.0.0.1"
            };
            var deer4 = new Deer
            {
                Name      = "Vixen",
                Age       = 1,
                Horns     = true,
                IpAddress = "127.0.0.1"
            };
            var deer5 = new Deer
            {
                Name      = "Comet",
                Age       = 1,
                Horns     = true,
                IpAddress = "127.0.0.1"
            };
            var deer6 = new Deer
            {
                Name      = "Cupid",
                Age       = 1,
                Horns     = false,
                IpAddress = "127.0.0.1"
            };
            var deer7 = new Deer
            {
                Name      = "Donder ",
                Age       = 1,
                Horns     = true,
                IpAddress = "127.0.0.1"
            };
            var deer8 = new Deer
            {
                Name      = "Blitzen",
                Age       = 1,
                Horns     = true,
                IpAddress = "127.0.0.1"
            };

            context.Beavers.Add(beaver1);
            context.Beavers.Add(beaver2);
            context.Beavers.Add(beaver3);
            context.Beavers.Add(beaver4);
            context.Beavers.Add(beaver5);

            context.Crows.Add(crow1);
            context.Crows.Add(crow2);
            context.Crows.Add(crow3);
            context.Crows.Add(crow4);
            context.Crows.Add(crow5);

            context.Deers.Add(deer1);
            context.Deers.Add(deer2);
            context.Deers.Add(deer3);
            context.Deers.Add(deer4);
            context.Deers.Add(deer5);
            context.Deers.Add(deer6);
            context.Deers.Add(deer7);
            context.Deers.Add(deer8);

            #endregion

            #region Seed Many-to-many (Club)

            var club1 = new Club
            {
                Title   = "TreesWorshipers",
                Animals = new List <Animal> {
                    beaver1, beaver2, beaver3, beaver4, beaver5, crow4
                },
                Locations = new List <Location>
                {
                    new()
                    {
                        Address            = "North America",
                        GeographicLocation = DbGeography.FromText("POINT(-122 47)")
                    },
                    new()
                    {
                        Address            = "Canada",
                        GeographicLocation = DbGeography.FromText("POINT(122 40)")
                    },
                    new()
                    {
                        Address            = "Russia",
                        GeographicLocation = DbGeography.FromText("POINT(1 1)")
                    }
                }
            };

            var club2 = new Club
            {
                Title   = "CornLovers",
                Animals = new List <Animal> {
                    crow1, crow2, crow3, crow4, crow5
                },
                Locations = new List <Location>
                {
                    new()
                    {
                        Address            = "Westeros",
                        GeographicLocation = DbGeography.FromText("POINT(00 00)")
                    }
                }
            };

            var club3 = new Club
            {
                Title   = "ChristmasTeam",
                Animals = new List <Animal>
                {
                    beaver1, beaver2, beaver3, beaver4, beaver5,
                    crow1, crow2, crow3, crow4, crow5,
                    deer1, deer2, deer3, deer4, deer5, deer6, deer7, deer8
                },
                Locations = new List <Location>
                {
                    new()
                    {
                        Address            = "North Pole",
                        GeographicLocation = DbGeography.FromText("POINT(9 9)")
                    }
                }
            };

            context.Clubs.Add(club1);
            context.Clubs.Add(club2);
            context.Clubs.Add(club3);

            #endregion

            #region Seed Grades

            var grade1 = new Grade
            {
                TheGrade = 5,
                Club     = club1,
                Animal   = beaver1
            };
            var grade2 = new Grade
            {
                TheGrade = 4,
                Club     = club1,
                Animal   = beaver2
            };
            var grade3 = new Grade
            {
                TheGrade = 3,
                Club     = club1,
                Animal   = beaver3
            };
            var grade4 = new Grade
            {
                TheGrade = 3,
                Club     = club1,
                Animal   = beaver4
            };
            var grade5 = new Grade
            {
                TheGrade = 2,
                Club     = club1,
                Animal   = beaver5
            };
            var grade6 = new Grade
            {
                TheGrade = 1,
                Club     = club1,
                Animal   = crow4
            };
            var grade7 = new Grade
            {
                TheGrade = 5,
                Club     = club2,
                Animal   = crow1
            };
            var grade8 = new Grade
            {
                TheGrade = 4.5,
                Club     = club2,
                Animal   = crow2
            };
            var grade9 = new Grade
            {
                TheGrade = 2.1,
                Club     = club2,
                Animal   = crow3
            };
            var grade10 = new Grade
            {
                TheGrade = 4.3,
                Club     = club2,
                Animal   = crow4
            };

            var grade27 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver1
            };
            var grade26 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver2
            };
            var grade25 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver3
            };
            var grade24 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver4
            };
            var grade23 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = beaver5
            };
            var grade22 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = crow1
            };
            var grade21 = new Grade
            {
                TheGrade = 3.5,
                Club     = club3,
                Animal   = crow2
            };
            var grade20 = new Grade
            {
                TheGrade = 2.5,
                Club     = club3,
                Animal   = crow3
            };
            var grade19 = new Grade
            {
                TheGrade = 1.5,
                Club     = club3,
                Animal   = crow4
            };
            var grade28 = new Grade
            {
                TheGrade = 4.9,
                Club     = club3,
                Animal   = crow5
            };
            var grade11 = new Grade
            {
                TheGrade = 4.8,
                Club     = club3,
                Animal   = deer1
            };
            var grade12 = new Grade
            {
                TheGrade = 4.7,
                Club     = club3,
                Animal   = deer2
            };
            var grade13 = new Grade
            {
                TheGrade = 4.6,
                Club     = club3,
                Animal   = deer3
            };
            var grade14 = new Grade
            {
                TheGrade = 4.5,
                Club     = club3,
                Animal   = deer4
            };
            var grade15 = new Grade
            {
                TheGrade = 4.4,
                Club     = club3,
                Animal   = deer5
            };
            var grade16 = new Grade
            {
                TheGrade = 4.3,
                Club     = club3,
                Animal   = deer6
            };
            var grade17 = new Grade
            {
                TheGrade = 4.2,
                Club     = club3,
                Animal   = deer7
            };
            var grade18 = new Grade
            {
                TheGrade = 4.1,
                Club     = club3,
                Animal   = deer8
            };

            context.Grades.Add(grade1);
            context.Grades.Add(grade2);
            context.Grades.Add(grade3);
            context.Grades.Add(grade4);
            context.Grades.Add(grade5);
            context.Grades.Add(grade6);
            context.Grades.Add(grade7);
            context.Grades.Add(grade8);
            context.Grades.Add(grade9);
            context.Grades.Add(grade10);
            context.Grades.Add(grade11);
            context.Grades.Add(grade12);
            context.Grades.Add(grade13);
            context.Grades.Add(grade14);
            context.Grades.Add(grade15);
            context.Grades.Add(grade16);
            context.Grades.Add(grade17);
            context.Grades.Add(grade18);
            context.Grades.Add(grade19);
            context.Grades.Add(grade20);
            context.Grades.Add(grade21);
            context.Grades.Add(grade22);
            context.Grades.Add(grade23);
            context.Grades.Add(grade24);
            context.Grades.Add(grade25);
            context.Grades.Add(grade26);
            context.Grades.Add(grade27);
            context.Grades.Add(grade28);

            #endregion

            #region Seed Jobs

            var job1 = new Job
            {
                Title   = "Builder",
                Salary  = 1,
                Animals = new List <Animal>
                {
                    beaver1, beaver2, beaver3, beaver4, beaver5
                }
            };
            var job2 = new Job
            {
                Title   = "Messenger",
                Salary  = 10,
                Animals = new List <Animal>
                {
                    crow1, crow2, crow3, crow4
                }
            };
            var job3 = new Job
            {
                Title   = "Delivery",
                Salary  = 100,
                Animals = new List <Animal>
                {
                    deer1, deer2, deer3, deer4, deer5, deer6, deer7, deer8
                }
            };

            context.Jobs.Add(job1);
            context.Jobs.Add(job2);
            context.Jobs.Add(job3);

            #endregion

            #region Seed TPH (Food)

            var food1 = new NormalFood
            {
                Title  = "Elm",
                Animal = beaver1,
                Taste  = Taste.Normal
            };
            var food2 = new VeganFood
            {
                Title    = "Daphne laureola",
                Animal   = beaver2,
                Calories = 100
            };
            var food3 = new VeganFood
            {
                Title    = "Carpinus betulus",
                Animal   = beaver3,
                Calories = 1001
            };
            var food4 = new VeganFood
            {
                Title    = "Hornbeam",
                Animal   = beaver4,
                Calories = 101
            };
            var food5 = new NormalFood
            {
                Title  = "Pizza",
                Animal = beaver5,
                Taste  = Taste.Excellent
            };
            var food6 = new NormalFood
            {
                Title  = "Steak",
                Animal = crow1,
                Taste  = Taste.Excellent
            };
            var food7 = new NormalFood
            {
                Title  = "Meat",
                Animal = crow2,
                Taste  = Taste.Good
            };
            var food8 = new NormalFood
            {
                Title  = "Pizza",
                Animal = crow3,
                Taste  = Taste.VeryGood
            };
            var food9 = new VeganFood
            {
                Title    = "Corn",
                Animal   = crow4,
                Calories = 1
            };
            var food10 = new NormalFood
            {
                Title  = "Pizza",
                Animal = crow5,
                Taste  = Taste.Normal
            };
            var food11 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer1,
                Calories = 10
            };
            var food12 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer2,
                Calories = 10
            };
            var food13 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer3,
                Calories = 10
            };
            var food14 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer4,
                Calories = 10
            };
            var food15 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer5,
                Calories = 10
            };
            var food16 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer6,
                Calories = 10
            };
            var food17 = new NormalFood
            {
                Title  = "Elves",
                Animal = deer7,
                Taste  = Taste.Excellent
            };
            var food18 = new VeganFood
            {
                Title    = "Pizza",
                Animal   = deer8,
                Calories = 10
            };

            context.Food.Add(food1);
            context.Food.Add(food2);
            context.Food.Add(food3);
            context.Food.Add(food4);
            context.Food.Add(food5);
            context.Food.Add(food6);
            context.Food.Add(food7);
            context.Food.Add(food8);
            context.Food.Add(food9);
            context.Food.Add(food10);
            context.Food.Add(food11);
            context.Food.Add(food12);
            context.Food.Add(food13);
            context.Food.Add(food14);
            context.Food.Add(food15);
            context.Food.Add(food16);
            context.Food.Add(food17);
            context.Food.Add(food18);

            #endregion

            #region Seed Many-to-many old style (Drawback)

            var drawback1 = new Drawback
            {
                Title = "Crowdy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, /*food5,*/ food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Nervousness"
                },
                DrawbackDetail = new DrawbackDetails
                {
                    DateCreated = DateTime.Now,
                    Description = "the quality or state of being nervous"
                }
            };
            var drawback2 = new Drawback
            {
                Title = "Windy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, food5, food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Teleportation to Land of Oz"
                },
                DrawbackDetail = new DrawbackDetails
                {
                    DateCreated = DateTime.Now,
                    Description = "hallucination"
                }
            };
            var drawback3 = new Drawback
            {
                Title = "Soggy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, food5, food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Wet clothes"
                },
                DrawbackDetail = new DrawbackDetails
                {
                    DateCreated = DateTime.Now,
                    Description = "cold"
                }
            };
            var drawback4 = new Drawback
            {
                Title = "Hardy",
                Foods = new List <Food>
                {
                    food1, food2, food3, food4, food5, food6, food7, food8, food9, food10, food11, food12, food13,
                    food14, food15, food16, food17, food18
                },
                Clubs = new List <Club>
                {
                    club1, club2, club3
                },
                Consequence = new Consequence
                {
                    Name = "Sadness"
                },
                DrawbackDetail = new DrawbackDetails
                {
                    DateCreated = DateTime.Now,
                    Description = "the condition or quality of being sad"
                }
            };

            context.Drawbacks.Add(drawback1);
            context.Drawbacks.Add(drawback2);
            context.Drawbacks.Add(drawback3);
            context.Drawbacks.Add(drawback4);

            var jobDrawback1 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback1
            };
            var jobDrawback2 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback2
            };
            var jobDrawback3 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback3
            };
            var jobDrawback4 = new JobDrawback
            {
                Job      = job1,
                Drawback = drawback4
            };
            var jobDrawback5 = new JobDrawback
            {
                Job      = job2,
                Drawback = drawback1
            };
            var jobDrawback6 = new JobDrawback
            {
                Job      = job2,
                Drawback = drawback2
            };
            var jobDrawback7 = new JobDrawback
            {
                Job      = job3,
                Drawback = drawback1
            };
            var jobDrawback8 = new JobDrawback
            {
                Job      = job3,
                Drawback = drawback2
            };

            context.JobDrawbacks.Add(jobDrawback1);
            context.JobDrawbacks.Add(jobDrawback2);
            context.JobDrawbacks.Add(jobDrawback3);
            context.JobDrawbacks.Add(jobDrawback4);
            context.JobDrawbacks.Add(jobDrawback5);
            context.JobDrawbacks.Add(jobDrawback6);
            context.JobDrawbacks.Add(jobDrawback7);
            context.JobDrawbacks.Add(jobDrawback8);

            #endregion

            #region Seed Persons

            var person1 = new Person
            {
                Name         = "BeaverPerson",
                AnimalsLoved = new List <Animal> {
                    beaver1, beaver2, beaver3, beaver4, beaver5
                },
                AnimalsHated = new List <Animal> {
                    deer1, deer2, deer3, deer4, deer5, deer6, deer7, deer8
                }
            };

            context.Persons.Add(person1);

            #endregion

            context.SaveChanges();
        }
        public override void Update()
        {
            lock (updateLock)
            {
                base.Update();
                if (!isOn)
                {
                    return;
                }

                if (!Enabled)
                {
                    return;
                }

                if (speedChange < 0)
                {
                    Image.Clear();
                    drawTool.SetMousePosition(0, 0);
                    drawTool.fColor = Dice.NextColor();
                    drawTool.Write("●");
                }
                else
                {
                    Image.Clear();
                    drawTool.SetMousePosition(0, 0);
                    drawTool.fColor = fColor;
                    drawTool.Write("●");
                }

                if (player == 1)
                {
                    if (Input.GetKeyDown(ConsoleKey.UpArrow))
                    {
                        if (!goDown)
                        {
                            goTop = true;
                        }
                    }
                    else
                    {
                        if (goDown || goLeft || goRight)
                        {
                            goTop = false;
                        }
                    }
                    if (Input.GetKeyDown(ConsoleKey.DownArrow))
                    {
                        if (!goTop)
                        {
                            goDown = true;
                        }
                    }
                    else
                    {
                        if (goTop || goLeft || goRight)
                        {
                            goDown = false;
                        }
                    }
                    if (Input.GetKeyDown(ConsoleKey.LeftArrow))
                    {
                        if (!goRight)
                        {
                            goLeft = true;
                        }
                    }
                    else
                    {
                        if (goDown || goTop || goRight)
                        {
                            goLeft = false;
                        }
                    }
                    if (Input.GetKeyDown(ConsoleKey.RightArrow))
                    {
                        if (!goLeft)
                        {
                            goRight = true;
                        }
                    }
                    else
                    {
                        if (goDown || goLeft || goTop)
                        {
                            goRight = false;
                        }
                    }

                    if (Input.GetKeyDown(ConsoleKey.NumPad1) && nowMode == 2)
                    {
                        speedChange = -4;
                        if (ki != null && !ki.isDown)
                        {
                            ki.down();
                        }
                    }
                    else if (nowMode == 2)
                    {
                        speedChange = 0;
                        if (ki != null && ki.isDown)
                        {
                            ki.up();
                        }
                    }
                }

                if (player == 2)
                {
                    if (Input.GetKeyDown(ConsoleKey.W))
                    {
                        if (!goDown)
                        {
                            goTop = true;
                        }
                    }
                    else
                    {
                        if (goDown || goLeft || goRight)
                        {
                            goTop = false;
                        }
                    }
                    if (Input.GetKeyDown(ConsoleKey.S))
                    {
                        if (!goTop)
                        {
                            goDown = true;
                        }
                    }
                    else
                    {
                        if (goTop || goLeft || goRight)
                        {
                            goDown = false;
                        }
                    }
                    if (Input.GetKeyDown(ConsoleKey.A))
                    {
                        if (!goRight)
                        {
                            goLeft = true;
                        }
                    }
                    else
                    {
                        if (goDown || goTop || goRight)
                        {
                            goLeft = false;
                        }
                    }
                    if (Input.GetKeyDown(ConsoleKey.D))
                    {
                        if (!goLeft)
                        {
                            goRight = true;
                        }
                    }
                    else
                    {
                        if (goDown || goLeft || goTop)
                        {
                            goRight = false;
                        }
                    }

                    if (Input.GetKeyDown(ConsoleKey.J) && nowMode == 2)
                    {
                        speedChange = -4;
                        if (ki != null && !ki.isDown)
                        {
                            ki.down();
                        }
                    }
                    else if (nowMode == 2)
                    {
                        speedChange = 0;
                        if (ki != null && ki.isDown)
                        {
                            ki.up();
                        }
                    }


                    if (Input.GetKeyDown(ConsoleKey.J) && nowMode == 3)
                    {
                        if (jKi != null && !jKi.isDown)
                        {
                            jKi.down();
                        }
                    }
                    else if (nowMode == 3)
                    {
                        if (jKi != null && jKi.isDown)
                        {
                            jKi.up();
                        }
                    }



                    if (Input.GetKeyDown(ConsoleKey.K) && nowMode == 3)
                    {
                        speedChange = -4;
                        if (ki != null && !ki.isDown)
                        {
                            ki.down();
                        }
                    }
                    else if (nowMode == 3)
                    {
                        speedChange = 0;
                        if (ki != null && ki.isDown)
                        {
                            ki.up();
                        }
                    }
                }

                if (Program.WaitFrame(snackNormalSpeed + speedChange))
                {
                    //判断撞对面尾巴
                    if (nowMode == 2 && otherPlayer != null)
                    {
                        if (otherPlayer.allBody.Exists(t => (int)t.Position.X == (int)Position.X && (int)t.Position.Y == (int)Position.Y && t.Visible))
                        {
                            Enabled = false;

                            ExplodeController ec = new ExplodeController();
                            ec.ExploadOn(Position, ConsoleColor.DarkRed);
                            if (nowMode == 2 && m2C != null)
                            {
                                m2C.GameOver(player == 1 ? 2 : 1);
                                otherPlayer.Enabled = false;
                            }
                            return;
                        }
                    }
                    if (nowMode == 2)
                    {
                        if (goTop)
                        {
                            if (!(Position.Y - 1 < 4))
                            {
                                MoveOffset(0, -1);
                            }
                        }
                        if (goDown)
                        {
                            if (!(Position.Y + 1 > 29))
                            {
                                MoveOffset(0, 1);
                            }
                        }
                        if (goLeft)
                        {
                            if (!(Position.X - 1 < 4))
                            {
                                MoveOffset(-1, 0);
                            }
                        }
                        if (goRight)
                        {
                            if (!(Position.X + 1 > 45))
                            {
                                MoveOffset(1, 0);
                            }
                        }
                    }
                    else
                    {
                        if (goTop)
                        {
                            MoveOffset(0, -1);
                        }
                        if (goDown)
                        {
                            MoveOffset(0, 1);
                        }
                        if (goLeft)
                        {
                            MoveOffset(-1, 0);
                        }
                        if (goRight)
                        {
                            MoveOffset(1, 0);
                        }
                    }


                    //判断撞墙
                    if (Position.X < 4 || Position.X > 45 || Position.Y < 4 || Position.Y > 29)
                    {
                        if (nowMode == 1 || nowMode == 3)
                        {
                            Enabled = false;
                            ExplodeController ec = new ExplodeController();
                            ec.ExploadOn(Position, ConsoleColor.DarkRed);
                            if (nowMode == 1 && m1C != null)
                            {
                                m1C.GameOver();
                            }
                            if (nowMode == 3 && m3C != null)
                            {
                                m3C.GameOver();
                            }
                            return;
                        }
                        else if (nowMode == 2)
                        {
                            if (Position.X < 4 || Position.X > 45)
                            {
                                if (Position.Y < 4)
                                {
                                    goDown = true;
                                }
                                else
                                {
                                    goTop = true;
                                }

                                if (goLeft)
                                {
                                    goLeft = false;
                                }
                                else
                                {
                                    goRight = false;
                                }
                            }
                            if (Position.Y < 4 || Position.Y > 29)
                            {
                                if (Position.X < 4)
                                {
                                    goRight = true;
                                }
                                else
                                {
                                    goLeft = true;
                                }
                                if (goTop)
                                {
                                    goTop = false;
                                }
                                else
                                {
                                    goDown = false;
                                }
                            }
                        }
                    }

                    //判断撞自己尾巴

                    if (allBody.Exists(t => (int)t.Position.X == (int)Position.X && (int)t.Position.Y == (int)Position.Y && t.Visible && allBody.IndexOf(t) != 0))
                    {
                        Enabled = false;
                        ExplodeController ec = new ExplodeController();
                        ec.ExploadOn(Position, ConsoleColor.DarkRed);
                        if (nowMode == 1 && m1C != null)
                        {
                            m1C.GameOver();
                        }
                        if (nowMode == 2 && m2C != null)
                        {
                            m2C.GameOver(player == 1 ? 2 : 1);
                            otherPlayer.Enabled = false;
                        }
                        if (nowMode == 3 && m3C != null)
                        {
                            m3C.GameOver();
                        }
                        return;
                    }



                    //判断吃食
                    if (fc != null && fc.allFoods.Exists(t => ((int)t.Position.X >= (int)Position.X - 1 && (int)t.Position.X <= (int)Position.X + 1) && ((int)t.Position.Y >= (int)Position.Y - 1 && (int)t.Position.Y <= (int)Position.Y + 1) && t.Visible))
                    {
                        NormalFood nf = fc.allFoods.Where(t => ((int)t.Position.X >= (int)Position.X - 1 && (int)t.Position.X <= (int)Position.X + 1) && ((int)t.Position.Y >= (int)Position.Y - 1 && (int)t.Position.Y <= (int)Position.Y + 1) && t.Visible).FirstOrDefault();

                        ExplodeController ec = new ExplodeController();

                        if (nowMode == 1)
                        {
                            MsgBoxController msgBoxController = new MsgBoxController();
                            msgBoxController.ShowMsgBox(Position + new Vector2(-1, -2), "+1");
                        }

                        if (nowMode == 3)
                        {
                            if (pbc != null)
                            {
                                pbc.AddBullet(1);
                            }
                        }

                        fc.allFoods.Remove(nf);
                        ec.ExploadOn(Position, nf.fColor);

                        nf.Clear();
                        AddOneBody(nf.fColor);

                        if (m1C != null)
                        {
                            m1C.m1sc.Score++;
                        }
                    }

                    //判断吃速度Buff
                    if (fc != null && fc.allSpeedFoods.Exists(t => ((int)t.Position.X >= (int)Position.X - 1 && (int)t.Position.X <= (int)Position.X + 1) && ((int)t.Position.Y >= (int)Position.Y - 1 && (int)t.Position.Y <= (int)Position.Y + 1) && t.Visible))
                    {
                        SpeedFood sf = fc.allSpeedFoods.Where(t => ((int)t.Position.X >= (int)Position.X - 1 && (int)t.Position.X <= (int)Position.X + 1) && ((int)t.Position.Y >= (int)Position.Y - 1 && (int)t.Position.Y <= (int)Position.Y + 1) && t.Visible).FirstOrDefault();

                        ExplodeController ec = new ExplodeController();

                        if (nowMode == 1)
                        {
                            MsgBoxController msgBoxController = new MsgBoxController();
                            msgBoxController.ShowMsgBox(Position + new Vector2(-1, -2), "加速");
                        }
                        fc.allSpeedFoods.Remove(sf);
                        ec.ExploadOn(Position, ConsoleColor.White);

                        sf.Clear();

                        SpeedUp(4, 3000);
                    }

                    //判断速度buff撞自己尾巴
                    foreach (SpeedFood item1 in fc.allSpeedFoods)
                    {
                        foreach (PlayerSnackBody item2 in allBody)
                        {
                            if ((int)item1.Position.X == (int)item2.Position.X && (int)item1.Position.Y == (int)item2.Position.Y && item1.Visible == true)
                            {
                                DelOneBody();
                                ExplodeController ec = new ExplodeController();

                                if (nowMode == 1)
                                {
                                    MsgBoxController msgBoxController = new MsgBoxController();
                                    msgBoxController.ShowMsgBox(item2.Position + new Vector2(-1, -2), "-1");
                                }
                                if (m1C != null)
                                {
                                    m1C.m1sc.Score--;
                                }


                                ec.ExploadOn(item2.Position, ConsoleColor.DarkRed);
                                goto Out;
                            }
                        }
                    }
                    Out : { }

                    //判断子弹撞自己尾巴
                    foreach (BulletFood item1 in fc.allBulletFoods)
                    {
                        foreach (PlayerSnackBody item2 in allBody)
                        {
                            if (((int)item1.Position.X >= (int)item2.Position.X - 1 && (int)item1.Position.X <= (int)item2.Position.X + 1) && ((int)item1.Position.Y >= (int)item2.Position.Y - 1 && (int)item1.Position.Y <= (int)item2.Position.Y + 1) && item1.Visible)
                            {
                                DelOneBody();
                                ExplodeController ec = new ExplodeController();
                                ec.ExploadOn(item2.Position, ConsoleColor.DarkRed);

                                item1.Clear();

                                fc.allBulletFoods.Remove(item1);

                                if (allBody.Count == 0 && nowMode == 3)
                                {
                                    Enabled = false;
                                    m3C.GameOver();
                                }

                                goto Out1;
                            }
                        }
                    }
                    Out1 : { }

                    //判断撞子弹
                    if (fc.allBulletFoods.Exists(t => (int)t.Position.X == (int)Position.X && (int)t.Position.Y == (int)Position.Y && t.Visible))
                    {
                        Enabled = false;
                        ExplodeController ec = new ExplodeController();
                        ec.ExploadOn(Position, ConsoleColor.DarkRed);
                        //if (nowMode == 1 && m1C != null)
                        //{
                        //    m1C.GameOver();
                        //}
                        //if (nowMode == 2 && m2C != null)
                        //{
                        //    m2C.GameOver(player == 1 ? 2 : 1);
                        //    otherPlayer.Enabled = false;
                        //}
                        if (nowMode == 3 && m3C != null)
                        {
                            m3C.GameOver();
                        }
                        return;
                    }
                }
            }
        }