Arxero

Untitled

Oct 31st, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Text.RegularExpressions;
  7.  
  8. namespace _02.Hornet_Comm
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             List<string> privarMessages = new List<string>();
  15.             List<string> broadcastMessages = new List<string>();
  16.  
  17.             string patternPriviteMassage = @"(^\d+)\s<->\s([A-Za-z0-9]+)$";
  18.             string patternBroadCasts = @"(^\D+)\s<->\s([A-Za-z0-9]+)$";
  19.             Regex broadCastsRegex = new Regex(patternBroadCasts);
  20.             Regex privateMassageRegex = new Regex(patternPriviteMassage);
  21.  
  22.             while (true)
  23.             {
  24.                 var inputLine = Console.ReadLine();
  25.                 if (inputLine == "Hornet is Green")
  26.                 {
  27.                     break;
  28.                 }
  29.                 //var inputTokens = inputLine.Split(new string[] { " <-> " }, StringSplitOptions.RemoveEmptyEntries);
  30.  
  31.                 //if (inputTokens.Length != 2)
  32.                 //{
  33.                 //    continue;
  34.                 //}
  35.  
  36.                 //var firstQuery = inputTokens[0];
  37.                 //var secondQuery = inputTokens[1];
  38.                
  39.                 if (privateMassageRegex.IsMatch(inputLine))
  40.                 {
  41.                     //ProcessPrivatMessages(privarMessages, firstQuery, secondQuery);
  42.                     var match = privateMassageRegex.Match(inputLine);
  43.                     var firstQuery = match.Groups[1].Value;
  44.                     var massage = match.Groups[2].Value;
  45.                     ProcessPrivatMessages(privarMessages, firstQuery, massage);
  46.                 }
  47.                 else
  48.                 {
  49.                     //if (Regex.Match(firstQuery, "[\\D]+").Success)// && Regex.Match(secondQuery, @"([A-Za-z0-9]+)$").Success)
  50.                     //{
  51.                     //    ProcessBroadcastMessages(broadcastMessages, firstQuery, secondQuery);
  52.                     //}
  53.                     if (broadCastsRegex.IsMatch(inputLine))
  54.                     {
  55.                         var match = broadCastsRegex.Match(inputLine);
  56.                         var firstQuery = match.Groups[1].Value;
  57.                         var secondQuery = match.Groups[2].Value;
  58.                         ProcessBroadcastMessages(broadcastMessages, firstQuery, secondQuery);
  59.                     }
  60.                 }
  61.             }
  62.  
  63.             Console.WriteLine("Broadcasts:");
  64.             if (broadcastMessages.Count <= 0)
  65.                 Console.WriteLine("None");
  66.             else
  67.             {
  68.                 for (int i = 1; i < broadcastMessages.Count; i += 2)
  69.                 {
  70.                     Console.WriteLine($"{broadcastMessages[i - 1]} -> {broadcastMessages[i]}");
  71.                 }
  72.             }
  73.             Console.WriteLine("Messages:");
  74.             if (privarMessages.Count <= 0)
  75.                 Console.WriteLine("None");
  76.             else
  77.             {
  78.                 for (int i = 1; i < privarMessages.Count; i += 2)
  79.                 {
  80.                     Console.WriteLine($"{privarMessages[i - 1]} -> {privarMessages[i]}");
  81.                 }
  82.             }
  83.         }
  84.  
  85.         static void ProcessPrivatMessages(List<string> privarMessages, string firstQuery, string secondQuery)
  86.         {
  87.             var recipient = new string(firstQuery.ToArray().Reverse().ToArray());
  88.             var message = secondQuery;
  89.  
  90.             privarMessages.Add(recipient);
  91.             privarMessages.Add(message);
  92.         }
  93.  
  94.         static void ProcessBroadcastMessages(List<string> broadcastMessages, string firstQuery, string secondQuery)
  95.         {
  96.             string message = firstQuery;
  97.             string frequancy = secondQuery;
  98.  
  99.             StringBuilder newFrequancy = new StringBuilder();
  100.             foreach (var ch in frequancy)
  101.             {
  102.                 if (char.IsLetter(ch))
  103.                 {
  104.                     if (char.IsUpper(ch))
  105.                     {
  106.                         newFrequancy.Append(char.ToLower(ch));
  107.                     }
  108.                     else
  109.                     {
  110.                         newFrequancy.Append(char.ToUpper(ch));
  111.                     }
  112.                 }
  113.                 else
  114.                 {
  115.                     newFrequancy.Append(ch);
  116.                 }
  117.             }
  118.  
  119.             broadcastMessages.Add(newFrequancy.ToString());
  120.             broadcastMessages.Add(message);
  121.         }
  122.     }
  123. }
Add Comment
Please, Sign In to add comment