static int[,] arrNum = new int[5, 5];
static void Main(string[] args)
{
arrNum[0,0] = 1;
int j=0, k = 0;
for (int i =2; i <=25; i++)
{
if (canSet(j, k + 1) && !canSet(j - 1, k))
{
arrNum[j, k + 1] = i;
k++;
continue;
}
if (canSet(j + 1, k) && !canSet(j, k + 1))
{
arrNum[j + 1, k] = i;
j++;
continue;
}
if (canSet(j, k - 1) && !canSet(j + 1, k))
{
arrNum[j, k - 1] = i;
k--;
continue;
}
if (canSet(j - 1, k) && !canSet(j, k - 1))
{
arrNum[j - 1, k] = i;
j--;
continue;
}
}
for (int m = 0; m < 5; m++)
{
for (int n = 0; n < 5; n++)
{
Console.Write("{0,2} ", arrNum[m, n]);
}
Console.WriteLine();
}
}
static bool canSet(int x, int y)
{
if (x < 0 || x > 4 || y < 0 || y > 4)
return false;
if (arrNum[x, y] != 0)
return false;
return true;
}
static void Main(string[] args)
{
arrNum[0,0] = 1;
int j=0, k = 0;
for (int i =2; i <=25; i++)
{
if (canSet(j, k + 1) && !canSet(j - 1, k))
{
arrNum[j, k + 1] = i;
k++;
continue;
}
if (canSet(j + 1, k) && !canSet(j, k + 1))
{
arrNum[j + 1, k] = i;
j++;
continue;
}
if (canSet(j, k - 1) && !canSet(j + 1, k))
{
arrNum[j, k - 1] = i;
k--;
continue;
}
if (canSet(j - 1, k) && !canSet(j, k - 1))
{
arrNum[j - 1, k] = i;
j--;
continue;
}
}
for (int m = 0; m < 5; m++)
{
for (int n = 0; n < 5; n++)
{
Console.Write("{0,2} ", arrNum[m, n]);
}
Console.WriteLine();
}
}
static bool canSet(int x, int y)
{
if (x < 0 || x > 4 || y < 0 || y > 4)
return false;
if (arrNum[x, y] != 0)
return false;
return true;
}