Tworzę prostą grę Milionerzy. Nie robię do niej GUI póki co, więc gracz ma do wyboru komendy typu:

  • A/B/C/D wybiera odpowiedź -> sprawdzamy czy poprawna -> itd..
  • Help -> wyświetla dostępne komendy
  • use fiftyfifty / asktheaudience / phoneafriend -> walidacja czy może jeszcze użyć dane koło i wyświetlenie przetworzonych odpowiedzi
    itd.

Rozwiązałem to tak, że mam pętlę w ktorej cały czas sprawdzam scanner.next() później pobieram Enuma PlayerAction no i ten nieszczęsny switch, który decyduje która metoda ma zostać odpalona. Czy można to rozwiązać w jakiś inny sposób? Jeżeli chciałbym do tego dodać opcję keep money to zacznie się robić coraz większy burdel, a switch zacznie rosnąć.

Dodatkowo do kół ratunkowych wykorzystuję refleksje. Ponieważ mam interfejs lifelines i każde kółko go implementuje to tworzę klasę w zależności od tego co wprowadzi gracz i wywołuję na niej metodę getAnswers() ktora zwraca odpowiednio dla każdego kola przeparsowane odpowiedzi, co zaoszczędza trochę ifów. Czy jest to dobre rozwiązanie?