while True: learn() == Gra sposobem na naukę pisania algorytmów?

Algorytmy to nieodzowna część każdego programu. Czy można stworzyć grę, która nauczy cię myśleć jak programista i planować własne algorytmy? Czy twoje plany rozwiązania będą wystarczająco optymalne by podołać postawionym przez ciebie zadaniom?

 

►STEAM = https://store.steampowered.com/app/619150/while_True_learn/

►WWW: https://luden.io/

 


=== WSTĘP ===

Bardzo fajna gra logiczna. Tworzymy algorytmy i naszym zadaniem jest tak przemyśleć układ by spełniał docelowe założenia. Lubisz łamigłówki? Nie zawiedziesz się! Tu trzeba pomyśleć by przejść dalej….

while True: learn() – jest symulatorem specjalisty ds. samouczących się maszyn, który używa programowania wizualnego by zarobić na życie dla siebie i swojego kota. Zarabiaj pieniądze jako deweloper samouczących się maszyn poprzez naukę programowania wizualnego.

 

  • Data wydania = 28 marca 2018
  • Producent Luden.io
  • Wydawca = Nival
  • Gatunek = Early Access, Symulacje, Programming, Edukacyjne, Logiczne, Building, Otwarty świat, Science, Early Access, Niezależne, Underground, Dynamic Narration, Investigation, Transhumanism, Intentionally Awkward Controls
  • Recenzje użytkowników = Bardzo pozytywne (134)
  • Multiplayer =  BRAK
  • Polska wersja językowa = BRAK
  • Regularna cena = 25,49 PLN
  • Więcej informacji https://barter.vg/i/58374/?

 

== OPRAWA GRAFICZNA I DŹWIĘKOWA ===

Grafika jest nieco surowa. Prócz planszy tytułowej naszym oczom będą prezentowane jedynie proste układy logiczne – kwadraty, trójkąty, koła i układy – ciągi transportowe, które służą prezentacji prowadzonych operacji logicznych i arytmetycznych. Całość jest prosta i czytelna zarazem. No – może z wyjątkiem sytuacji gdy wrzucimy kilkanaście układów na planszę – wtedy robi się bałagan…

Oprawa dźwiękowa jest dosyć podobna. Towarzyszy nam jeden motyw muzyczny. Dosyć spokojny i stonowany i co dziwniejsze przy dłuższej rozgrywce jakoś tak wtapia się w tło, że przestaje być zauważany. Nic specjalnego ale też nie denerwuje przy dłuższych posiedzeniach jak zdarza się to przy niektórych tytułach gdzie nuży już na tyle, że musimy ją wyłączać. W czasie samej rozgrywki towarzyszą nam jedynie nasze kliknięcia w przeróżnych interfejsach czy też odgłosy włączania bądź wyłączania mechanizmów.

 


 

=== ROZGRYWKA ===

O czym jest ta gra? Można powiedzieć, iż o historii komputerów. Wraz z przechodzeniem przez nas drzewka technologii poznajemy kolejne algorytmy, które przyczyniły się do powstania obecnych maszyn liczących. Zadania, które przyjdzie nam rozwiązać ułożone są w formie drzewa, które czasami ma także odnogi – są to misje poboczne – nie są konieczne do realizacji ale wskazane jest je wykonać – pozwolą nam zarobić nieco grosza. Wraz z przechodzeniem kolejnych zostaniemy niekiedy zapoznani z historią danego algorytmu takiego jak rozpoznawanie kształtów, systemy decyzyjne i tak dalej. Jeśli zaciekawi cię dany temat to przy jego wprowadzeniu zauważysz ikonkę YouTube oraz symbol globu. Pierwsza otworzy pokazowy film w YouTube zaś druga stronę z opisem danego zagadnienia.

Naszym zadaniem jest opracowywanie algorytmów, które poradzą sobie ze stawianymi przed nami zadaniami. Stopniowo wraz z rozwojem gry jesteśmy zapoznawani z nowymi układami oraz zasadami ich działania. Po lewej stronie mamy zawsze pudełko z przedmiotami o różnych kolorach oraz kształtach. Po prawej – pudełka w których należy je umieścić, wg opisanych zasad. Dla przykładu – pudełko po lewej pełne jest figur w kolorze zielonym, czerwonym i niebieskim. Po prawej mamy dwa pudełka gdzie jedno przyjmuje jedynie figury w kolorze czerwonym a drugie zielonym. Do nas należy użycie odpowiednich elementów sortujących by posortować przedmioty do właściwych miejsc docelowych. Musielibyśmy pozbyć się niebieskich figur a następnie przesłać resztę według właściwości. Wydawałoby się, że  tak prosty układ jak sortowanie dwóch kolorów będzie bardzo łatwy w zastosowaniu. Nic bardziej mylnego. Układy sortujące mają tylko dwa wyjścia – mogą przesłać jeden kolor jednym a drugi – drugim. Ale trzeci będzie losowo przesyłany każdym z nich. Ten musimy “odsiać” w drugim kroku sortowania. Istnieją także inne elementy sortujące, bardziej dokładne – przesyłający tylko jeden kolor jednym slotem a resztę – drugim. Te niestety są trzy razy wolniejsze od tamtych więc nie zawsze można je zastosować. Dlaczego nie zawsze? Na wykonanie całej operacji sortowania mamy z góry zdefiniowany czas, którego nie możemy przekroczyć. Prócz tego do docelowego pudełka musi trafić określona liczba elementów. Dodatkowo – ilość błędów nie może być większa niż dla przykładu 75%. To wszystko powoduje, że niektóre z zadań – choć wydają się bardzo łatwe – w rzeczywistości są dosyć trudne do wykonania.

Rozwiązanie zadania składa się z trzech faz. Pierwsza to samo planowanie. Czas jest nieograniczony, z prawej strony mamy dostępne do budowy elementy i tu tworzymy nasz algorytm. Jeśli chcemy sprawdzić jak działa wytwór naszej wyobraźni – klikamy na testowanie i patrzymy co się dzieje. Możemy przerwać w każdej chwili i poprawić nasz plan czy też poczekać na zakończenie się całego procesu i obejrzeć podsumowanie. Jeśli zalicza nam warunki aktualnego zadania to można przystąpić do ostatniej fazy. Końcowa faza to produkcyjne uruchomienie stworzonego przez nas algorytmu. Za czas działania naszego programu przyjdzie nam zapłacić ponieważ wynajem serwerów kosztuje. Zarobek jaki uzyskamy to różnica zaoferowanej nam płatności minus koszt pracy (czas działania gotowego programu na serwerach). W niektórych zadaniach trzeba nieco pogłówkować i użyć elementów, które co prawda są mniej dokładne – ale jednak działają szybciej i nawet zastosowanie 2-3 szybkich sortowni zamiast jednej może mieć duże znaczenie.

Za uzbierane środki pieniężne w postaci euro-kotów możemy zakupić w lokalnym sklepie różne rzeczy. Skiny dla naszego kota, który wygrzewa się na monitorze czy też różne komponenty serwerowe dające wszelakie efekty typu zwiększona pojemność buforów elementów sortujących, szybszy przepływ danych czy też nieco szybsze ich działanie.

 

Prócz tego co jakiś czas masz także okazję przystąpić do rodzącego się właśnie startupu. Naszym zadaniem jest zrealizować pomysł ludzi za nim stojących. Musimy zaprojektować optymalny algorytm, który poradzi sobie z postawionym przed nami zadaniem. Tu już jest nieco inaczej. Raz, że system ten musi działać efektywnie i dwa – musi sobie radzić z generowanym przez użytkowników obciążeniem. Jeśli użytkowników będzie przybywać, pojawi się obładowanie (overload), które musimy zbić – dla przykładu modyfikując swój program by działał nieco szybciej. Nie możesz przy tym za bardzo się rozbudowywać ponieważ każde użycie elementów to ponoszona przez nas opłata za czas serwerowy więc możesz łatwo doprowadzić do nieopłacalności projektu i włożone weń środki przepadną. Tu musimy obserwować postęp dzień za dniem i reagować w przypadku powstania problemów.

 

Z czasem dotrzesz też do algorytmów samouczących się. Te będą wymagały kilkukrotnych prób by móc nauczyć się rozpoznawać napływające dane. Dzięki temu ilość popełnianych przez nie błędów będzie niższa i tym samym uzyskamy wyższą skuteczność pracy takich układów. Trochę ciężko jest się przyzwyczaić do systemu, który generuje czasami błędy…

 


PORADY:

  • Staraj się utrzymywać porządek na ekranie – łatwo się zagubić w gąszczu połączeń
  • Przyśpieszanie czasu jest ok, ale czasami zwolnij by sprawdzić gdzie są przesyłane zasoby – to pomoże ustalić w czym tkwią problemy
  • Jeśli nie spełniasz wytycznych projektu (przy testach)  to spojrzyj jak wyglądają spełnione założenia na koniec, w docelowych pudłach. To pomoże ci zoptymalizować swój mechanizm.
  • Uważaj z kosztami (opłatami za serwer) w przypadku uczestniczenia w startupach. Lepiej niech to działa wolniej, mniejszym kosztem niźli masz płacić krocie – poprawić zawsze zdążysz gdy zaczną się tworzyć kolejki chętnych.

 


OCENA: POZYTYWNA

Gra jest dosyć ciekawa i spędziliśmy z dzieciakiem kilka godzin walcząc z różnorakimi zadaniami. Czasami wydaje się, że utworzone przez ciebie rozwiązanie powinno działać… po czym okazuje się, że dosłownie o włos nie mieści się w zadanym czasie. To znów wymaga poprawek i rozplanowania tego nieco inaczej. Tak więc mówiąc krótko jeśli lubisz łamigłówki ta gra bez wątpienia powinna Ci się spodobać. Jest jednak na tyle wyczerpująca, że nie usiedzieliśmy przy niej dłużej jak 1-1.5h – przy dłuższych posiedzeniach nieco nudzi, ale wracać wieczorami po pół godziny – godzinę na rozwiązanie pozostałych zagadek jest ok.

 

+++ PLUSY +++

  • ciekawy pomysł i wciągająca rozgrywka.
  • zarówno łatwa jak i trudna (z przewagą tego ostatniego).
  • Proste zasady i proste założenia pozwalają bawić się z grą nawet mojemu 10-letniemu synowi – czasami to on wpadał na rozwiązanie szybciej niż ja.
  • Klimat gier nieco zbliżony do gier Zaachtronic games. Rozwiązywanie problemów “po swojemu” uczy dzieciaki, iż każde zadanie można zrealizować na różne sposoby.
  • Twórca gry jest bardzo aktywny i bierze do serca uwagi graczy – sprawdźcie recenzje gry na Steam (te negatywne).

 

— MINUSY —

  • nieco skąpa oprawa graficzna / dźwiękowa.
  • w sklepie część rzeczy jest zablokowana i nie wiadomo dlaczego (brak wypisanych warunków, które musimy spełnić by rzecz została odblokowana).
  • jeśli chodzi o startupy to nie do końca wiadomo ilu będzie docelowych użytkowników.
  • Interface połączeń mógłby prezentować się nieco lepiej jeśli chodzi o czytelność. Brakuje tu opcji powiększania / pomniejszania naszej powierzchni roboczej by można było łatwiej rozplanować swój projekt.
  • sam opis co niektórych części nie jest nazbyt jasny – nie do końca po tym wiemy jak działa dany układ – przydałyby się pokazowe animacje
  • przy kopiowaniu układów nie wszystko jest niekiedy kopiowane i trzeba dorabiać braki (połączenia pomiędzy układami) ręcznie
  • pasowałoby by układy można było zbierać w grupy.
  • Warsztat Steam i możliwość tworzenia zadań przez samych graczy dodałoby grze nieco wigoru.

 


Screeny:


 RECENZJA:


 YOUTUBE – gameplay: