Skip to content
This repository has been archived by the owner on May 27, 2019. It is now read-only.

Symulacja

Bartosz Rodziewicz edited this page Jun 9, 2018 · 1 revision

Wykonanie poprawnej symulacji do naszego kodu jest bardzo trudne. Napisanie całej gry w jednym module skutkuje, że nawet ograniczając liczbę śledzonych sygnałów bardzo szybko trafiamy na „tracing limit”. Poniżej spróbujemy wykazać ciekawsze momenty z symulacji, które udało nam się wykazać.

Wykrycie kolizji

Symulacja

Symulacja wykrycia kolizji zostaną napisana w taki sposób, że pozycja gracza (399) nie zmieniała się przez cały czas, podczas, gdy jedna z domyślnych pozycji bomb (bomba #2) ma pozycję 400.

Na powyższej symulacji widzimy, że gdy bomba #2 osiągnęła pozycję y 483 nastąpiło wykrycie kolizji. Od tego momentu pozycje bomb już się nie ruszyły. Program nie reagowałby również na zmianę pozycji gracza na wejściu position_in, jednak nie zostało to zasymulowane

Symulacja

Jest to druga symulacja, w podobny sposób symulująca wykrycie kolizji. Zasymulowana została zmiana pozycji gracza po wykryci kolizji i widzimy, że gracz zmienia swoją pozycję dopiero po restarcie gry przyciskiem.

Restart gry

Na drugiej symulacji widzimy, że gra restartuje się poprawnie i bomby wracają na swoje pierwotne pozycje.

Zmiana pozycji gracza

Symulacja

Na tym fragmencie symulacji drugiej widzimy, że pozycja gracza ulega zmianie w zależności od wartości position_in. (0b110001111 to 399, 0b1001001111 to 591).

Zmiana pozycji y bomby przy spadnięciu na dół ekranu

Symulacja

Symulacja

Inne fragmenty symulacji pokazują, że bomby poprawnie zmieniają swoją pozycję y w momencie wypadnięcia z ekranu.