Ledger Nano X - The secure hardware wallet
SHARE
TWEET

3

AlexVanchov Apr 4th, 2020 122 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4. namespace Problem_3
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Dictionary<string, List<int>> heroes = new Dictionary<string, List<int>>();
  11.             int n = int.Parse(Console.ReadLine());
  12.             for (int i = 0; i < n; i++)
  13.             {
  14.                 string character = Console.ReadLine();
  15.                 string[] charachterStats = character.Split(" ").ToArray();
  16.                 string name = charachterStats[0];
  17.                 int HP = int.Parse(charachterStats[1]);
  18.                 int MP = int.Parse(charachterStats[2]);
  19.                 heroes.Add(name, new List<int>());
  20.                 heroes[name].Add(HP);
  21.                 heroes[name].Add(MP);
  22.  
  23.             }
  24.             string command = Console.ReadLine();
  25.             while (command != "End")
  26.             {
  27.                 string[] arr = command.Split(" - ").ToArray();
  28.                 if (arr[0] == "CastSpell")
  29.                 {
  30.                     string name = arr[1];
  31.                     int manaCost = int.Parse(arr[2]);
  32.                     string nameSpell = arr[3];
  33.                     if (heroes[name][1] >= manaCost)
  34.                     {
  35.                         heroes[name][1] -= manaCost;
  36.                         Console.WriteLine($"{name} has successfully cast {nameSpell} and now has {heroes[name][1]} MP!");
  37.                     }
  38.                     else
  39.                     {
  40.                         Console.WriteLine($"{name} does not have enough MP to cast {nameSpell}!");
  41.                     }
  42.                 }
  43.                 else if (arr[0] == "TakeDamage")
  44.                 {
  45.                     string name = arr[1];
  46.                     int damageTaken = int.Parse(arr[2]);
  47.                     string attacker = arr[3];
  48.                     if (heroes[name][0] - damageTaken > 0)
  49.                     {
  50.                         heroes[name][0] -= damageTaken;
  51.                         Console.WriteLine($"{name} was hit for {damageTaken} HP by {attacker} and now has {heroes[name][0]} HP left!");
  52.                     }
  53.                     else
  54.                     {
  55.                         heroes.Remove(name);
  56.                         Console.WriteLine($"{name} has been killed by {attacker}!");
  57.                     }
  58.                 }
  59.                 else if (arr[0] == "Recharge")
  60.                 {
  61.                     string name = arr[1];
  62.                     int plusMana = int.Parse(arr[2]);
  63.  
  64.                     if (heroes[name][1] + plusMana >= 200)
  65.                     {
  66.                         heroes[name][1] = 200;
  67.                         var recovered = 200 - heroes[name][1];
  68.                         Console.WriteLine($"{name} recharged for {recovered} MP!");
  69.                     }
  70.                     else
  71.                     {
  72.                         heroes[name][1] += plusMana;
  73.                         Console.WriteLine($"{name} recharged for {plusMana} MP!");
  74.                     }
  75.                 }
  76.                 else if (arr[0] == "Heal")
  77.                 {
  78.                     string name = arr[1];
  79.                     int amount = int.Parse(arr[2]);
  80.                     if (heroes[name][0] + amount >= 100)
  81.                     {
  82.                         heroes[name][0] = 100;
  83.                         var recovered = 100 - heroes[name][0];
  84.                         Console.WriteLine($"{name} healed for {recovered} HP!");
  85.                     }
  86.                     else
  87.                     {
  88.                         heroes[name][0] += amount;
  89.  
  90.                         Console.WriteLine($"{name} healed for {amount} HP!");
  91.                     }
  92.                 }
  93.                 else
  94.                 {
  95.                     break;
  96.                 }
  97.                 command = Console.ReadLine();
  98.             }
  99.  
  100.             var sortedHeroes = heroes.OrderByDescending(x => x.Value[0]).ThenBy(x => x.Key).ToList();
  101.             foreach (var item in sortedHeroes)
  102.             {
  103.                 Console.WriteLine($"{item.Key}");
  104.                 Console.WriteLine($"  HP: {item.Value[0]}");
  105.                 Console.WriteLine($"  MP: {item.Value[1]}");
  106.             }
  107.         }
  108.     }
  109. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top