Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.47 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. namespace _4._Elemelons
  6. {
  7. class Program
  8. {
  9. static void Main()
  10. {
  11. int size = int.Parse(Console.ReadLine());
  12.  
  13. List<char[,]> layers = new List<char[,]>();
  14.  
  15. for (int i = 0; i < size; i++)
  16. {
  17. char[,] layer = new char[size, size];
  18. layers.Add(layer);
  19. }
  20.  
  21. //list of layers -> layers 3dim Array
  22. for (int i = 0; i < size; i++)
  23. {
  24. string input = Console.ReadLine();
  25. string[] row = input.Split("|", StringSplitOptions.RemoveEmptyEntries).ToArray();
  26. for (int j = 0; j < row.Length; j++)
  27. {
  28. char[] currRow = row[j].Split(" ", StringSplitOptions.RemoveEmptyEntries).Select(char.Parse).ToArray();
  29. for (int k = 0; k < currRow.Length; k++)
  30. {
  31. char currChar = currRow[k];
  32. layers[j][i, k] = currChar;
  33. }
  34. }
  35. }
  36. while (true)
  37. {
  38. string inputText = Console.ReadLine();
  39. if (inputText == "Melolemonmelon")
  40. {
  41. break;
  42. }
  43. int[] coordCell = inputText.Split(' ').Select(int.Parse).ToArray();
  44.  
  45. int layer = coordCell[0];
  46. int row = coordCell[1];
  47. int column = coordCell[2];
  48.  
  49. layers[layer][row, column] = '0';
  50.  
  51. for (int i = 0; i < layers.Count; i++)
  52. {
  53. char[,] currLayer = layers[i];
  54. for (int j = 0; j < currLayer.GetLength(0); j++)
  55. {
  56. for (int m = 0; m < currLayer.GetLength(1); m++)
  57. {
  58. char currSimbol = currLayer[j, m];
  59. if ((i == layer - 1 && j == row && m == column) || (i == layer + 1 && j == row && m == column))
  60. {
  61. continue;
  62. }
  63. else if ((i == layer && j == row && m == column - 1) ||
  64. (i == layer && j == row && m == column + 1) ||
  65. (i == layer && j == row - 1 && m == column) ||
  66. (i == layer && j == row + 1 && m == column))
  67. {
  68. continue;
  69. }
  70. else
  71. {
  72. switch (currSimbol)
  73. {
  74. case 'W':
  75. layers[i][j, m] = 'E';
  76. break;
  77. case 'E':
  78. layers[i][j, m] = 'F';
  79. break;
  80. case 'F':
  81. layers[i][j, m] = 'A';
  82. break;
  83. case 'A':
  84. layers[i][j, m] = 'W';
  85. break;
  86. }
  87. }
  88. }
  89. }
  90. }
  91. }
  92. int rowIndex = 0;
  93. for (int i = 0; i < size; i++)
  94. {
  95. for (int j = 0; j < layers.Count; j++)
  96. {
  97. char[,] currLayer = layers[j];
  98.  
  99. for (int k = 0; k < currLayer.GetLength(1); k++)
  100. {
  101. char currSimbol = currLayer[rowIndex, k];
  102. if (j == layers.Count - 1 && k == currLayer.GetLength(1) - 1)
  103. {
  104. Console.Write(currSimbol);
  105. continue;
  106. }
  107. Console.Write(currSimbol + " ");
  108. }
  109. if (j != layers.Count - 1)
  110. {
  111. Console.Write("| ");
  112. }
  113. }
  114. rowIndex++;
  115. Console.WriteLine();
  116. }
  117. }
  118. }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement