Nwlapcug.com


Come creare un gioco dell'impiccato con Java

Tutti ricordano giocando il gioco impiccato, indovinando la parola come un bambino. Un giocatore sceglie segretamente una parola. L'altro giocatore deve indovinare lettere che possono essere nella parola. Se lei ha ragione, le lettere vengono aggiunti. Se si sbaglia, un'altra parte del corpo per il boia viene disegnata. Questo tutorial vi insegnerà come creare un semplice gioco dell'impiccato che può essere giocato da due persone utilizzando il Java linguaggio di programmazione.

Istruzioni

1

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

classe Main () {
statici playingGame boolean = true
VAI
statici ArrayList < String > triedLetters = new ArrayList < String > (); static int indovina = 0
VAI
static String secretWord
VAI

public static int main (String [] args) {
secretWord = askForWord()
VAI
mentre (playingGame) {
printBodyAndTriedLetters()
VAI
printWordSoFar()
VAI
getLetter()
VAI
Se (gameStatus() = = 1) {
System.out.println ("hai vinto!")
VAI
return 0
VAI
} ElseIf (gameStatus() = = -1) {
System.out.println ("si perde! Parola segreta era: "+ secretWord)
VAI
return 0
VAI
}
System.out.println)
VAI
System.out.println)
VAI
System.out.println)
VAI
}
}
}

Questo stabilisce 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 di askForWord. Questa funzione sarà piuttosto semplice. Utilizzare la classe BufferedReader che viene fornito con Java per ottenere una parola segreta dalla console e quindi stampare un centinaio di linee per nascondere la parola.

public static String askForWord() {
BufferedReader in = nuovo BufferedReader(new InputStreamReader(System.in))
VAI
System.out.Print ("che cosa è la parola segreta:")
VAI
String parola = in.readLine().toLowerCase()
VAI
per (int x = 0; x < 100; x + +) {
System.out.println)
VAI
}
ritorno (parola)
VAI
}
(vedi bibliografia 1)

3

Scrivere la funzione di printBodyAndTriedLetters(). Per questo, stai andando a stampare le parti del corpo impiccato basate sul numero di tentativi che il giocatore ha avuto finora e stampare tutte le lettere che ha provato.

Public Shared Sub printBodyAndTriedLetters() () {
Se indovina zero, nessuna di queste verrà valutata come true.
Se due, poi entrambi la volontà prima e la seconda valutata come true.

Se (indovina > = 1) System.out.print ("testa")
VAI
Se (indovina > = 2) System.out.print ("BODY")
VAI
Se (indovina > = 3) System.out.print ("braccio di sinistra")
VAI
Se (indovina > = 4) System.out.print ("braccio destro")
VAI
Se (indovina > = 5) System.out.print ("gamba sinistra")
VAI
Se (indovina > = 6) System.out.print ("gamba di destra")
VAI

Si desidera che le lettere stampate in ordine alfabetico.
Collections.Sort(triedLetters)
VAI
per (lettera di stringa: triedLetters) {
System.out.Print (lettera + "")
VAI
}
System.out.println)
VAI
}

4

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

Public Shared Sub printWordSoFar() () {
per (int x = 0; x < secretWord.length(); x + +) {
Lettera di stringa = secretWord.substring(x)
VAI
Boolean trovato = false
VAI
per (String t: triedLetters) {
Se (letter.startsWith(t)) {
System.out.Print(t)
VAI
trovato = true
VAI
}
}
Se (! trovato) System.out.print("_")
VAI
}
}

5

Scrivere getLetter(). Questo è in realtà più semplice di quanto sembra. La lettera sarà testata da gameStatus, quindi tutto quello che dovete fare qui è riutilizzare il codice dal passaggio 2 per recuperare una lettera da parte dell'utente.

6

Scrivere gameStatus(). Per effettuare questa operazione, è possibile riutilizzare il codice in printWordSoFar() per verificare se esiste una lettera. Solo è necessario modificarlo in un modo piccolo: per verificare se il ciclo ha avuto successo in ogni iterazione. Di seguito funzionerà:

Public Shared Sub gameStatus() () {
risolto Boolean = true
VAI
per (int x = 0; x < secretWord.length(); x + +) {
Lettera di stringa = secretWord.substring(x)
VAI
Boolean trovato = false
VAI
per (String t: triedLetters) {
Se (letter.startsWith(t)) {
trovato = true
VAI
}
}
Se (! trovato) risolto = false
VAI
}
Se risolto, restituire 1.
Se non viene risolto e gioco sopra, restituisce -1.
Se nessuna delle precedenti, restituiscono 0.
Se ritorno 1 (risolto)
VAI
ElseIf (! risolto & & indovina > = 6) restituiscono -1
VAI
else return 0
VAI
}