tane_superior

Untitled

Apr 27th, 2020
66
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.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.                 for (i = lastLoop2 - 1; i >= 0; i--)
  57.                 {
  58.                     if (nigger[lastLoop1, i] == 0)
  59.                     {
  60.                         lastNum += 1;
  61.                         nigger[lastLoop1, i] = lastNum;
  62.                     }
  63.                     else break;
  64.                 }
  65.  
  66.             if (lastNum - 1 < finalNum)
  67.                 if (lastLoop1 + 1 < nigger.GetLength(0))
  68.                     Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1 + 1, i - 1);
  69.                 else
  70.                     Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1, i + 1);
  71.         }
  72.         else
  73.         {
  74.             int i;
  75.             if (lastLoop1 < nigger.GetLength(0) - 1)
  76.                 for (i = lastLoop1; i < nigger.GetLength(0); i++)
  77.                 {
  78.                     if (nigger[i, lastLoop2] == 0)
  79.                     {
  80.                         lastNum += 1;
  81.                         nigger[i, lastLoop2] = lastNum;
  82.                     }
  83.                     else break;
  84.                 }
  85.             else
  86.                 for (i = lastLoop1 - 1; i >= 0; i--)
  87.                 {
  88.                     if (nigger[i, lastLoop2] == 0)
  89.                     {
  90.                         lastNum += 1;
  91.                         nigger[i, lastLoop2] = lastNum;
  92.                     }
  93.                     else break;
  94.                 }
  95.  
  96.             if (lastNum - 1 < finalNum)
  97.                 if (lastLoop2 + 1 < nigger.GetLength(0))
  98.                     Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i - 1, lastLoop2 + 1);
  99.                 else
  100.                     Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i - 1, lastLoop2);
  101.         }
  102.     }
  103. }
Add Comment
Please, Sign In to add comment