Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- public delegate void nextLoop(int[,] nigger, int lastNum, int finalNum, int corridorCount, int lastLoop1, int lastLoop2);
- class Program
- {
- static void Main(string[] args)
- {
- int n = 0;
- try
- {
- if (!int.TryParse(Console.ReadLine(), out n) || n > 10 || n < 1)
- throw new ArgumentException("are you fucking retarded");
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- int[,] ninja = new int[n, n];
- Methods.NumSnailLoop(ninja, 0, n * n, 1, 0, 0);
- for (int i = 0; i < ninja.GetLength(0); i++)
- {
- for (int j = 0; j < ninja.GetLength(0); j++)
- Console.Write(ninja[i, j] + " ");
- Console.WriteLine();
- }
- }
- }
- static class Methods
- {
- static public event nextLoop Reactionary = NumSnailLoop;
- public static void NumSnailLoop(int[,] nigger, int lastNum, int finalNum, int corridorCount, int lastLoop1, int lastLoop2)
- {
- if (corridorCount % 2 == 1)
- {
- int i;
- if (lastLoop2 < nigger.GetLength(0) - 1)
- for (i = lastLoop2; i < nigger.GetLength(0); i++)
- {
- if (nigger[lastLoop1, i] == 0)
- {
- lastNum += 1;
- nigger[lastLoop1, i] = lastNum;
- }
- else break;
- }
- else
- {
- for (i = Math.Max(0, lastLoop2 - 1); i >= 0; i--)
- {
- if (nigger[lastLoop1, i] == 0)
- {
- lastNum += 1;
- nigger[lastLoop1, i] = lastNum;
- }
- else break;
- }
- }
- if (lastNum < finalNum)
- {
- if (lastLoop1 + 1 < nigger.GetLength(0))
- {
- if (i - 1 >= 0)
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1 + 1, i - 1);
- else
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1 + 1, i + 1);
- }
- else
- {
- if (i - 1 >= 0)
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1, i - 1);
- else
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, lastLoop1, i + 1);
- }
- }
- }
- else
- {
- int i;
- if (lastLoop1 < nigger.GetLength(0) - 1)
- for (i = lastLoop1; i < nigger.GetLength(0); i++)
- {
- if (nigger[i, lastLoop2] == 0)
- {
- lastNum += 1;
- nigger[i, lastLoop2] = lastNum;
- }
- else break;
- }
- else
- {
- for (i = Math.Max(0, lastLoop1 - 1); i >= 0; i--)
- {
- if (nigger[i, lastLoop2] == 0)
- {
- lastNum += 1;
- nigger[i, lastLoop2] = lastNum;
- }
- else break;
- }
- }
- if (lastNum < finalNum)
- {
- if (lastLoop2 + 1 < nigger.GetLength(0))
- {
- if (i - 1 >= 0)
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i - 1, lastLoop2 + 1);
- else
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i + 1, lastLoop2 + 1);
- }
- else
- {
- if (i - 1 >= 0)
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i - 1, lastLoop2);
- else
- Reactionary(nigger, lastNum, finalNum, corridorCount + 1, i + 1, lastLoop2);
- }
- }
- }
- }1
- }
Add Comment
Please, Sign In to add comment