tane_superior

Untitled

Apr 28th, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.28 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.  
  7. public delegate void nextLoop(int[,] nigger, int lastNum, int finalNum, int corridorCount, int lastLoop1, int lastLoop2);
  8.  
  9. class Program
  10. {
  11.     static void Main(string[] args)
  12.     {
  13.         int n = 0;
  14.         try
  15.         {
  16.             if (!int.TryParse(Console.ReadLine(), out n) || n > 10 || n < 1)
  17.                 throw new ArgumentException("are you fucking retarded");
  18.         }
  19.         catch (Exception ex)
  20.         {
  21.             Console.WriteLine(ex.Message);
  22.         }
  23.  
  24.         int[,] ninja = new int[n, n];
  25.         Methods.NumSnailLoop(ninja, 0, n * n, 1, 0, 0);
  26.  
  27.         for (int i = 0; i < ninja.GetLength(0); i++)
  28.         {
  29.             for (int j = 0; j < ninja.GetLength(0); j++)
  30.                 Console.Write(ninja[i, j] + " ");
  31.             Console.WriteLine();
  32.         }
  33.     }
  34. }
  35.  
  36. static class Methods
  37. {
  38.     static public event nextLoop Reactionary = NumSnailLoop;
  39.  
  40.     public static void NumSnailLoop(int[,] nigger, int lastNum, int finalNum, int corridorCount, int lastLoop1, int lastLoop2)
  41.     {
  42.         if (corridorCount % 2 == 1)
  43.         {
  44.             int i;
  45.             if (lastLoop2 < nigger.GetLength(0) - 1)
  46.                 for (i = lastLoop2; i < nigger.GetLength(0); i++)
  47.                 {
  48.                     if (nigger[lastLoop1, i] == 0)
  49.                     {
  50.                         lastNum += 1;
  51.                         nigger[lastLoop1, i] = lastNum;
  52.                     }
  53.                     else break;
  54.                 }
  55.             else
  56.             {
  57.                 for (i = Math.Max(0, lastLoop2 - 1); i >= 0; i--)
  58.                 {
  59.                     if (nigger[lastLoop1, i] == 0)
  60.                     {
  61.                         lastNum += 1;
  62.                         nigger[lastLoop1, i] = lastNum;
  63.                     }
  64.                     else break;
  65.                 }
  66.             }
  67.  
  68.             if (lastNum < finalNum)
  69.             {
  70.                 if (lastLoop1 + 1 < nigger.GetLength(0))
  71.                 {
  72.                     if (i - 1 >= 0)
  73.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1 + 1, i - 1);
  74.                     else
  75.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1 + 1, i + 1);
  76.                 }
  77.                 else
  78.                 {
  79.                     if (i - 1 >= 0)
  80.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1, i - 1);
  81.                     else
  82.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1, i + 1);
  83.                 }
  84.             }
  85.         }
  86.         else
  87.         {
  88.             int i;
  89.             if (lastLoop1 < nigger.GetLength(0) - 1)
  90.                 for (i = lastLoop1; i < nigger.GetLength(0); i++)
  91.                 {
  92.                     if (nigger[i, lastLoop2] == 0)
  93.                     {
  94.                         lastNum += 1;
  95.                         nigger[i, lastLoop2] = lastNum;
  96.                     }
  97.                     else break;
  98.                 }
  99.             else
  100.             {
  101.                 for (i = Math.Max(0, lastLoop1 - 1); i >= 0; i--)
  102.                 {
  103.                     if (nigger[i, lastLoop2] == 0)
  104.                     {
  105.                         lastNum += 1;
  106.                         nigger[i, lastLoop2] = lastNum;
  107.                     }
  108.                     else break;
  109.                 }
  110.             }
  111.  
  112.             if (lastNum < finalNum)
  113.             {
  114.                 if (lastLoop2 + 1 < nigger.GetLength(0))
  115.                 {
  116.                     if (i - 1 >= 0)
  117.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i - 1, lastLoop2 + 1);
  118.                     else
  119.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i + 1, lastLoop2 + 1);
  120.                 }
  121.                 else
  122.                 {
  123.                     if (i - 1 >= 0)
  124.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i - 1, lastLoop2);
  125.                     else
  126.                         Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i + 1, lastLoop2);
  127.                 }
  128.             }
  129.         }
  130.     }1
  131. }
Add Comment
Please, Sign In to add comment