Witam
Muszę niedługo oddać "Grę w życie" napisaną w C++. Ale jak narazie nie mam nawet pomysłu od czego zacząć. Macie dla mnie jakieś wskazówki? Bo bez nich raczej nie dam rady tego zrobić ...
Opis gry:
Dana jest dwuwymiarowa tablica 10x10 symbolizująca komórki. Tablicę należy losowo wypełnić znakami „X” lub „O”. Można przyjąć, że „X” oznacza martwą komórkę natomiast „O” żywą komórkę. Typowa komórka ma 8 sąsiadów (z lewej, z prawej, z góry, z dołu oraz czterech po skosach). Na brzegach tablicy komórki maja mniej sąsiadów.
Dana komórka zmienia swój stan (żywa lub martwa) wg następujących reguł:
*komórka ożywa gdy ma dokładnie trzech żywych sąsiadów
*komórka pozostaje żywa gdy ma 2 lub 3 sąsiadów
*komórka umiera gdy ma mniej niż 2 sąsiadów (umiera z samotności)
*komórka umiera gdy ma więcej niż 4 sąsiadów (umiera z przeludnienia)
Należy napisać program, który wyświetla dwuwymiarową tablicę symbolizującą komórki, a następnie wyświetla kolejne 5 tablic utworzonych wg powyższych reguł.
Więcej ciekawych informacji na temat „gry w życie” można znaleźć na stronie
Wikipedia - Kliknij
Będę wdzięczny za każdą pomoc
![Zdjęcie](https://www.forum.tweaks.pl/uploads/av-41833.jpg?_r=0)
[C++] - "Gra w życie" - Ma ktoś jakiś pomysł?
Rozpoczęty przez
Michal-88
, 04 01 2009 21:16
2 odpowiedzi w tym temacie
#1
Napisano 04 01 2009 - 21:16
#2
Napisano 08 01 2009 - 23:58
Trzeba zadeklarować planszę i jej stany oraz odpowiedniki graficzne tych stanów. Potem przydałoby się ją narysować, zdefiniować ruch, napisać algorytmy sprawdzające życie komórki, a potem jakoś zmienić stan. Ściągnij sobie programy przykładowe z kursu "Od zera do gier kodera", tam masz program na kółko i krzyżyk. W twojej grze o życie należy zrobić podobnie.
#3
Napisano 11 01 2009 - 01:20
A ja ci powiem tak:P
Deklarujesz tablicę dwuwymiarową
Druga sprawa, musisz użyć wskaźników (będzie najwygodniej), stworzyć funkcję
Z resztą, powinieneś sobie poradzić
Deklarujesz tablicę dwuwymiarową
Przez TRUE oznaczasz, komórkę żywą, a przez FALSE oznaczasz umierającą;Pbool tab[10][10];
Druga sprawa, musisz użyć wskaźników (będzie najwygodniej), stworzyć funkcję
I robisz listę instrukcji warunkowych, np.bool sprawdz(int a, int b, bool *tab[]);
Potem w main(), robisz losowanie;P + wykonuje funkcję "sprawdz", dla każdej pozycji, jeżeli zwróci true to zamieniasz komórkę na żywą;Pif (tab[a-1][b]) == true)
return true;
Z resztą, powinieneś sobie poradzić
![;)](/public/style_emoticons/default/wink.png)
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych