Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Mama
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Enter your rabbits: (Name Age Power)");
- Console.WriteLine("Your rabbits must be over 10 and under 80 years old");
- Console.WriteLine("You can kill every rabbit that you want if it exist: (kill-RabbitName)");
- Console.WriteLine("Write: (end) or leave empty line if you are ready");
- List<Rabbit> allRabbits = new List<Rabbit>();
- while (true)
- {
- string end = Console.ReadLine();
- if (string.IsNullOrEmpty(end) || end == "end")
- {
- break;
- }
- List<string> inputOfRabbits = end.Split(" ", StringSplitOptions.RemoveEmptyEntries).ToList();
- if (inputOfRabbits.Contains("kill"))
- {
- string name = inputOfRabbits[1];
- if (allRabbits.Any(x => x.Name == name))
- {
- allRabbits.RemoveAll(x => x.Name == name);
- Console.WriteLine($"Bye bye {name}");
- }
- else
- {
- Console.WriteLine("This rabbit doesn't exist");
- }
- }
- else if (IsRabbitValid(inputOfRabbits) == true)
- {
- if (int.Parse(inputOfRabbits[1]) <= 10)
- {
- Console.WriteLine($"{inputOfRabbits[0]} is too young!");
- }
- else if (int.Parse(inputOfRabbits[1]) >= 80)
- {
- Console.WriteLine($"{inputOfRabbits[0]} is too old!");
- }
- else
- {
- AddRabbit(allRabbits, inputOfRabbits);
- }
- }
- else if (IsRabbitValid(inputOfRabbits) == false)
- {
- Console.WriteLine("Invalid Rabbit");
- }
- KillRabbits(allRabbits);
- }
- Console.WriteLine("All rabbits ready for fight:");
- PrintAllRabbits(allRabbits);
- Console.WriteLine();
- Console.WriteLine("Write: (RabbitName vs RabbitName) for fight");
- Console.WriteLine("When some rabbit win fight he lose 10 power");
- while (true)
- {
- string end = Console.ReadLine();
- if (string.IsNullOrEmpty(end) || end == "end")
- {
- break;
- }
- List<string> inputOfRabbits = end.Split(" ", StringSplitOptions.RemoveEmptyEntries).ToList();
- if (inputOfRabbits.Contains("vs"))
- {
- Fight(allRabbits, inputOfRabbits);
- }
- }
- Console.WriteLine("Winners:");
- PrintAllRabbits(allRabbits.OrderByDescending(x => x.Health).ToList());
- }
- static void AddRabbit(List<Rabbit> allRabbits, List<string> inputOfRabbits)
- {
- string name = inputOfRabbits[0];
- int age = int.Parse(inputOfRabbits[1]);
- double power = double.Parse(inputOfRabbits[2]);
- allRabbits.Add(new Rabbit(name, age, power));
- }
- static bool IsRabbitValid(List<string> inputOfRabbits)
- {
- //int.TryParse(inputOfRabbits[1], out int age)
- if (inputOfRabbits.Count == 3 && inputOfRabbits[1].All(char.IsDigit) && inputOfRabbits[2].All(char.IsDigit))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- static void Fight(List<Rabbit> allRabbits, List<string> inputOfRabbits)
- {
- Random randomHealth = new Random();
- string firstRabbitName = inputOfRabbits[0];
- string secondRabbitName = inputOfRabbits[2];
- if (allRabbits.Any(x => x.Name == firstRabbitName) && allRabbits.Any(x=> x.Name == secondRabbitName))
- {
- var firstRabbit = allRabbits.Find(x => x.Name == firstRabbitName);
- var secondRabbit = allRabbits.Find(x => x.Name == secondRabbitName);
- if (firstRabbit.Power > secondRabbit.Power)
- {
- double number = randomHealth.Next(1, 100);
- Console.WriteLine($"Winner: {firstRabbit.Name}");
- Console.WriteLine($"Damage from {firstRabbit.Name}: {number}");
- firstRabbit.Power = firstRabbit.Power - 10;
- secondRabbit.Health = secondRabbit.Health - number;
- if (secondRabbit.Health <= 0)
- {
- allRabbits.Remove(secondRabbit);
- Console.WriteLine($"{secondRabbit.Name} died");
- }
- else
- {
- Console.WriteLine($"{secondRabbit.Name}'s current health: {secondRabbit.Health}");
- }
- }
- else if(firstRabbit.Power < secondRabbit.Power)
- {
- double number = randomHealth.Next(1, 100);
- Console.WriteLine($"Winner: {secondRabbit.Name}");
- Console.WriteLine($"Damage from {secondRabbit.Name}: {number}");
- secondRabbit.Power = secondRabbit.Power - 10;
- firstRabbit.Health = firstRabbit.Health - number;
- if (firstRabbit.Health <= 0)
- {
- allRabbits.Remove(firstRabbit);
- Console.WriteLine($"{firstRabbit.Name} died");
- }
- else
- {
- Console.WriteLine($"{firstRabbit.Name}'s current health: {firstRabbit.Health}");
- }
- }
- else
- {
- Console.WriteLine("Tie");
- }
- }
- else
- {
- Console.WriteLine("Enter exist rabbit");
- }
- }
- static void KillRabbits(List<Rabbit> allRabbits)
- {
- allRabbits.RemoveAll(x => x.Health <= 0);
- }
- static void PrintAllRabbits(List<Rabbit> allRabbits)
- {
- foreach (var rabbit in allRabbits)
- {
- Console.WriteLine($"{rabbit.Name}, Age -- {rabbit.Age}, Power -- {rabbit.Power}, Health -- {rabbit.Health},Color -- {rabbit.Color}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement