Advertisement
Daniel_007

02. Re-Volt

Jun 20th, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.66 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Re_Volt
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int sizeMatrix = int.Parse(Console.ReadLine());
  10.             string[,] matrix = new string[sizeMatrix, sizeMatrix];
  11.             int countCommands = int.Parse(Console.ReadLine());
  12.             //inputMatrix
  13.             int colPlayer = 0;
  14.             int rowPlayer = 0;
  15.             for (int row = 0; row < sizeMatrix; row++)
  16.             {
  17.                 string input = Console.ReadLine();
  18.                 for (int col = 0; col < sizeMatrix; col++)
  19.                 {
  20.                     matrix[row, col] = input[col].ToString();
  21.                     if (input[col] == 'f')
  22.                     {
  23.                         colPlayer = col;
  24.                         rowPlayer = row;
  25.                     }
  26.                 }
  27.             }
  28.             //movements
  29.             bool win = false;
  30.             for (int i = 0; i < countCommands; i++)
  31.             {
  32.                
  33.                 string input = Console.ReadLine();
  34.                 switch (input)
  35.                 {
  36.                     case "left":
  37.                         matrix[rowPlayer, colPlayer] = "-";
  38.                         colPlayer = left(matrix, colPlayer, rowPlayer);
  39.                         break;
  40.                     case "right":
  41.                         matrix[rowPlayer, colPlayer] = "-";
  42.                         colPlayer = right(matrix, colPlayer, rowPlayer);
  43.                         break;
  44.                     case "down":
  45.                         matrix[rowPlayer, colPlayer] = "-";
  46.                         rowPlayer = down(matrix, colPlayer, rowPlayer);
  47.                         break;
  48.                     case "up":
  49.                         matrix[rowPlayer, colPlayer] = "-";
  50.                         rowPlayer = up(matrix, colPlayer, rowPlayer);
  51.                         break;
  52.                 }
  53.                 if (winChecker(matrix, colPlayer, rowPlayer))
  54.                 {
  55.                     win = true;
  56.                     matrix[rowPlayer, colPlayer] = "f";
  57.                     break;
  58.                 }
  59.                 matrix[rowPlayer, colPlayer] = "f";
  60.             }
  61.  
  62.             if (win)
  63.             {
  64.                 Console.WriteLine("Player won!");
  65.             }
  66.             else
  67.             {
  68.                 Console.WriteLine("Player lost!");
  69.             }
  70.  
  71.             printMatrix(matrix);
  72.         }
  73.  
  74.         static void printMatrix(string[,] matrix)
  75.         {
  76.             for (int row = 0; row < matrix.GetLength(0); row++)
  77.             {
  78.                 for (int col = 0; col < matrix.GetLength(1); col++)
  79.                 {
  80.                     Console.Write(matrix[row, col]);
  81.                 }
  82.                 Console.WriteLine();
  83.             }
  84.         }
  85.  
  86.         static int left(string[,] matrix, int colPlayer, int rowPlayer)
  87.         {
  88.             bool outOfRange = false;
  89.             if (colPlayer - 1 < 0)
  90.             {
  91.                 colPlayer = matrix.GetLength(1) - 1;
  92.                 outOfRange = true;
  93.             }
  94.             else
  95.             {
  96.                 colPlayer--;
  97.             }
  98.  
  99.             if (trapChecker(matrix, colPlayer, rowPlayer))
  100.             {
  101.                 if (outOfRange)
  102.                 {
  103.                     colPlayer = 0;
  104.                 }
  105.                 else
  106.                 {
  107.                     colPlayer++;
  108.                 }
  109.             }
  110.             else if (bonusChecker(matrix, colPlayer, rowPlayer))
  111.             {
  112.                 if (colPlayer - 1 < 0)
  113.                 {
  114.                     colPlayer = matrix.GetLength(1) - 1;
  115.                 }
  116.                 else
  117.                 {
  118.                     colPlayer--;
  119.                 }
  120.  
  121.             }
  122.             return colPlayer;
  123.         }
  124.         static int right(string[,] matrix, int colPlayer, int rowPlayer)
  125.         {
  126.             bool outOfRange = false;
  127.             if (colPlayer + 1 >=matrix.GetLength(1))
  128.             {
  129.                 colPlayer = 0;
  130.                 outOfRange = true;
  131.             }
  132.             else
  133.             {
  134.                 colPlayer++;
  135.             }
  136.  
  137.             if (trapChecker(matrix, colPlayer, rowPlayer))
  138.             {
  139.                 if (outOfRange)
  140.                 {
  141.                     colPlayer = matrix.GetLength(2)-1;
  142.                 }
  143.                 else
  144.                 {
  145.                     colPlayer--;
  146.                 }
  147.             }
  148.             else if (bonusChecker(matrix, colPlayer, rowPlayer))
  149.             {
  150.                 if (colPlayer + 1 > matrix.GetLength(1))
  151.                 {
  152.                     colPlayer = 0;
  153.                 }
  154.                 else
  155.                 {
  156.                     colPlayer++;
  157.                 }
  158.  
  159.             }
  160.             return colPlayer;
  161.         }
  162.         static int down(string[,] matrix, int colPlayer, int rowPlayer)
  163.         {
  164.             bool outOfRange = false;
  165.             if (rowPlayer + 1 >= matrix.GetLength(1))
  166.             {
  167.                 rowPlayer = 0;
  168.                 outOfRange = true;
  169.             }
  170.             else
  171.             {
  172.                 rowPlayer++;
  173.             }
  174.  
  175.             if (trapChecker(matrix, colPlayer, rowPlayer))
  176.             {
  177.                 if (outOfRange)
  178.                 {
  179.                     rowPlayer = matrix.GetLength(2) - 1;
  180.                 }
  181.                 else
  182.                 {
  183.                     rowPlayer--;
  184.                 }
  185.             }
  186.             else if (bonusChecker(matrix, colPlayer, rowPlayer))
  187.             {
  188.                 if (rowPlayer + 1 >= matrix.GetLength(1))
  189.                 {
  190.                     rowPlayer = 0;
  191.                 }
  192.                 else
  193.                 {
  194.                     rowPlayer++;
  195.                 }
  196.  
  197.             }
  198.             return rowPlayer;
  199.         }
  200.         static int up(string[,] matrix, int colPlayer, int rowPlayer)
  201.         {
  202.             bool outOfRange = false;
  203.             if (rowPlayer - 1 < 0)
  204.             {
  205.                 rowPlayer = matrix.GetLength(1) - 1;
  206.                 outOfRange = true;
  207.             }
  208.             else
  209.             {
  210.                 rowPlayer--;
  211.             }
  212.  
  213.             if (trapChecker(matrix, colPlayer, rowPlayer))
  214.             {
  215.                 if (outOfRange)
  216.                 {
  217.                     rowPlayer = 0;
  218.                 }
  219.                 else
  220.                 {
  221.                     rowPlayer++;
  222.                 }
  223.             }
  224.             else if (bonusChecker(matrix, colPlayer, rowPlayer))
  225.             {
  226.                 if (rowPlayer - 1 < 0)
  227.                 {
  228.                     rowPlayer = matrix.GetLength(2) - 1;
  229.                 }
  230.                 else
  231.                 {
  232.                     rowPlayer--;
  233.                 }
  234.  
  235.             }
  236.             return rowPlayer;
  237.         }
  238.  
  239.         static bool winChecker(string[,] matrix, int colPlayer, int rowPlayer)
  240.         {
  241.             if (matrix[rowPlayer,colPlayer]=="F")
  242.             {
  243.                 return true;
  244.             }
  245.             else
  246.             {
  247.                 return false;
  248.             }
  249.         }
  250.         static bool trapChecker(string[,] matrix, int colPlayer, int rowPlayer)
  251.         {
  252.             if (matrix[rowPlayer, colPlayer] == "T")
  253.             {
  254.                 return true;
  255.             }
  256.             else
  257.             {
  258.                 return false;
  259.             }
  260.         }
  261.         static bool bonusChecker(string[,] matrix, int colPlayer, int rowPlayer)
  262.         {
  263.             if (matrix[rowPlayer, colPlayer] == "B")
  264.             {
  265.                 return true;
  266.             }
  267.             else
  268.             {
  269.                 return false;
  270.             }
  271.         }
  272.     }
  273. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement