( ) , static int gissningar = 0 ; statisk String secretWord ;
public static int main ( String [] args ) { secretWord = askForWord ( ) , medan ( playingGame ) { printBodyAndTriedLetters (); printWordSoFar ( ) , getLetter ( ) , om ( gameStatus ( ) == 1 ) { System.out.println ( " Du vinner ! " ) , avkastning 0; } else if ( gameStatus ( ) == -1 ) { System.out.println ( " Du förlorar Secret ord var : " + secretWord ) , avkastning 0; } System.out.println ( ) , System.out.println ( ) , System.out.println ( ) ;} } }
Detta lägger ut spelets struktur och ger dig fem funktioner du behöva skriva att slutföra spelet : . askForWord ( ) , printBodyAndTriedLetters ( ) , printWordSoFar ( ) , getLetter ( ) och gameStatus ( )
2
Skriv askForWord funktionen . Denna funktion kommer att vara ganska enkel . Använd BufferedReader klassen som kommer med Java för att få ett hemligt ord från konsolen , och sedan skriva ut ett hundratal linjer för att dölja ordet .
Public static String askForWord ( ) { BufferedReader i = new BufferedReader ( nytt InputStreamReader ( System.in ) ) , System.out.println ( " Vad är det hemliga ordet : " ) ; String word = in.readLine ( ) toLowerCase ( ) , för ( int x = 0 , x < 100 , x + + . ) { System.out.println ( ) ;} retur ( word ) ;} ( se Referenser 1 ) Addera 3
Skriv de printBodyAndTriedLetters ( ) funktionen . För detta kommer du att skriva ut de hängda kroppsdelar utifrån antalet gissningar spelaren har haft hittills , och skriva ut alla bokstäver hon har försökt .
Public static void printBodyAndTriedLetters () { . //Om noll gissningar , kommer ingen av dessa utvärderas som true //Om två , då både den första och den andra kommer att utvärdera som true.if ( gissningar > = 1 ) System.out.println ( " huvud" ) , om ( gissningar > = 2 ) System.out.println ( "kropp" ), om ( gissningar > = 3 ) System.out.print ( " vänster arm " ), om ( gissningar > = 4 ) System.out . print ( " höger arm " ) , om ( gissningar > = 5 ) System.out.println ( " VÄNSTER BEN " ) , om ( gissningar > = 6) System.out.println ( " HÖGER BEN " ) ;
//Du vill de bokstäver i alfabetisk order.Collections.sort ( triedLetters ) , för ( String bokstav : triedLetters ) { System.out.println ( bokstav + " " ) ; } System.out.println ( ) ; }
4
Skriv printWordSoFar ( ) . Du vill jämföra varje bokstav i ordet med de beprövade bokstäverna och skriva ut dessa bokstäver som matchar . Om ingen matchning hittas , vill du skriva ut ett understreck ( " _ " ) katalog
public static void printWordSoFar ( ) {for ( int x = 0 , x < secretWord.length ( ) ; x + + ) . { String bokstav = secretWord.substring (x) ; boolean found = false; för (String t : triedLetters ) { if ( letter.startsWith (t)) { System.out.print (t) , funnet = true; }} if ( ! hittade) System.out.println ( " _ " ) ;} }
5
Skriv getLetter ( ) . Det är faktiskt enklare än det verkar . Brevet kommer att testas av gameStatus , så allt du behöver göra här är återanvända koden från steg 2 för att hämta ett brev från användaren .
6
Skriv gameStatus ( ) . För att göra detta , återanvända koden i printWordSoFar ( ) för att testa om en skrivelse föreligger . Bara du behöver ändra det på något litet sätt : att testa om slingan har varit framgångsrik i varje iteration . Följande kommer att fungera :
public static void gameStatus ( ) { boolean löst = true; for (int x = 0 , x < secretWord.length ( ) ; x + + ) { String brev = secretWord.substring ( x ) ; boolean hittade = false; för ! ( String t : triedLetters ) {if ( letter.startsWith ( t ) ) { hittat = true; } } if (found ) löst = false; } //Om löst , tillbaka 1 /. /Om inte löst och game over , returnera -1 //Om inget av ovanstående , retur 0.if ( löst ) avkastning 1; . else if ( ! lösta && gissningar > = 6 ) avkastning -1 , annars avkastning 0 ; } Addera