Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z operatorami logicznymi
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
tzm
No i coś pochrzaniłem. Łapcie mój kod, i wypis z wikipedii. Nie wiem czy ja czegoś nie ogarniam i czytać nie potrafię czy o co chodzi?
Ogólnie działa... ale zupełnie inaczej niż powinno wg definicji automatu komórkowego z tymże algorytmem - bo wariacji jest mnóstwo.

  1. if(map[h][w] == 1 && alive == 2 || map[h][w] == 1 && alive == 3){ // Żywa komórka z 2 albo 3 żywymi sąsiadami pozostaje nadal żywa;
  2. map[h][w] = 1;
  3. document.getElementById(h + "" + w).setAttribute("class", 'alive');
  4. }
  5. else if(map[h][w] == 1 && alive < 2 || map[h][w] == 1 && alive > 3){ // przy innej liczbie sąsiadów umiera (z "samotności" albo "zatłoczenia").
  6. map[h][w] = 0;
  7. document.getElementById(h + "" + w).setAttribute("class", 'cell');
  8. }
  9. else if(map[h][w] == 0 && alive == 3){ // Martwa komórka, która ma dokładnie 3 żywych sąsiadów, staje się żywa w następnej jednostce czasu (rodzi się)
  10. map[h][w] = 1;
  11. document.getElementById(h + "" + w).setAttribute("class", 'alive');
  12. }



Cytat
  1. Martwa komórka, która ma dokładnie 3 żywych sąsiadów, staje się żywa w następnej jednostce czasu (rodzi się)
  2. Żywa komórka z 2 albo 3 żywymi sąsiadami pozostaje nadal żywa; przy innej liczbie sąsiadów umiera (z "samotności" albo "zatłoczenia").
vermis
Cytat(mitorski @ 17.07.2014, 08:46:56 ) *
Ogólnie działa... ale zupełnie inaczej niż powinno

Czyli nie działa.

Czego właściwie oczekujesz? Pokazałeś fragment kodu, w którym używasz zmiennych a nie widać ich deklaracji.
Na chwilę obecną można uznać, że zmienne map, h, w i alive nie istnieją.
tzm
Ogólnie to się poddałem... zacząłem to od nowa przepisywać ale chętnie bym na prawdę zrozumiał co zrobiłem źle.

http://wklej.org/hash/ea18d2c58ba/ html+js
http://wklej.org/hash/e8b3cb7fd1d/ css

A porządany efekt: http://pl.wikipedia.org/wiki/Gra_w_%C5%BCycie

dzięki dżawaskripciarzy ! nie oceniona jest pomoc na tym forum czasem
trueblue
Z tego co widzę generujesz za duże pole gry (21x21) i stąd komórki na krawędziach nie umierają.
Warunki uprościłbym do:
  1. if(map[h][w] == 1)
  2. if(alive < 2||alive > 3){map[h][w]='0';document.getElementById(h + "" + w).setAttribute("class", 'cell');}
  3. else if(map[h][w] == 0 && alive == 3){map[h][w] = 1;document.getElementById(h + "" + w).setAttribute("class", 'alive');}

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.