Guest User

Untitled

a guest
Feb 21st, 2017
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.95 KB | None | 0 0
  1. namespace _03.NetherRealms
  2. {
  3.     using System;
  4.     using System.Linq;
  5.     using System.Text.RegularExpressions;
  6.  
  7.     class RealmsMain
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             string[] demons = Console.ReadLine().Split(new char[] { ' ', ',', '\t' }, StringSplitOptions.RemoveEmptyEntries).OrderBy(d => d).ToArray();
  12.  
  13.             foreach (string demon in demons)
  14.             {
  15.                 double demonHealth = GetDemonHealth(demon);
  16.                 decimal demonDamage = GetDemonDamage(demon);
  17.                 Console.WriteLine($"{demon} - {demonHealth} health, {demonDamage:F2} damage");
  18.             }
  19.         }
  20.  
  21.         private static decimal GetDemonDamage(string demon)
  22.         {
  23.             string demontDamagePattern = @"[\-\+]?[\d]+(?:[\.]*[\d]+|[\d]*)";
  24.             Regex regex = new Regex(demontDamagePattern);
  25.             MatchCollection collection = regex.Matches(demon);
  26.             decimal damage = 0;
  27.             foreach (var number in collection)
  28.             {
  29.                 damage += decimal.Parse(number.ToString());
  30.             }
  31.  
  32.             foreach (char c in demon.Where(c => c == '*' || c == '/'))
  33.             {
  34.                 if (c == '*')
  35.                 {
  36.                     damage *= 2;
  37.                 }
  38.                 else
  39.                 {
  40.                     damage /= 2;
  41.                 }
  42.             }
  43.  
  44.             return damage;
  45.         }
  46.  
  47.         private static double GetDemonHealth(string demon)
  48.         {
  49.             string demonHealthPattern = @"[^\d\.\+\-\*\/\s\,]";
  50.             Regex regex = new Regex(demonHealthPattern);
  51.             MatchCollection collection = regex.Matches(demon);
  52.             double health = 0;
  53.             foreach (Match str in collection)
  54.             {
  55.                 foreach (char c in str.ToString())
  56.                 {
  57.                     health += (int)c;
  58.                 }
  59.             }
  60.  
  61.             return health;
  62.         }
  63.     }
  64. }
Add Comment
Please, Sign In to add comment