Advertisement
reking12

Untitled

May 5th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.80 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Mama
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Console.WriteLine("Enter your rabbits: (Name Age Power)");
  12.             Console.WriteLine("Your rabbits must be over 10 and under 80 years old");
  13.             Console.WriteLine("You can kill every rabbit that you want if it exist: (kill-RabbitName)");
  14.             Console.WriteLine("Write: (end) or leave empty line if you are ready");
  15.             List<Rabbit> allRabbits = new List<Rabbit>();
  16.             while (true)
  17.             {
  18.                 string end = Console.ReadLine();
  19.                 if (string.IsNullOrEmpty(end) || end == "end")
  20.                 {
  21.                     break;
  22.                 }
  23.                 List<string> inputOfRabbits = end.Split(" ", StringSplitOptions.RemoveEmptyEntries).ToList();
  24.  
  25.                 if (inputOfRabbits.Contains("kill"))
  26.                 {
  27.                     string name = inputOfRabbits[1];
  28.                     if (allRabbits.Any(x => x.Name == name))
  29.                     {
  30.                         allRabbits.RemoveAll(x => x.Name == name);
  31.                         Console.WriteLine($"Bye bye {name}");
  32.                     }
  33.                     else
  34.                     {
  35.                         Console.WriteLine("This rabbit doesn't exist");
  36.                     }
  37.                 }
  38.                 else if (IsRabbitValid(inputOfRabbits) == true)
  39.                 {
  40.                     if (int.Parse(inputOfRabbits[1]) <= 10)
  41.                     {
  42.                         Console.WriteLine($"{inputOfRabbits[0]} is too young!");
  43.                     }
  44.                     else if (int.Parse(inputOfRabbits[1]) >= 80)
  45.                     {
  46.                         Console.WriteLine($"{inputOfRabbits[0]} is too old!");
  47.                     }
  48.                     else
  49.                     {
  50.                         AddRabbit(allRabbits, inputOfRabbits);
  51.                     }
  52.                    
  53.                 }
  54.                 else if (IsRabbitValid(inputOfRabbits) == false)
  55.                 {
  56.                     Console.WriteLine("Invalid Rabbit");
  57.                 }
  58.                 KillRabbits(allRabbits);
  59.             }
  60.             Console.WriteLine("All rabbits ready for fight:");
  61.             PrintAllRabbits(allRabbits);
  62.             Console.WriteLine();
  63.             Console.WriteLine("Write: (RabbitName vs RabbitName) for fight");
  64.             Console.WriteLine("When some rabbit win fight he lose 10 power");
  65.             while (true)
  66.             {
  67.                 string end = Console.ReadLine();
  68.                 if (string.IsNullOrEmpty(end) || end == "end")
  69.                 {
  70.                     break;
  71.                 }
  72.                 List<string> inputOfRabbits = end.Split(" ", StringSplitOptions.RemoveEmptyEntries).ToList();
  73.                 if (inputOfRabbits.Contains("vs"))
  74.                 {
  75.                     Fight(allRabbits, inputOfRabbits);
  76.                 }
  77.             }
  78.             Console.WriteLine("Winners:");
  79.             PrintAllRabbits(allRabbits.OrderByDescending(x => x.Health).ToList());
  80.            
  81.  
  82.         }
  83.         static void AddRabbit(List<Rabbit> allRabbits, List<string> inputOfRabbits)
  84.         {
  85.             string name = inputOfRabbits[0];
  86.             int age = int.Parse(inputOfRabbits[1]);
  87.             double power = double.Parse(inputOfRabbits[2]);
  88.             allRabbits.Add(new Rabbit(name, age, power));
  89.         }
  90.         static bool IsRabbitValid(List<string> inputOfRabbits)
  91.         {
  92.             //int.TryParse(inputOfRabbits[1], out int age)
  93.             if (inputOfRabbits.Count == 3 && inputOfRabbits[1].All(char.IsDigit) && inputOfRabbits[2].All(char.IsDigit))
  94.             {
  95.                 return true;
  96.             }
  97.             else
  98.             {
  99.                 return false;
  100.             }
  101.         }
  102.         static void Fight(List<Rabbit> allRabbits, List<string> inputOfRabbits)
  103.         {
  104.             Random randomHealth = new Random();
  105.             string firstRabbitName = inputOfRabbits[0];
  106.             string secondRabbitName = inputOfRabbits[2];
  107.             if (allRabbits.Any(x => x.Name == firstRabbitName) && allRabbits.Any(x=> x.Name == secondRabbitName))
  108.             {
  109.                 var firstRabbit = allRabbits.Find(x => x.Name == firstRabbitName);
  110.                 var secondRabbit = allRabbits.Find(x => x.Name == secondRabbitName);
  111.                 if (firstRabbit.Power > secondRabbit.Power)
  112.                 {
  113.                     double number = randomHealth.Next(1, 100);
  114.                     Console.WriteLine($"Winner: {firstRabbit.Name}");
  115.                     Console.WriteLine($"Damage from {firstRabbit.Name}: {number}");
  116.                     firstRabbit.Power = firstRabbit.Power - 10;
  117.                     secondRabbit.Health = secondRabbit.Health - number;
  118.                     if (secondRabbit.Health <= 0)
  119.                     {
  120.                         allRabbits.Remove(secondRabbit);
  121.                         Console.WriteLine($"{secondRabbit.Name} died");
  122.                     }
  123.                     else
  124.                     {
  125.                         Console.WriteLine($"{secondRabbit.Name}'s current health: {secondRabbit.Health}");
  126.                     }
  127.                 }
  128.                 else if(firstRabbit.Power < secondRabbit.Power)
  129.                 {
  130.                     double number = randomHealth.Next(1, 100);
  131.                     Console.WriteLine($"Winner: {secondRabbit.Name}");
  132.                     Console.WriteLine($"Damage from {secondRabbit.Name}: {number}");
  133.                     secondRabbit.Power = secondRabbit.Power - 10;
  134.                     firstRabbit.Health = firstRabbit.Health - number;
  135.                     if (firstRabbit.Health <= 0)
  136.                     {
  137.                         allRabbits.Remove(firstRabbit);
  138.                         Console.WriteLine($"{firstRabbit.Name} died");
  139.                     }
  140.                     else
  141.                     {
  142.                         Console.WriteLine($"{firstRabbit.Name}'s current health: {firstRabbit.Health}");
  143.                     }
  144.                 }
  145.                 else
  146.                 {
  147.                     Console.WriteLine("Tie");
  148.                 }
  149.             }
  150.             else
  151.             {
  152.                 Console.WriteLine("Enter exist rabbit");
  153.             }
  154.         }
  155.         static void KillRabbits(List<Rabbit> allRabbits)
  156.         {
  157.             allRabbits.RemoveAll(x => x.Health <= 0);
  158.         }
  159.         static void PrintAllRabbits(List<Rabbit> allRabbits)
  160.         {
  161.             foreach (var rabbit in allRabbits)
  162.             {
  163.                 Console.WriteLine($"{rabbit.Name}, Age -- {rabbit.Age}, Power -- {rabbit.Power}, Health -- {rabbit.Health},Color -- {rabbit.Color}");
  164.             }
  165.         }
  166.     }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement