Skocz do zawartości


Zdjęcie

[C++] - "Gra w życie" - Ma ktoś jakiś pomysł?


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 Michal-88

Michal-88

    Początkujący

  • 24 postów

Napisano 04 01 2009 - 21:16

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

  • 0

#2 Chinka

Chinka

    Seal of Approval

  • 426 postów

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.

  • 0

#3 mgx8

mgx8

    Początkujący

  • 148 postów

Napisano 11 01 2009 - 01:20

A ja ci powiem tak:P

Deklarujesz tablicę dwuwymiarową

bool tab[10][10];

Przez TRUE oznaczasz, komórkę żywą, a przez FALSE oznaczasz umierającą;P

Druga sprawa, musisz użyć wskaźników (będzie najwygodniej), stworzyć funkcję

bool sprawdz(int a, int b, bool *tab[]);

I robisz listę instrukcji warunkowych, np.

if (tab[a-1][b]) == true)
return true;

Potem w main(), robisz losowanie;P + wykonuje funkcję "sprawdz", dla każdej pozycji, jeżeli zwróci true to zamieniasz komórkę na żywą;P
Z resztą, powinieneś sobie poradzić ;)

  • 0

Zobacz więcej tematów z tagiem: język C++



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych