Advertisement
Guest User

Untitled

a guest
Mar 5th, 2020
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.43 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Ex04
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             var gardenSize = int.Parse(Console.ReadLine());
  12.  
  13.             var garden = new char[gardenSize][,];
  14.  
  15.             FillGarden(gardenSize, garden);
  16.  
  17.             var command = Console.ReadLine();
  18.  
  19.             while (command != "Melolemonmelon")
  20.             {
  21.                 var doctorCoorinates = command
  22.                     .Split()
  23.                     .Select(int.Parse)
  24.                     .ToArray();
  25.  
  26.                 var zCoordinates = doctorCoorinates[0];
  27.                 var xCoordinates = doctorCoorinates[1];
  28.                 var yCoordinates = doctorCoorinates[2];
  29.  
  30.                
  31.                 garden[zCoordinates][xCoordinates, yCoordinates] = '0';
  32.  
  33.                 for (int z = 0; z < gardenSize; z++)
  34.                 {
  35.                     if (z == zCoordinates)
  36.                     {
  37.                         for (int x = 0; x < gardenSize; x++)
  38.                         {
  39.                             for (int y = 0; y < gardenSize; y++)
  40.                             {
  41.                                 if (x != xCoordinates && y != yCoordinates)
  42.                                 {
  43.                                     MorphMelon(garden, x, y, z);
  44.                                 }
  45.                             }
  46.                         }
  47.                     }
  48.                     else
  49.                     {
  50.                         for (int x = 0; x < gardenSize; x++)
  51.                         {
  52.                             for (int y = 0; y < gardenSize; y++)
  53.                             {
  54.                                 if (!(x == xCoordinates && y == yCoordinates))
  55.                                 {
  56.                                     MorphMelon(garden, x, y, z);
  57.                                 }
  58.                             }
  59.                         }
  60.                     }
  61.                 }
  62.                 command = Console.ReadLine();
  63.  
  64.             }
  65.  
  66.             PrintGarden(gardenSize, garden);
  67.         }
  68.  
  69.         private static void MorphMelon(char[][,] garden, int x, int y, int z)
  70.         {
  71.             var melonToMorph = garden[z][x, y];
  72.  
  73.             switch (melonToMorph)
  74.             {
  75.                 case 'W':
  76.                     garden[z][x, y] = 'E';
  77.                     break;
  78.                 case 'E':
  79.                     garden[z][x, y] = 'F';
  80.                     break;
  81.                 case 'F':
  82.                     garden[z][x, y] = 'A';
  83.                     break;
  84.                 case 'A':
  85.                     garden[z][x, y] = 'W';
  86.                     break;
  87.             }
  88.         }
  89.  
  90.         private static void PrintGarden(int gardenSize, char[][,] garden)
  91.         {
  92.             for (int x = 0; x < gardenSize; x++)
  93.             {
  94.                 for (int z = 0; z < gardenSize; z++)
  95.                 {
  96.                     for (int y = 0; y < gardenSize; y++)
  97.                     {
  98.                         if (y == gardenSize - 1 && z == gardenSize - 1)
  99.                         {
  100.                             Console.Write(garden[z][x, y]);
  101.                         }
  102.                         else
  103.                         {
  104.                             Console.Write(garden[z][x, y] + " ");
  105.                         }
  106.                     }
  107.  
  108.                     if (z != gardenSize - 1)
  109.                     {
  110.                         Console.Write("| ");
  111.                     }
  112.                 }
  113.                 Console.WriteLine();
  114.             }
  115.         }
  116.  
  117.         private static void FillGarden(int gardenSize, char[][,] garden)
  118.         {
  119.             for (int i = 0; i < gardenSize; i++)
  120.             {
  121.                 garden[i] = new char[gardenSize, gardenSize];
  122.             }
  123.  
  124.             for (int x = 0; x < gardenSize; x++)
  125.             {
  126.                 var lineToAdd = Console.ReadLine().Split('|');
  127.  
  128.                 for (int z = 0; z < gardenSize; z++)
  129.                 {
  130.                     var layerLineToAdd = lineToAdd[z]
  131.                         .Split(" ", StringSplitOptions.RemoveEmptyEntries)
  132.                         .Select(char.Parse)
  133.                         .ToArray();
  134.  
  135.                     for (int y = 0; y < gardenSize; y++)
  136.                     {
  137.                         garden[z][x, y] = layerLineToAdd[y];
  138.                     }
  139.                 }
  140.             }
  141.         }
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement