środa, 20 listopada 2013

Drugi tydzień z rekaktywnym programowaniem

Dzisiaj minął pierwszy deadline na zadania z drugiego tygodnia z kursu Principles of Reactive Programming. Niestety nie udało mi się zdobyć maksa, a jedynie 8.15 z 10.00 punktów. Nie ma sensu dalej walczyć z tymi zadaniami, gdyż i tak maksymalna ocena za wysłanie rozwiązania dzień po terminie jest o 20% mniejsza, więc nic tym sposobem nie zyskam. Lepiej zabrać się za nowe wykłady i zadania, a z tego co słyszałem, to są one jeszcze obszerniejsze niż te z drugiego tygodnia.

Czemu poszło mi tak słabo? Dużo czasu straciłem na w pełni poprawną implementację Demultiplexera. Przeglądałem trochę forum kursu, widziałem tam kłótnie, co do tego w jakiej kolejności powinny być uporządkowane piny wyjściowe, a jednoznacznej odpowiedzi i wyjaśnienia nie było. Błąd, jaki popełniłem, to to, że za mało testów napisałem. Ba, nawet nie trzeba by było ich pisać, a jedynie zaadaptować te, które był dostępne na forum. Po skorzystaniu z takiego jednego testu, od razu udało mi się znaleźć błąd i zaimplementować poprawnie damultipleksera. Nie wystarczało naiwnie sprawdzać pin, na którym miał się generować oczekiwany stan wysoki, ale należało sprawdzać wszystkie piny!

W drugiej części zadania również nie do końca było jak dla mnie jasne, od czego należy zacząć i jak są generowane następne stany gry. Jakoś ta główna pętla symulacji była dla mnie zbyt zaciemniona. Ostatecznie nie udało mi się zaimplementować poprawnie na czas wszystkich reguł gry, gdyż nie chciałem nocki zarywać - wolałem się wyspać. No i też wymagania nie były dla mnie do końca jasne. Coś tam działa, kod przeszedł część testów, kilka punktów wpadło. Dla potomnych screenshot z symulacji.


Na cale szczęście limit 5ciu pierwszych punktowanych rozwiązań został zniesiony. Inaczej pewnie nie udałoby mi się osiągnąć takiego wyniku z tego zadania.

No nic, idziemy dalej, nie poddajemy się, miejmy nadzieję, że następnym razem pójdzie łatwiej.

3 komentarze:

  1. Jako ciekawostkę podsyłam wynik poprawnej symulacji. Jak widać stabilizuje się ona dość szybko. W sumie było to do przewidzenia patrząc na reguł gry:

    http://pl.tinypic.com/r/2820yyx/5

    OdpowiedzUsuń
    Odpowiedzi
    1. To jest na podstawowych parametrach bez ruchu lotniczego i szczepionek? U mnie wykres wyglądał nieco inaczej.

      Usuń
  2. No u mnie niestety wszyscy umierają. Jako błąd dostaję komunikat: Persons move to one of the four neighboring rooms (assuming no room contains visibly infectious persons) within 5 days.

    OdpowiedzUsuń