Advertisement
krasi1105

Nether-Realms

Feb 25th, 2017
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.70 KB | None | 0 0
  1. namespace NetherRealmsReal
  2. {
  3.     using System;
  4.     using System.Collections.Generic;
  5.     using System.Linq;
  6.     using System.Text;
  7.     using System.Text.RegularExpressions;
  8.  
  9.     public class NetherRealms
  10.     {
  11.         public static void Main(string[] args)
  12.         {
  13.             var demons = Console.ReadLine().
  14.                 Split(new[] { ' ', ',', '\t' },
  15.                 StringSplitOptions.RemoveEmptyEntries)
  16.                 .ToList();
  17.             var demonBook = new SortedDictionary<string, List<decimal>>();
  18.             foreach (var demon in demons)
  19.             {
  20.                 if (!demonBook.ContainsKey(demon))
  21.                 {
  22.                     demonBook[demon] = new List<decimal>();
  23.                 }
  24.                 var regex = new Regex(@"[^0-9+\-*\/\.]");//fixed regex
  25.                 var matches = regex.Matches(demon);
  26.                 var letters = new StringBuilder();
  27.                 foreach (var match in matches)
  28.                 {
  29.                     letters.Append(match);
  30.                 }
  31.                 decimal health = default(decimal);
  32.                 var name = letters.ToString();
  33.                 foreach (var chars in name)
  34.                 {
  35.                     var ascii = (char)chars;
  36.                     health += ascii;
  37.                 }
  38.                 demonBook[demon].Add(health);
  39.  
  40.                 var numbersRegex = new Regex(@"[+-]?\d+(?:\.?\d+)?");
  41.                 var secondMatch = numbersRegex.Matches(demon);
  42.                 var numbers = new List<string>();
  43.                 foreach (var match in secondMatch)
  44.                 {
  45.                     numbers.Add(match.ToString());
  46.                 }
  47.                 decimal damage = default(decimal);
  48.                 var symbol = new List<string>();
  49.                 foreach (var item in numbers)
  50.                 {
  51.                     //if (!item.EndsWith("*") && !item.EndsWith("/"))
  52.                     //{
  53.                         damage += decimal.Parse(item);
  54.                     //}
  55.                     //else
  56.                     //{
  57.                     //    var symbolregex = new Regex(@"[*\/]");
  58.                     //    var symbolmatch = symbolregex.Matches(demon);
  59.                     //    foreach (var sign in symbolmatch)
  60.                     //    {
  61.                     //        symbol.Add(sign.ToString());
  62.                     //    }
  63.                     //    var digitRegex = new Regex(@"[+-]?\d+(?:\.?\d+)?");//fixed regex
  64.                     //    var digitMatch = digitRegex.Matches(item);
  65.                     //    var digit = string.Empty;
  66.                     //    foreach (var dig in digitMatch)
  67.                     //    {
  68.                     //        digit = dig.ToString();
  69.                     //        damage += decimal.Parse(digit);
  70.                     //    }
  71.  
  72.                     //}
  73.                 }
  74.                 var symbolregex = new Regex(@"[*\/]");
  75.                 var symbolmatch = symbolregex.Matches(demon);
  76.                 foreach (var sign in symbolmatch)
  77.                 {
  78.                     symbol.Add(sign.ToString());
  79.                 }
  80.                
  81.                 foreach (var item in symbol)
  82.                 {
  83.                     if (item == "*")
  84.                     {
  85.                         damage *= 2;
  86.                     }
  87.                     else
  88.                     {
  89.                         damage /= 2;
  90.                     }
  91.                 }
  92.                 demonBook[demon].Add(damage);
  93.             }
  94.             foreach (var item in demonBook)
  95.             {
  96.                 Console.Write($"{item.Key} - {item.Value[0]} health, {item.Value[1]:f2} damage");
  97.                 Console.WriteLine();
  98.             }
  99.         }
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement