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?