Valósítsd meg az akasztófa játék logikáját funkcionális reaktív programozással.
Az akasztófa egy egyszerű szókitalálós játék.
A funkcionális reaktív programozás az interaktív programok írásának egyik módja. Annyiban tér el a megszokott szemlélettől, hogy ahelyett, hogy azt mondanád, „amikor megnyomják a gombot, növeld a számlálót”, azt írod le, hogy „a számláló értéke a gomb megnyomásainak összege”.
Valósítsd meg az akasztófa alapvető logikáját funkcionális reaktív programozással. Ehhez telepítened kell egy FRP-könyvtárat, erről a feladat nyelv-, illetve kurzusspecifikus fájljaiban olvashatsz.
A funkcionális programozás egyik fő jellemzője, hogy a függvények mellékhatás nélkül működnek, és ne kelljen azon gondolkodnod, milyen rejtett objektumokat változtatott meg egy függvény.
A reaktív programozásban egy komponens nem maga keresi aktívan a munkát, hanem a munkát tolják a komponenshez. Ez hasonló a callbackekhez, csak sokkal magasabb szinten, hatékonyabb absztrakciókkal. A reaktív programozást nagyon gyakran a funkcionális programozással együtt használják.
A feladatban az RxJava-t fogjuk használni, egy jól ismert könyvtárat a reaktív programozáshoz, amely Java API-val rendelkezik.
A feladat szimulált környezete egy olyan alkalmazás, amely két bemenetet kap:
Ezt a két bemenetet Observable-okkal valósítják meg, a io.reactivex.Observable osztály használatával.
Lényegében fel tudsz iratkozni egy Observable-ra, hogy „reagálj” a valahol előállított értékekre. Például a játékmotor új szavakat küld, amikor észleli, hogy új játék indult, vagy a billentyűzetesemények állítják elő a betűbemeneteket.
De sok reaktív keretrendszer kínál hatékony absztrakciókat, például a map, amellyel megváltoztathatod a kapott bemenetet, vagy a combine, amellyel egy vagy több Observable-t olvaszthatsz össze.
Az Output osztály a feladat feldolgozásának elvárt eredménye; lehetővé teszi, hogy egy frontend
kirajzolja a játék teljes állapotát anélkül, hogy bármiféle tárolást igényelne tőle, így az is
funkcionálissá válik.
Ebben a feladatban meg kell találnod a módját, hogyan használd mindkét bemenetet, hogy előállítsd ezt a kimenetet egy Observable formájában.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Java nyelvet 26 fogalom158 feladat segítségével, valódi emberi mentorálással, mindez ingyen.