using System;
namespace ConsoleApplication1
{
public class TestGrid
{
private int[,] grid;
private int[,] newgrid;
public int[,] InitGrid()
{
grid = new int[4, 4];
newgrid = new int[4, 4];
Console.WriteLine("Das Spielfeld hat die Größe {0} x {1}!", 4, 4);
return grid;
}
public void FillGrid()
{
grid[0, 0] = 1;
grid[0, 1] = 1;
grid[0, 2] = 1;
grid[0, 3] = 0;
grid[1, 0] = 1;
grid[1, 1] = 1;
grid[1, 2] = 0;
grid[1, 3] = 1;
grid[2, 0] = 1;
grid[2, 1] = 0;
grid[2, 2] = 0;
grid[2, 3] = 0;
grid[3, 0] = 0;
grid[3, 1] = 1;
grid[3, 2] = 1;
grid[3, 3] = 1;
int test = grid[3, 3];
for (int height = 0; height < 4; height++)
{
for (int length = 0; length < 4; length++)
{
if (grid[height, length] == 1)
{
Console.Write("X");
}
else
{
Console.Write("O");
}
}
Console.WriteLine();
}
Console.ReadKey();
}
public int NeighborCheck(int height, int length, int varHeight, int varLength)
{
int result = 0;
int checkHeight = height + varHeight;
int checkLength = length + varLength;
if (IsCheckPositionInGrid(checkHeight, checkLength))
{
result = grid[checkHeight, checkLength];
}
return result;
}
private bool IsCheckPositionInGrid(int checkHeight, int checkLength)
{
return (checkHeight >= 0 && checkHeight < 4) &&
(checkLength >= 0 && checkLength < 4);
}
public void NewGeneration()
{
for (int i = 2; i < 100; i++)
{
Console.WriteLine(i + ". Generation");
for (int height = 0; height < 4; height++)
{
for (int length = 0; length < 4; length++)
{
int neighborsAlive =
NeighborCheck(height, length, 0, 1)
+ NeighborCheck(height, length, 0, -1)
+ NeighborCheck(height, length, 1, -1)
+ NeighborCheck(height, length, 1, 0)
+ NeighborCheck(height, length, 1, 1)
+ NeighborCheck(height, length, -1, -1)
+ NeighborCheck(height, length, -1, 0)
+ NeighborCheck(height, length, -1, 1);
int isAlive = grid[height, length];
if (isAlive == 1)
{
if (neighborsAlive == 2 || neighborsAlive == 3)
{
newgrid[height, length] = 1;
Console.Write("X");
}
else
{
newgrid[height, length] = 0;
Console.Write("O");
}
}
else
{
if (neighborsAlive == 3)
{
newgrid[height, length] = 1;
Console.Write("X");
}
else
{
newgrid[height, length] = 0;
Console.Write("O");
}
}
}
Console.WriteLine();
}
Console.ReadKey();
grid = newgrid;
}
}
}
}
|