Trilhas
/
Java
Java
/
Exercícios
/
Jogo da Forca
Jogo da Forca

Jogo da Forca

Difícil

Instruções

Implemente a lógica do jogo da forca usando programação reativa funcional.

Forca é um jogo simples de adivinhar palavras.

Programação reativa funcional é uma forma de escrever programas interativos. Ela difere da perspectiva usual: em vez de dizer "quando o botão for pressionado, incremente o contador", você escreve "o valor do contador é a soma do número de vezes que o botão foi pressionado".

Implemente a lógica básica por trás do jogo da forca usando programação reativa funcional. Você vai precisar instalar uma biblioteca de FRP para isso, e isso será descrito nos arquivos específicos da linguagem/trilha do exercício.

Dicas

Um dos principais aspectos da programação funcional é ter funções sem efeitos colaterais, sem precisar se perguntar quais objetos ocultos uma função alterou.

Com a programação reativa, em vez de um component procurar trabalho ativamente, esse trabalho é enviado para ele. Isso é parecido com callbacks, mas em um nível muito mais alto, com abstrações mais poderosas. Muitas vezes, a programação reativa é usada junto com a programação funcional.

No exercício, vamos usar o RxJava, uma biblioteca conhecida de programação reativa com uma API Java.

O contexto simulado deste exercício é uma aplicação que recebe duas entradas:

  • as novas palavras a adivinhar, vindas de algum motor de jogo,
  • as letras escolhidas pelo jogador.

Essas duas entradas são implementadas com Observables, usando a classe io.reactivex.Observable. Basicamente, você pode se inscrever em um Observable para "reagir" aos valores que são produzidos em algum lugar. Por exemplo, o motor de jogo envia novas palavras quando detecta que um novo jogo começou, ou eventos de teclado geram entradas de letras.
Mas muitos frameworks reativos oferecem abstrações poderosas, como map, que permite mudar a entrada recebida, ou combine, que permite combinar um ou mais Observables.

A classe Output é o resultado esperado do processamento do exercício, permitindo que um front-end exiba o estado completo do jogo sem exigir dele nenhuma forma de armazenamento, o que a torna funcional também.
Neste exercício, você precisa encontrar uma maneira de usar as duas entradas para gerar essa saída na forma de um Observable.

Editar via GitHub O link abre em uma nova janela ou aba
Java Exercism

Tudo pronto para começar Jogo da Forca?

Crie sua conta no Exercism para aprender e dominar Java com 26 conceitos158 exercícios e mentoria humana de verdade, tudo de graça.