private void Print() { foreach (Rabbit Rabbit in Rabbits) { FieldArray[Rabbit.GetX() - 1, Rabbit.GetY() - 1] = 3; } foreach (Wolf Wolf in Wolfs) { FieldArray[Wolf.GetX() - 1, Wolf.GetY() - 1] = 1; } foreach (FemaleWolf femaleWolf in FemaleWolfs) { FieldArray[femaleWolf.GetX() - 1, femaleWolf.GetY() - 1] = 2; } }
private void button1_Click(object sender, EventArgs e) { Object rabbitNeighbor = null; Object femaleWolfNeighbor = null; for (int i = 0; i < Wolfs.Count(); i++) //Wolf { if (Wolfs[i].GetScore() <= 0) { Wolfs.Remove(Wolfs[i]); } else { foreach (Rabbit rabbit in Rabbits) { rabbitNeighbor = Wolfs[i].CheckNeighbors <Rabbit>(rabbit, rabbit.GetX(), rabbit.GetY()); if (rabbitNeighbor != null) { bool caughtКabbit = Wolfs[i].СhaseForRabbit(rabbit.GetX(), rabbit.GetY()); if (caughtКabbit) { Rabbits.Remove(rabbit); FieldArray[rabbit.GetX() - 1, rabbit.GetY() - 1] = 4; } break; } } if (rabbitNeighbor == null) { foreach (FemaleWolf femaleWolf in FemaleWolfs) { femaleWolfNeighbor = Wolfs[i].CheckNeighbors <FemaleWolf>(femaleWolf, femaleWolf.GetX(), femaleWolf.GetY()); if (femaleWolfNeighbor != null) { bool birth = Wolfs[i].СhaseForFemaleWolf(femaleWolf.GetX(), femaleWolf.GetY()); if (birth) { var rand = new Random(); int x = rand.Next(1, 21); int y = rand.Next(1, 21); for (int j = 0; j < CountWolf; j++) { while (Wolfs[i].GetX() == x && Wolfs[i].GetY() == y) { x = rand.Next(1, 21); y = rand.Next(1, 21); } } Wolfs.Add(new Wolf(x, y)); } break; } } } if (femaleWolfNeighbor == null && rabbitNeighbor == null) { Wolfs[i].Step(); for (int j = 0; j < Wolfs.Count(); j++) { if ((j != i)) { while (Wolfs[j].GetX() == Wolfs[i].GetX() && Wolfs[j].GetY() == Wolfs[i].GetY()) { Wolfs[i].Step(); } } } } } } foreach (Wolf Wolf in Wolfs) { if (FieldArray[Wolf.GetX() - 1, Wolf.GetY() - 1] == 1) { FieldArray[Wolf.GetX() - 1, Wolf.GetY() - 1] = 4; } else { FieldArray[Wolf.GetX() - 1, Wolf.GetY() - 1] = 1; } } rabbitNeighbor = null; for (int i = 0; i < FemaleWolfs.Count(); i++) //FemaleWolfs { if (FemaleWolfs[i].GetScore() <= 0) { FemaleWolfs.Remove(FemaleWolfs[i]); } else { foreach (Rabbit rabbit in Rabbits) { rabbitNeighbor = FemaleWolfs[i].CheckNeighbors <Rabbit>(rabbit, rabbit.GetX(), rabbit.GetY()); if (rabbitNeighbor != null) { bool caughtКabbit = FemaleWolfs[i].СhaseForRabbit(rabbit.GetX(), rabbit.GetY()); if (caughtКabbit) { Rabbits.Remove(rabbit); FieldArray[rabbit.GetX() - 1, rabbit.GetY() - 1] = 4; } break; } } if (rabbitNeighbor == null) { bool Empty = false; while (!Empty) { FemaleWolfs[i].Step(); for (int j = 0; j < FemaleWolfs.Count(); j++) { if ((j != i)) { while (FemaleWolfs[j].GetX() == FemaleWolfs[i].GetX() && FemaleWolfs[j].GetY() == FemaleWolfs[i].GetY()) { FemaleWolfs[i].Step(); } } } Empty = Model.IsFree(FemaleWolfs[i].GetX(), FemaleWolfs[i].GetY(), FieldArray); } } } } foreach (FemaleWolf femaleWolf in FemaleWolfs) { if (FieldArray[femaleWolf.GetX() - 1, femaleWolf.GetY() - 1] == 1 || FieldArray[femaleWolf.GetX() - 1, femaleWolf.GetY() - 1] == 4 || FieldArray[femaleWolf.GetX() - 1, femaleWolf.GetY() - 1] == 2) { FieldArray[femaleWolf.GetX() - 1, femaleWolf.GetY() - 1] = 4; } else { FieldArray[femaleWolf.GetX() - 1, femaleWolf.GetY() - 1] = 2; } } for (int i = 0; i < Rabbits.Count(); i++) //Rabbits { bool Empty = false; while (!Empty) { Rabbits[i].Step(); for (int j = 0; j < Rabbits.Count(); j++) { if ((j != i)) { while (Rabbits[j].GetX() == Rabbits[i].GetX() && Rabbits[j].GetY() == Rabbits[i].GetY()) { Rabbits[i].Step(); } } } Empty = Model.IsFree(Rabbits[i].GetX(), Rabbits[i].GetY(), FieldArray); } if (Rabbits[i].Birth()) { var rand = new Random(); int x = rand.Next(1, 21); int y = rand.Next(1, 21); for (int j = 0; j < countRabbit; j++) { while (Rabbits[i].GetX() == x && Rabbits[i].GetY() == y) { x = rand.Next(1, 21); y = rand.Next(1, 21); } } Rabbits.Add(new Rabbit(x, y)); } } foreach (Rabbit Rabbit in Rabbits) { if (FieldArray[Rabbit.GetX() - 1, Rabbit.GetY() - 1] == 1 || FieldArray[Rabbit.GetX() - 1, Rabbit.GetY() - 1] == 2 || FieldArray[Rabbit.GetX() - 1, Rabbit.GetY() - 1] == 4) { FieldArray[Rabbit.GetX() - 1, Rabbit.GetY() - 1] = 4; } else { FieldArray[Rabbit.GetX() - 1, Rabbit.GetY() - 1] = 3; } } CountWolf = Wolfs.Count(); countRabbit = Rabbits.Count(); UpdatePanels(); PrintScore(); PrintCount(); label11.Text = ""; if (Rabbits.Count() > 400) { label11.Text += "Rabbits - win"; label11.Text += "\r\n"; label11.Text += "please click initialization"; ClearField(); } if (Rabbits.Count() == 0) { label11.Text += "Wolfs and FemaleWolfs - win"; label11.Text += "\r\n"; label11.Text += "please click initialization"; ClearField(); } }