Hvordan lage Java-spill

Java-spill er dataspill skrevet i programmeringsspråk \ "Java. \" Java-spill kan være så komplisert som det shoot-em-up tredimensjonale spill skrevet i andre språk, eller så enkelt som en tradisjonell stikksag eller ord puslespill. Uavhengig av hvilken type spill de til slutt ønsker å skape, kan spillprogrammerere begynne å lære Java spillprogrammering ved å kopiere eksisterende, enkle programmer for eksempel følgende ord spillet.

Bruksanvisning

1 Last ned og installer Java Development Kit (JDK) fra java.sun.com. Begynn å lage wordGame programmet ved å åpne opp notepad og skrive inn følgende kode for spillets hoved klasse:

import java.io. *

public class wordGame
{

/**
* Constructor for objects of class wordGame
*/
public wordGame()
{

}
public static void main (String args [])
{

string strGuess

Quizmaster qm = ny quizmaster ()

qm.chooseWord()


// Åpne konsoll for innspill
Console c = System.console ()

if (c == null) {
System.err.println(\"No console.\")

System.exit(1)

}

// Loop før spillet er over

while (!qm.gameOver()) {
qm.showGameboard()

System.out.format(\"You have %d attempts remaining.\\n\", qm.getRemainingAttempts() );
strGuess = c.readLine(\"Enter your guess: \")

qm.evaluateGuess(strGuess);
}// end main loop

if (qm.playerWon ()) {
System.out.format (\ & quot;!. Du Vant Det tok du% d forsøk \\ n \ & quot ;, qm.nGuessesNeeded ())

System.out.format( qm.getWord())

}// if player won
else {
System.out.format(\"You lost. The word was %s\\n\", qm.getWord())

}// if player won
}//end of main

}

Lagre filen med filnavnet \ "wordGame.java \" i en mappe som heter WordGame. Sørg for å matche tilfelle av hver bokstav i det som er gitt her fordi Java er store og små bokstaver.

2 Lag quizmaster klassen, noe som representerer en quizmaster som velger ord på måfå, sammen spillerens gjetning til det valgte ordet og rapporter når spilleren har vunnet eller tapt. Skriv inn følgende programkode i en fil kalt QuizMaster.java og lagre den i WordGame mappen som inneholder wordGame.java filen:

importere java.util. *

public class quizmaster
{

private final int MAX_GUESSES_ALLOWED = 15

private String GameWords[]= {\"computer\", \"thoroughbred\", \"exceptional\", \"helicopter\", \"flugelhorn\" }

private String targetWord

private int nTriesLeft

private gameBoard gb

public QuizMaster()
{
nTriesLeft = MAX_GUESSES_ALLOWED


komme tilbake

}

public void chooseWord ()
{
Random obRand = new Random ()


int i = obRand.nextInt (GameWords.length);

targetWord = GameWords[i]


gb = ny Bordet (targetWord)

}

public boolean Gameover () {
// Det er to end betingelser: spilleren vinner eller nTriesLeft går til 0
if (gb.blnMatch ()) return true

if (nTriesLeft ==0) return true; else return false

}

public boolean playerWon () {
avkastning (gb.blnMatch ())

}//player won

public int getRemainingAttempts () {
tilbake nTriesLeft

}//showAttempts

public String getWord () {
tilbake targetWord

}//showWord

public void showGameboard () {
gb.showBoard ()

}//showGameboard

public int nGuessesNeeded () {
tilbake MAX_GUESSES_ALLOWED - nTriesLeft

}//nGuessesNeeded

public void evaluateGuess (String strGuess) {
nTriesLeft - = 1

gb.uncoverLetters(strGuess)

}

}; // Slutten av quizmaster klasse

3 Lag den klassen som avdekker bokstavene i ordet valgt av quizmaster som passer de bokstavene du har oppgitt av spilleren: i en fil kalt gameBoard.java, skriver du inn følgende tekst og lagre den i samme mappe som inneholder de andre wordGame filer:

import java.io. *;

public class Bordet
{

private String strGameboard

private String strTarget

private String lettersTested; // these are all the individual letters player has tried to match with

/ **
* Konstruktør for objekter av klassen Bordet
* /
offentlig Gameboard (String str)
{
strTarget = str

strGameboard = new String(str)

lettersTested = new String(\"\")

strGameboard = strGameboard.replaceAll(\".\", \"_\")

return

}

public void uncoverLetters (String str)
{
string strRE

//For guesses of one char long, uncover all letters in target that match
//But treat guesses longer than 1 char as a word against word. Uncover all or no letters
if (str.length() == 1) {
// concatenate new letter with letters already tested
lettersTested = lettersTested + str

strRE = \"[^\" + lettersTested + \"]\"

// hide all non-matching chars: replace all letters in target that do NOT match pattern with the underscore
strGameboard = strTarget.replaceAll(strRE, \"_\")

}

else {
if (str.compareToIgnoreCase (strTarget) == 0) {

strGameboard = strTarget;
}

}
return

}

public boolean blnMatch () {

tilbake (strTarget == strGameboard)

}

public void showBoard () {

int i

for (i = 0; i <strTarget.length (); i ++) {
System.out.format (\ "% c \", strGameboard.charAt (i))

}
System.out.println (\ "\ n \")

}

} // Slutt Bordet klasse

4 Kompilere spillet: åpne en ledetekst (Start> cmd) og skriv PATH = \ "C:. \ Program Files \ Java \ jdk1.6.0_14 \ \" Denne mappen skal inneholde java kompilator (javac.exe). Hvis den ikke, finn javac.exe bruker en Windows Utforsker søk, deretter inn banen med PATH = ... uttalelsen bare gitt.

Ved ledeteksten, bruker \ "cd \" -kommandoen til å gå til mappen som inneholder wordGame mappe. Kompilere alle filene med denne uttalelsen: javac * .java.

5 Kjøre spillet ved å skrive \ "java wordGame \". Spill spillet ved å skrive en bokstav om gangen, før du går tom for gjetninger eller du gjette ordet. Hvis du skriver inn mer enn en bokstav på en gang, mener Spillebordet klassen du prøver å gjette hele ordet, og vil ikke avdekke noen bokstaver med mindre du matche dem alle.

6 Pugg og endre spillet til å begynne å lage dine egne spill. Du kan enkelt endre ordene quizmaster velger fra, ved å merke hvordan \ "GameWords = ... \" statement er strukturert. Du kan enkelt endre antall prøver spilleren har til å gjette ordet i påstanden inneholder MAX_GUESSES_ALLOWED konstant.