Kurzusok
/
Java
Java
/
Feladatok
/
Akasztófa
Akasztófa

Akasztófa

Nehéz

Utasítások

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.

Tippek

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:

  • az új, kitalálandó szavakat valamilyen játékmotortól,
  • a játékos által kiválasztott betűket.

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.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Java Exercism

Készen állsz elkezdeni a(z) Akasztófa feladatot?

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.