Java-spel är dataspel skrivna på dator programmeringsspråk " Java . " Java -spel kan vara så komplicerat som det shoot - 'em - up tredimensionella spel skrivna på andra språk , eller så enkelt som en traditionell pussel eller ord pussel . Oavsett vilken typ av spel de slutligen vill skapa , kan spelprogrammerare börja lära Java spelprogrammering genom att kopiera befintliga , enkla program som t.ex. följande ordspel . Saker du behöver
Java Development Kit ( JDK ) från java.sun.com
Visa fler instruktioner
1
Hämta och installera Java Development Kit ( JDK ) från java.sun.com . Börja skapa wordGame programmet genom att öppna Anteckningar och ange följande kod för spelets huvudklass :
import java.io. * , public class wordGame { /*** Konstruktor för objekt av klassen wordGame * /public wordGame ( ) {
} public static void main ( String args [ ] ) { String strGuess ,
quizmaster QM = ny quizmaster ( ) ;
qm.chooseWord ( ) ;//Öppna konsol för inputConsole c = System.console ( ) ; if ( c == null ) { System.err.println ( " Ingen konsoll . " ) ; System.exit ( 1 ) ;}
//Loop tills spelet är overwhile { qm.showGameboard ( ) ( qm.gameOver ( ) ! ) , System.out.format ( " Du har % d försök återstår \\ n . " , qm.getRemainingAttempts ( ) ) ; strGuess = c . readline ( " Skriv in din gissning : " ) ; qm.evaluateGuess ( strGuess ) ;} //slut main loop
om ( qm.playerWon ( ) ) { System.out.format ( " Du vann ! tog du % d försök \\ n ". , qm.nGuessesNeeded ( ) ) ; System.out.format ( qm.getWord ( ) ) ; } //om spelaren wonelse { System.out.format ( " du förlorade ordet var . % s \\ n " , qm.getWord ( ) ) ; } //om spelaren vunnit } //slut på main }
Spara filen med filnamnet " wordGame.java " i en mapp som heter WordGame . Var noga med att matcha för varje brev till den som ges här eftersom Java är skiftlägeskänsligt .
2
Skapa quizmaster klassen , vilket representerar en quizmaster som väljer ord på måfå , jämför spelarens gissning till valda ord och rapporter när spelaren har vunnit eller förlorat . Skriv in följande programkod i en fil som heter QuizMaster.java och spara den i WordGame mappen som innehåller wordGame.java filen : .
Import java.util *;
public class quizmaster {
private final int MAX_GUESSES_ALLOWED = 15 ; private String GameWords [ ] = { " dator " , " Thoroughbred " , " enastående " , " helikoptern " , " flygelhorn " }; private String targetWord , private int nTriesLeft ; privat spelplanen gb ;
allmänheten quizmaster ( ) { nTriesLeft = MAX_GUESSES_ALLOWED , avkastning; }
public void chooseWord ( ) { Random obRand = new Random ( ) ; int i = obRand.nextInt ( GameWords. längd ) ; targetWord = GameWords [ i] ; gb = nya Gameboard ( targetWord ) ;}
public boolean gameOver ( ) { //det finns två end villkor : spelaren vinner eller nTriesLeft går till 0if ( GB . blnMatch ( ) ) return true ; if ( nTriesLeft == 0 ) return true ; annars return false ;}
public boolean playerWon ( ) {return ( gb.blnMatch ( ) ) ; } //spelare vann
public int getRemainingAttempts () { avkastning nTriesLeft ;} //showAttempts
public String getWord ( ) {return targetWord ;} //showWord
public void showGameboard ( ) { gb . showBoard ( ) ;} //showGameboard
public int nGuessesNeeded ( ) {return MAX_GUESSES_ALLOWED - nTriesLeft ;} //nGuessesNeeded
public void evaluateGuess ( String strGuess ) { nTriesLeft - = 1 ; gb . uncoverLetters ( strGuess ) ;} } ;//slutet av quizmaster klass
3
Skapa klassen som avslöjar bokstäverna i ordet som valts av quizmaster som matchar bokstäverna skrivas av spelaren : i en fil som heter gameBoard.java , skriv in följande text och spara den i samma mapp som innehåller de övriga wordGame filer :
import java.io. *;
public class gameboard { private String strGameboard , private String strTarget , private String lettersTested , //dessa är alla de enskilda bokstäverna spelaren har försökt att matcha med
/*** Konstruktor för objekt av klassen spelplanen * /public spelplanen ( String str ) { strTarget = str ; strGameboard = new String ( str ) ; lettersTested = new String ( " " ) ; strGameboard = strGameboard.replaceAll ( " . " , " _ " ) ; återvänder; }
public void uncoverLetters ( String str ) { String strRE ;//för gissningar av en röding lång , avslöja alla bokstäver i mål den matchen //Men behandla gissningar längre än 1 tecken som ett ord mot ord . Avslöja alla eller ingen lettersif ( str.length ( ) == 1 ) { //concatenate nytt brev med bokstäver som redan testedlettersTested = lettersTested + str ; strRE = " [ ^ " + lettersTested + " ] " ;//dölja alla icke - matchande tecken : ersätta alla bokstäver i målet som inte matchar mönstret med underscorestrGameboard = strTarget.replaceAll ( strRE , " _ " ) ;}
else { if ( str.compareToIgnoreCase ( strTarget ) == 0 ) { strGameboard = strTarget ; } } avkastning; }
public boolean blnMatch ( ) {return ( strTarget == strGameboard ) ;}
public void showBoard ( ) { int i; for (i = 0 ; jag < strTarget.length ( ) ; i + + ) { System.out.format ( " % c " , strGameboard.charAt ( i) ) ;} System.out.println ( " \\ n " ) ;
} } //slut på spelplanen klass
4
Kompilera spelet : öppna en kommandotolk ( Start > cmd ) och typ PATH = " C: \\ Program \\ Java \\ jdk1.6.0_14 \\ . " Denna mapp ska innehålla din java kompilatorn ( javac.exe ) . Om den inte gör det , leta javac.exe använder ett Windows Explorer- sökning , ange sedan sin väg med PATH = ... uttalande just gett .
vid kommandotolken , använda " cd" för att navigera till den mapp som innehåller den wordGame mappen . Sammanställa alla filer med detta uttalande : . . Javac * java
5
köra spelet genom att skriva " java wordGame " . Spela spelet genom att skriva in en bokstav i taget , tills du får slut på gissningar eller du gissa ordet . Om du anger mer än en bokstav på en gång , tänker spelplanen klassen du försöker gissa hela ordet och kommer inte att avslöja några bokstäver såvida du matcha dem alla .
6
Memorera och modifiera spel för att börja skapa dina egna spel . Du kan enkelt ändra ord till Quizmaster väljer av , genom att märka hur " GameWords = ... " uttalande är strukturerad . Du kan enkelt ändra antalet försöker spelaren har att gissa ordet med uttalandet innehåller MAX_GUESSES_ALLOWED konstant.