^ Pływanie belki ^
Zarejestruj się Zaloguj się
29
mar

Ogur’s Game of Life [UPDATE 2]

Tagi: , , , , , 7 komentarzy »

Przeglądałem sobie ostatnio Kwakowe programiki i zatrzymałem się nad Grą w życie (wiki). Jestem prawie pewien, że kiedyś też sobie to zakodziłem, też w konsoli i nawet chyba działało. Tylko że nigdzie na dysku nie mogę znaleźć ani jednego kawałka kodu, który by mi to potwierdził. Więc albo mam deja vu, albo jednak wyszło mi to źle i chciałem ukryć bolesną prawdę. Nie ma tego złego co by jednak nie można było napisać od nowa.

Jako że w miedzy czasie przyuczyłem się biblioteki Allegro (nie ma nic wspólnego z aukcjami, serio) to mogłem od razu zrobić nową wersję w oszałamiającej szacie graficznej (no dobra, po prostu graficznej). Siadłem sobie rano, trochę popisałem, dowiedziałem się przy okazji kilku rzeczy (np że w C++ działanie modulo % zwraca również ujemną resztę, co oczywiście ma sens matematyczny, jednak spowodowało kilka minut guglania i robienia wielkich oczu przy czytaniu dlaczego mi program nie bangla).

Pierwsza wersja która wyświetlała po prostu graficzną reprezentację programu powstała raczej szybko, potem zacząłem kombinować z kolorkami i innymi duperelami. Póki co wygląda to tak:

Normalna symulacja

Włączanie/wyłączanie śmierci powoduje jak się można domyślić przełączanie reguły umierania punktów. Punkty z wiekiem zmieniają kolor od zielonego, przez żółty, do czerwonego. Wybrałem ten schemat kolorystyczny, bo przy wyłączonej śmierci wychodzi coś jak mapa hipsometryczna.

Tryb bez śmierci

Na razie lewym przyciskiem myszy wstawia się Glidery, prawym takie bardziej chaotyczne śmieci, jak będzie mi się jeszcze chciało z tym bawić to dodam jakieś inne gotowe układy.

Tryb z wyłączoną śmiercią przypomina bakterie na pożywce, ale też wychodzą ciekawe wzory typu, jak to nazwałem, Wąż Orobos, bo po zawinięciu się przez ścianę gryzie sam siebie i rozlewa się krew :P

Waż Orobos

Cóż szału nie ma, jeszcze chodzi dość opornie, w końcu w każdym obrocie pętli przegląda każdy piksel, sumując mu otoczenie 8 sąsiadów, potem jeszcze przepisuje ten bufor, 250 000 jest pikseli w tej ustawionej rozdziałce to trochę liczy :P

Na deser oczywiście link do programiku.

To jeszcze kod źródłowy na dokładkę.

UPDATE (3 kwietnia)

W wielkich bólach postało TO (źródła główny i edytor). W paczce jest główny program, edytor, instrukcja jak to ogarnać i przykładowe wzorki.

Nie zdziwiłbym się, gdyby jedna coś nie działało, ale mam nadzieję że już nie będzie wierzgać.

UPDATE (7 kwietnia)

Miałem już nic przy tym nie robić, ale nie mogłem się powstrzymać :P w 3 dodatkowych plikach jest zmieniony sposob kolorowania, na zasadzie mieszania z sąsiadującymi komórkami. Najładniej wygląda to w wersji z wyłączoną śmiercią. Można za pomocą tego ciekawe rzeczy robić :P (źródło)

Ha, nie potrzebuje już render clouds w PSie :P


Podziel się na:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Flaker
  • StumbleUpon
  • Wykop

Komentarze (7) do “Ogur’s Game of Life [UPDATE 2]”

  1. pr0

    podoba mi sie koncepcja kolorków

    btw

    chyba się bardzo nudzisz

  2. kwako

    Ładnie, ładnie. Myślałem kiedyś o takim koncepcie, żeby były bakterie (takie jak np w dr. Mario) i żeby były ładne animacje znikania i pojawiania się. Co prawda nie dałoby się robić tak dużych populacji, ale graficznie by to mogło ciekawie wyglądać.

  3. ogur

    @Brainer
    Nudzę się? Wolę to nazywać rozwijanie różnorodnych zainteresowań :]

    @Kwako
    No postanowiłem pojść w ilość :)

  4. Pati

    Po prostu się przechwalasz :P

  5. Mijo

    zawalisty królik :D

  6. Azru

    Ok, potestowałem toto sobie i albo mój komp ma jakieś dziwne ustawienia albo cokolwiek, albo znowu pojawia się odwieczny problem z prędkością wykonywania jakichśtam operacji / pobierania sygnałów od urządzeń we/wy / cośtam.

    W każdym razie jak kliknę sobie LPM to nie za każdym razem wychodzi z tego glider, w sensie.. zamiast tego pojedynczego układu robi się jakieś niewiadomo co co w końcu ewoluuje albo w glider albo w jakiś stabilny układ. To samo jeśli ustawie żeby ten glider odpalał się nie od ppm ale od naciśnięcia jakiegoś przycisku na klawiaturze.

    Jedyna metoda, która sprawiła, że w końcu udało mi się zrobić ten glider tak jak powinien działać to wrzucenie kodu od jego tworzenia do tego ifa od wciśnięcia ‘X’a.

    http://pastebin.com/iUvVUWWE

    Albo po prostu nie rozumiem jak te I/O funkcje w allegro działają, w sumie pierwszy raz na oczy toto widzę.

  7. ogur

    Poprawki w drodze, miedzy innymi te interwały miedzy kliknieciami :)

Wpisz komentarz