Advertisement
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;
- namespace LifeGame
- {
- public class Siatka
- {
- private int[,] tablicaKomorek;
- private readonly int liczbaWierszy;
- private readonly int liczbaKolumn;
- private const int ZYWA = 1;
- private const int MARTWA = 0;
- private const char ZNAK_ZYWA = 'O';
- private const char ZNAK_MARTWA = ' ';
- public Siatka(int liczbaWierszy, int liczbaKolumn)
- {
- this.liczbaWierszy = liczbaWierszy;
- this.liczbaKolumn = liczbaKolumn;
- tablicaKomorek = new int[liczbaWierszy, liczbaKolumn];
- tablicaKomorek.Initialize();
- WypelnijPlansze(liczbaWierszy, liczbaKolumn);
- }
- public void ZrobKrok()
- {
- int[,] nowaTablicaKomorek = new int[liczbaWierszy, liczbaKolumn];
- for (int wiersz = 0; wiersz < liczbaWierszy; wiersz++)
- {
- for (int kolumna = 0; kolumna < liczbaKolumn; kolumna++)
- {
- nowaTablicaKomorek[wiersz, kolumna] = ZastosujZasady(wiersz, kolumna);
- }
- }
- tablicaKomorek = nowaTablicaKomorek;
- }
- public void Wydrukuj()
- {
- for(int wiersz = 0; wiersz < liczbaWierszy; wiersz++)
- {
- for (int kolumna = 0; kolumna < liczbaKolumn; kolumna++)
- {
- if (tablicaKomorek[wiersz,kolumna] == ZYWA) {
- Console.Write(ZNAK_ZYWA);
- }
- else
- {
- Console.Write(ZNAK_MARTWA);
- }
- Console.Write(' ');
- }
- Console.WriteLine();
- }
- }
- private int PoliczZywychSasiadow(int wiersz, int kolumna)
- {
- int sasiedzi = 0;
- for (int w = wiersz - 1; w <= wiersz + 1; w++)
- {
- if (w < 0 || w > liczbaWierszy) continue;
- for (int k= kolumna -1; k<= kolumna +1; k++)
- {
- if (k < 0 || k > liczbaKolumn) continue;
- if (tablicaKomorek[w,k] == ZYWA)
- {
- sasiedzi++;
- }
- }
- }
- return sasiedzi;
- }
- private int ZastosujZasady(int wiersz, int kolumna)
- {
- int liczbaSasiadow = PoliczZywychSasiadow(wiersz, kolumna);
- if (tablicaKomorek[wiersz,kolumna] == ZYWA) // Zywe
- {
- if (liczbaSasiadow == 2 || liczbaSasiadow == 3)
- {
- return ZYWA;
- }
- }
- else // Martwe
- {
- if (liczbaSasiadow == 3)
- {
- return ZYWA;
- }
- }
- return MARTWA;
- }
- private void WypelnijPlansze(int liczbaWierszy, int liczbaKolumn)
- {
- Random maszynaLosujaca = new Random();
- for (int wiersz = 0; wiersz < liczbaWierszy; wiersz++)
- {
- for (int kolumna = 0; kolumna < liczbaKolumn; kolumna++)
- {
- tablicaKomorek[wiersz, kolumna] =
- maszynaLosujaca.Next(2);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement