legomir Napisano 30 Październik 2016 Napisano 30 Październik 2016 (edytowane) Tak, więc postanowiłem nieco w ramach zabawy, a trochę edukacyjnie(zarówno dla siebie jak i dla innych) porobić trochę automaty komórkowe. Na pierwszy ogień idzie gra w życie na zasadach Conwaya chyba najbardziej znany automat komórkowy(kolejnym bardzo znanym jest automat reakcji-dyfuzji). Dobra, ale od początku co to automat komórkowy? Za wikipedia możemy powiedzieć(https://pl.wikipedia.org/wiki/Automat_kom%C3%B3rkowy): Automat komórkowy – system składający się z pojedynczych komórek, znajdujących się obok siebie. Ich układ przypomina szachownicę lub planszę do gry. Każda z komórek może przyjąć jeden ze stanów, przy czym liczba stanów jest skończona, ale dowolnie duża. Stan komórki zmieniany jest synchronicznie zgodnie z regułami mówiącymi, w jaki sposób nowy stan komórki zależy od jej obecnego stanu i stanu jej sąsiadów Co w gruncie rzeczy oznacza możesz zrobić sobie fajne obrazki używając kilku prostych zasad, a nawet to może się do czegoś przydać. Do czego oprócz rozrywki? Automaty komórkowe są używane np. przez biologów do modelowania modelowania różnych układów np. reakcja-dyfuzja była badana przez Alana Turinga, który o ile dobrze pamiętam wymyślił różniczkę na liczenie tego, podczas gdy w dzisiejszych czasach stosuje się w zasadzie zawsze postać automatu komórkowego. Dlaczego? Automaty komórkowe są właściwie idealne do liczenia przez komputer. Przechodząc jednak do gry w życie. Jest to gra stworzona przez Conwaya za pomocą automatów komórkowych. Jedyna interwencja gracza polega na ustawieniu początkowych stanów komórek i obserwowaniu co się dzieje. Co może być całkiem fajną zabawą: Teraz przechodząc do samego mojego wykonania. Będę posługiwał się Houdinim. Czemu? Z trzech powodów po pierwsze to jedyny soft(może podobnie prosto byłoby w XSI) gdzie można zrobić to tak prosto i naturalnie, po drugie to soft jakiego używam na codzień, po trzecie komuś to pomoże w nauce. Za chwilę dodam kolejny post z opisem tego co już zrobiłem. Edytowane 30 Październik 2016 przez legomir
legomir Napisano 30 Październik 2016 Autor Napisano 30 Październik 2016 (edytowane) Do tej pory zrobiłem: -wyszukiwanie sąsiadów w sąsiedztwie Moora -boundry conditions -kolorowanie stanów To do: -w tej chwili opóźnianie zmiany stanu jest oszukane należy zrobić to poprawnie -chcę zrobić to bardziej przestrzennie -ponieważ w tej chwili to wszystko jest mega łatwe pewnie dodam animacje przejścia ze stanu w stan -jakiś rendering Hasło: test Vimeo zmieniło zasady i muszę mieć plus żeby dać prywatnego linka :( Jeszcze taki mały screen jak wygląda to w H: Co tutaj się dzieje: 1.Podstawą wszystkiego jest grid 2.Domyślnym stanem jest martwość ;) 3.Grupowanie, posługuje się małą sztuczką najpierw zaznaczam wszystkie primitivy(w bardzo uproszczony sposób można powiedzieć, że Houdini rozumie przez to wszystkie facy, krzywe albo volumy), a potem zaznaczam odznaczam primitivy/facy, które zawierają boundry edges. 4.Tutaj najbardziej upierdliwa część. Gra w życie używa sąsiedztwa Moor'a(https://pl.wikipedia.org/wiki/S%C4%85siedztwo_Moore%E2%80%99a) ponieważ chciałem aby część która jest na krawędzi też uczestniczyła to musiałem się uporać z tym, że niektóre komórki mają dziwnych sąsiadów. Aby nie komplikować bardzo prostego kodu zmiany stanów postanowiłem brzydką część przerzucić gdzie indziej. Co zaowocowało tym, że iteruje się po tablicy za pomocą pętli foreach. Dzięki długość tablicy/ilość sąsiadów nie ma dla mnie znaczenia. Jeśli ktoś by chciał mogę wrzucić kod ale nie ma tu nic ciekawego ;) 5.Teraz maszyna stanów. W tym automacie są tylko dwa. Jeden to żywy. Drugi to martwy. Jeśli komórka jest martwa i ma trzech żywych sąsiadów to ożywa jeśli żywa a liczba sąsiadów jest mniejsza niż 2 lub 3 to umiera. 6.Koloruje facy za pomocą numerów stanów, dzięki czemu kolor jest dowolny. Chyba jeszcze dziś wrzucę małą aktualizację. Czekam na pytani :) Btw. prawdziwy fan zacznie się przy animacji, bo inaczej to jest mega proste. Edytowane 30 Październik 2016 przez legomir
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się