Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 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.IO;
  7.  
  8.  
  9. namespace Kolokwium
  10. {
  11. class Program
  12. {
  13. const int numberOfElixirs = 4;
  14. public static string[] readData(string path)
  15. {
  16. string[] readText = File.ReadAllLines(path);
  17. return readText;
  18. }
  19.  
  20. public static string[] readElixirsNames(string[] elixirs)
  21. {
  22. string[] names = new string[elixirs.Length];
  23. string temp = "";
  24. int counter = 0;
  25. foreach (string s in elixirs)
  26. {
  27. for(int i = 0; i<s.Length; i++)
  28. {
  29. if (s[i] == ':')
  30. break;
  31. else
  32. temp += s[i];
  33. }
  34. names[counter] = temp;
  35. temp = "";
  36. counter++;
  37. }
  38. return names;
  39. }
  40.  
  41. public static string decodeSymbol(char symbol)
  42. {
  43. switch(symbol)
  44. {
  45. case 'A':
  46. return "Aether";
  47. case 'R':
  48. return "Rebis";
  49. case 'V':
  50. return "Vitriol";
  51. default:
  52. return "";
  53. }
  54. }
  55.  
  56. public static void showResult(string[] elixirs)
  57. {
  58. string[] elixirNames = readElixirsNames(elixirs);
  59. string[] ingredients = new string[elixirs.Length];
  60. int counter = 0;
  61. bool semicolon = false;
  62.  
  63. foreach (string s in elixirs)
  64. {
  65. for(int i=0; i<s.Length; i++)
  66. {
  67. if (s[i] == ':')
  68. semicolon = true;
  69. if(semicolon)
  70. {
  71. i++;
  72. ingredients[counter] += decodeSymbol(s[i]);
  73. ingredients[counter] += ", ";
  74. semicolon = false;
  75. }
  76. }
  77. counter++;
  78. }
  79.  
  80. int a = 0;
  81. foreach (string s in ingredients)
  82. {
  83. Console.Write(elixirNames[a] + ": ");
  84. Console.Write(s);
  85. Console.WriteLine();
  86. a++;
  87. }
  88. }
  89.  
  90. public static string[] uniqueElixirs(string[] elixirs)
  91. {
  92. string[] result = new string[numberOfElixirs];
  93. string[] el = readElixirsNames(elixirs);
  94. int counter = 0;
  95. bool check = false;
  96. foreach (string s in el)
  97. {
  98. for(int i=0; i<numberOfElixirs; i++)
  99. {
  100. if (s == result[i])
  101. check = true;
  102. }
  103. if (!(check))
  104. result[counter++] = s;
  105. check = false;
  106. }
  107.  
  108. return result;
  109. }
  110.  
  111. public static int countUniqueElixirs(string[] elixirs)
  112. {
  113. int result = 0;
  114. foreach (string s in elixirs)
  115. result++;
  116.  
  117. return result;
  118. }
  119.  
  120. public static void writeToFile(string path, string[] elixirs)
  121. {
  122. string[] elixirNames = readElixirsNames(elixirs);
  123. string[] decodedIngredients = new string[elixirs.Length];
  124. int counter = 0;
  125. bool semicolon = false;
  126.  
  127. foreach (string s in elixirs)
  128. {
  129. for (int i = 0; i < s.Length; i++)
  130. {
  131. if (s[i] == ':')
  132. semicolon = true;
  133. if (semicolon)
  134. {
  135. i++;
  136. decodedIngredients[counter] += decodeSymbol(s[i]);
  137. decodedIngredients[counter] += " ";
  138. semicolon = false;
  139. }
  140. }
  141. counter++;
  142. }
  143. for (int i = 0; i < elixirs.Length; i++)
  144. File.AppendAllText(path, (i + 1) + ". " + elixirNames[i] + ": " + decodedIngredients[i] + "\n");
  145.  
  146. }
  147. static void Main(string[] args)
  148. {
  149. Console.Write("Write file name: ");
  150. string path = Console.ReadLine();
  151.  
  152. string[] data = readData(path);
  153. showResult(data);
  154.  
  155. string[] unique = uniqueElixirs(data);
  156. int numberOfElixirs = countUniqueElixirs(unique);
  157.  
  158. Console.Write("\n\nSave file name: ");
  159. string save = Console.ReadLine();
  160.  
  161. writeToFile(save, data);
  162.  
  163. Console.Write("\n\nPress any key to exit...");
  164. Console.ReadKey();
  165. }
  166. }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement