Come creare un gioco dell'impiccato con Java

February 9

Tutti ricordano il gioco di parola-indovinando boia come un bambino. Un giocatore sceglie in segreto una parola. L'altro giocatore deve indovinare lettere che possono essere in parola. Se ha ragione, sono aggiunte le lettere. Se è sbagliato, un'altra parte del corpo per il boia viene inserito. Questo tutorial vi insegnerà come creare un semplice gioco dell'impiccato che può essere giocato da due persone che utilizzano il linguaggio di programmazione Java.

istruzione

1 Costruire il ciclo di gioco principale. Creare una classe denominata principale, e scrivere la seguente funzione principale.

Classe principale {
static playingGame boolean = true
ANDARE
static ArrayList <String> triedLetters = new ArrayList <String> (); congetture static int = 0
ANDARE
static String secretword
ANDARE

Main (string [] args) public static int {
secretword = askForWord ()
ANDARE
while (playingGame) {
printBodyAndTriedLetters ()
ANDARE
printWordSoFar ()
ANDARE
getLetter ()
ANDARE
if (gameStatus () == 1) {
System.out.println ( "Hai vinto!")
ANDARE
return 0
ANDARE
} Else if (gameStatus () == -1) {
System.out.println ( "Tu perde parola segreta è stata:" + secretword)
ANDARE
return 0
ANDARE
}
System.out.println ()
ANDARE
System.out.println ()
ANDARE
System.out.println ()
ANDARE
}
}
}

Questo delinea la struttura del gioco e ti dà cinque funzioni è necessario scrivere per completare il gioco: askForWord (), printBodyAndTriedLetters (), printWordSoFar (), getLetter () e gameStatus ().

2 Scrivere la funzione askForWord. Questa funzione sarà abbastanza semplice. Utilizzare la classe BufferedReader che viene fornito con Java per ottenere una parola segreta dalla console, e poi stampare un centinaio di linee per nascondere la parola.

String public static askForWord () {
BufferedReader in = new BufferedReader (nuovo InputStreamReader (System.in))
ANDARE
System.out.print ( "Qual è la parola segreta:")
ANDARE
parola String = in.readLine (). toLowerCase ()
ANDARE
for (int x = 0; x <100; x ++) {
System.out.println ()
ANDARE
}
ritorno (word)
ANDARE
}
(Vedi Bibliografia 1)

3 Scrivere le printBodyAndTriedLetters funzione (). Per questo, si sta andando a stampare le parti del corpo impiccati in base al numero di tentativi che il giocatore ha avuto finora, e stampare tutte le lettere che ha provato.

printBodyAndTriedLetters public static void () {
// Se a zero congetture, nessuno di questi valuterà come vero.
// Se due, allora sia il primo e secondo valuterà come vero.

se (ipotesi> = 1) System.out.print ( "HEAD")
ANDARE
se (ipotesi> = 2) System.out.print ( "corpo")
ANDARE
se (ipotesi> = 3) System.out.print ( "braccio sinistro")
ANDARE
if (indovina> = 4) System.out.print ( "RIGHT ARM")
ANDARE
se (ipotesi> = 5) System.out.print ( "gamba sinistra")
ANDARE
se (ipotesi> = 6) System.out.print ( "gamba destra")
ANDARE

// Si desidera le lettere stampate in ordine alfabetico.
Collections.sort (triedLetters)
ANDARE
for (String lettera: triedLetters) {
System.out.print (lettera + "")
ANDARE
}
System.out.println ()
ANDARE
}

4 Scrivi printWordSoFar (). Si desidera confrontare ogni lettera della parola con le lettere provato e stampare quelle lettere che corrispondono a. Se non viene trovata alcuna corrispondenza, si desidera stampare un carattere di sottolineatura ( "_").

public static void printWordSoFar () {
for (int x = 0; x <secretWord.length (); x ++) {
lettera String = secretWord.substring (x)
ANDARE
booleano trovato = false
ANDARE
for (String t: triedLetters) {
if (letter.startsWith (t)) {
System.out.print (t)
ANDARE
trovati = true
ANDARE
}
}
if (! trovato) System.out.print ( "_")
ANDARE
}
}

5 Scrivi getLetter (). Questo è in realtà più semplice di quanto sembri. La lettera sarà testato da gameStatus, quindi tutto quello che dovete fare è riutilizzare il codice da Step 2 per recuperare una lettera da parte dell'utente.

6 Scrivi gameStatus (). Per fare questo, riutilizzare il codice in printWordSoFar () per verificare se esiste una lettera. Solo è necessario modificare in un modo piccolo: per verificare se il ciclo ha avuto successo in ogni iterazione. Di seguito funzionerà:

public static void gameStatus () {
booleano risolto = true
ANDARE
for (int x = 0; x <secretWord.length (); x ++) {
lettera String = secretWord.substring (x)
ANDARE
booleano trovato = false
ANDARE
for (String t: triedLetters) {
if (letter.startsWith (t)) {
trovati = true
ANDARE
}
}
if (! trovato) risolto = false
ANDARE
}
// Se risolto, tornare 1.
// Se non risolti e gioco sopra, restituisce -1.
// Se nessuna delle precedenti, restituire 0.
if (risolto) ritornare 1
ANDARE
else if (! risolto && indovina> = 6) tornare -1
ANDARE
altro ritorno 0
ANDARE
}