( ) ; static int gissingen = 0 ; statische String secretWord ; public static int main ( String [ ] args ) op { secretWord = askForWord ( ) , terwijl ( playingGame ) { printBodyAndTriedLetters ( ) ; printWordSoFar ( ) ; getLetter ( ) if ( gameStatus ( ) == 1 ) { System.out.println ( " You win ! " ) return 0; } else if ( gameStatus ( ) == -1 ) { System.out.println ( " Je verliest Secret woord was : " + secretWord ) return 0; } System.out.println ( ) ; System.out.println ( ) ; System.out.println ( ) ; } } }
Dit legt de structuur van het spel en geeft je vijf functies die u moeten schrijven om het spel te voltooien : . askForWord ( ) , printBodyAndTriedLetters ( ) , printWordSoFar ( ) , getLetter ( ) en gameStatus ( ) kopen van 2
Schrijf de askForWord functie . Deze functie zal zijn vrij eenvoudig . Gebruik de BufferedReader klasse die wordt geleverd met Java om een geheim woord te krijgen van de console , en print ongeveer honderd lijnen om het woord te verbergen dan .
Public static String askForWord
( ) { BufferedReader in = new BufferedReader (nieuw InputStreamReader ( System.in ) ) ; System.out.print ( " Wat is het geheim woord : " ) ; String woord = in.readLine ( ) toLowerCase ( ) ; for ( int x = 0 ; x < 100 ; x + + . ) { System.out.println ( ) ;} return ( woord ) ;} ( zie Referenties 1 )
3
Schrijf de printBodyAndTriedLetters ( ) -functie . Hiervoor gaat u uitprinten opgehangen lichaamsdelen op basis van het aantal gissingen de speler heeft tot dusver , en print alles uit de brieven die ze heeft geprobeerd .
Public void printBodyAndTriedLetters
( ) { . //als zero gissingen , geen van deze zal als ware evalueren //als er twee , dan zijn zowel de eerste en de tweede zal beoordelen als true.if ( gissingen > = 1 ) System.out.print ( " HEAD " ) if ( gissingen > = 2 ) System.out.print ( " BODY " ) if ( gissingen > = 3 ) System.out.print ( "LEFT ARM " ) if ( gissingen > = 4 ) System.out . afdruk ( "RIGHT ARM " ) if ( gissingen > = 5 ) System.out.print ( " LINKERPIJP " ) if ( gissingen > = 6 ) System.out.print ( " RECHTERPIJP " ) ; < br >
//U wilt de letters afgedrukt in alfabetische order.Collections.sort ( triedLetters ) , voor ( String letter : triedLetters ) { System.out.print ( brief + " " ) ; } System.out.println ( ) ; }
Schrijf printWordSoFar 4 ( ) . U wilt elke letter in het woord vergelijken met het geprobeerd letters en print die brieven die overeenkomen . Als er geen overeenkomst wordt gevonden , u wilt afdrukken een underscore ( " _ " )
public void printWordSoFar
( ) { for ( int x = 0 ; x < secretWord.length ( ) ; x + + ) . { String letter = secretWord.substring ( x ) ; boolean gevonden = false; for ( String t : triedLetters ) {if ( letter.startsWith ( t ) ) { System.out.print ( t ) ; gevonden = true; } } if ( ! found) System.out.print ( " _ " ) ; } }
Schrijf getLetter 5 ( ) . Dit is eigenlijk eenvoudiger dan het lijkt . De brief zal worden getest door gameStatus , dus alles wat je hoeft te doen is hier opnieuw de code uit stap 2 op een brief van de gebruiker te halen .
Write gameStatus ( ) 6 . Om dit te doen , opnieuw de code in printWordSoFar ( ) om te testen of een letter bestaat. Alleen moet je om het te veranderen in een kleine manier : om te testen of de lus succesvol is geweest in elke iteratie . De volgende werken :
public void gameStatus
( ) { boolean opgelost = true; for ( int x = 0 ; x < secretWord.length ( ) ; x + + ) { String letter = secretWord.substring ( x ) ; boolean gevonden = false; voor ! ( String t : triedLetters ) {if ( letter.startsWith ( t ) ) { gevonden = true; } } if ( gevonden ) opgelost = false; } //Als opgelost , terug 1 /. /Indien niet opgelost en game over , terug -1 //Als geen van de bovenstaande , retour 0.if ( opgelost ) return 1 ; . else if ( ! opgelost && gissingen > = 6 ) return -1 ; anders return 0 ; }