Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z operatorami logicznymi
tzm
post 17.07.2014, 07:46:56
Post #1





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


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").
Go to the top of the page
+Quote Post
vermis
post 17.07.2014, 10:48:43
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


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ą.


--------------------
Go to the top of the page
+Quote Post
tzm
post 18.07.2014, 11:17:00
Post #3





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


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

Ten post edytował mitorski 17.07.2014, 12:02:46
Go to the top of the page
+Quote Post
trueblue
post 18.07.2014, 11:41:48
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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');}



--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 01:53