Advertisement
Guest User

Labyrinth

a guest
Nov 20th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.32 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. namespace Labyrinth
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             var input = Console.ReadLine().Split().Select(int.Parse).ToArray();
  12.  
  13.             var row = input[0];
  14.             var col = input[1];
  15.  
  16.             var matrix = new int[row, col];
  17.  
  18.             var lengt = row * col;
  19.  
  20.             var numbers = new List<int>();
  21.             var random = new Random();
  22.  
  23.             while (numbers.Any(item => item == 1) == false)
  24.             {
  25.                 var stopper = lengt / 2;
  26.                 do
  27.                 {
  28.                     numbers.Add((random.Next(0, 2)));
  29.                 } while (numbers.Count <= stopper);
  30.  
  31.                 for (int i = 0; i < lengt / 2; i++)
  32.                 {
  33.                     if (numbers.Any(item => item == 2))
  34.                     {
  35.                         numbers.Add((random.Next(0, 2)));
  36.                     }
  37.                     else
  38.                     {
  39.                         numbers.Add((random.Next(0, 3)));
  40.                     }
  41.                 }
  42.             }
  43.            
  44.             var playerRow = 0;
  45.             var playerCol = 0;
  46.  
  47.             var position = 0;
  48.             for (int a = 0; a < matrix.GetLength(0); a++)
  49.             {
  50.                 for (int b = 0; b < matrix.GetLength(1); b++)
  51.                 {
  52.                     matrix[a, b] = numbers[position++];
  53.  
  54.                     if (matrix[a, b] == 2)
  55.                     {
  56.                         playerRow = a;
  57.                         playerCol = b;
  58.                     }
  59.                 }
  60.             }
  61.  
  62.             for (int a = 0; a < matrix.GetLength(0); a++)
  63.             {
  64.                 for (int b = 0; b < matrix.GetLength(1); b++)
  65.                 {
  66.                     Console.Write(matrix[a, b] + " ");
  67.                 }
  68.                 Console.WriteLine();
  69.             }
  70.            
  71.             while (true)
  72.             {
  73.                 try
  74.                 {
  75.                     if (matrix[playerRow, playerCol + 1] == 0)
  76.                     {
  77.                         matrix[playerRow, playerCol] = 1;
  78.                         matrix[playerRow, playerCol++] = 2;
  79.                     }
  80.                     else if (matrix[playerRow, playerCol - 1] == 0)
  81.                     {
  82.                         matrix[playerRow, playerCol] = 1;
  83.                         matrix[playerRow, playerCol--] = 2;
  84.                     }
  85.                     else if (matrix[playerRow + 1, playerCol] == 0)
  86.                     {
  87.                         matrix[playerRow, playerCol] = 1;
  88.                         matrix[playerRow++, playerCol] = 2;
  89.                     }
  90.                     else if (matrix[playerRow - 1, playerCol] == 0)
  91.                     {
  92.                         matrix[playerRow, playerCol] = 1;
  93.                         matrix[playerRow--, playerCol] = 1;
  94.                     }
  95.                     else
  96.                     {
  97.                         Console.WriteLine("There is no way out.");
  98.                         return;
  99.                     }
  100.                 }
  101.                 catch (Exception)
  102.                 {
  103.                     Console.WriteLine("There is a way out.");
  104.  
  105.                     return;
  106.                 }
  107.             }
  108.         }
  109.     }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement