Salve ragazzi...dovrei fare un programma Java che simuli il gioco dell'impiccato. Il problema è che mi blocco quasi all'inizio, non riesco ad estrarre casualmente la parola dall'array.
La traccia è la seguente:
Obiettivo del progetto è la realizzazione di un programma Java che implementi il ben
noto gioco dell’impiccato seguendo le specifiche descritte di seguito.
1. L’utente deve inserire una sequenza di parole di senso compiuto che costituiranno il dizionario da cui estrarre casualmente la parola da indovinare. Il numero di parole della sequenza sarà stabilito dall’utente stesso. Tale operazione deve necessariamente essere effettuata prima di avviare una sessione di gioco vera e propria.
2. Si devono poter eseguire una o più sessioni di gioco, basate sul dizionario di parole già acquisite dal programma all’inizio. Una sessione di gioco si svolge come descritto di seguito.
All’avvio, il programma stampa un “patibolo” vuoto e tanti trattini quante sono le lettere che compongono la parola da indovinare. Ad esempio, se la parola estratta fosse “margherita”, il programma dovrebbe produrre il seguente output:
|---------|
| |
|
|
|
|
|
/|\
_ _ _ _ _ _ _ _ _ _
Viene quindi richiesta l’immissione di una lettera. Se essa è contenuta nella parola, allora al posto di ogni trattino corrispondente alla lettera si deve stampare la lettera stessa, altrimenti deve essere aggiunto un elemento all’impiccato sul patibolo; gli elementi da aggiungere al patibolo sono, nell’ordine:
o testa
o corpo
o braccio sinistro
o braccio destro
o gamba sinistra
o gamba destra.
Ad esempio, se la lettera immessa dall’utente fosse la ‘R’, il programma dovrebbe produrre il seguente output:
|---------|
| |
|
|
|
|
|
/|\
_ _ R _ _ _ R _ _ _
Se invece la lettera immessa dall’utente non fosse contenuta nella parola da indovinare, per esempio: la ‘C’, si
dovrebbe ottenere il seguente output:
|---------|
| |
| O
|
|
|
|
/|\
_ _ _ _ _ _ _ _ _ _
Una sessione di gioco termina quando la parola è stata indovinata (l’utente ha vinto), o quando l’impiccato sul patibolo è stato completato di tutte le parti (l’utente ha perso). Di seguito sono illustrate, nell’ordine, due possibili situazioni per entrambi i casi (vittoria e sconfitta) relativamente all’esempio mostrato in precedenza:
|---------|
| |
| O
| /|
| |
|
|
/|\
M A R G H E R I T A
HAI VINTO!!!!!
VUOI GIOCARE ANCORA?
------------------------------------------
|---------|
| |
| O
| /|\
| |
| / \
|
/|\
_ A R _ _ E R _ _ A
MI DISPIACE, HAI PERSO.
VUOI GIOCARE ANCORA?
NOTE:
1. Le lettere possono essere inserite dall’utente indifferentemente in maiuscolo oppure in minuscolo.
2. Se l’utente immette una lettera già inserita precedentemente, non accade nulla (sia nel caso in cui si tratti di una lettera “buona”, sia nel caso in cui si tratti di una lettera “cattiva”). Il programma, tuttavia, deve segnalare all’utente che quella lettera è già stata inserita in precedenza.