Den Code kann ich problemlos Kompilieren. Aber wenn ich es ausführe, spuckt die JVM diese Fehlermeldung aus:
Exception in thread "main" java.lang.NullPointerException
at qDot.setLaenge(quark.java:54)
at qPunkte.platziereqDots(quark.java:26)
at starter.main(quark.java:83)
Hier der Java-Code:
Falls der Javacode vollständig der Syntax nicht entsprechen würde, würde ich das gerne wissen. ???:L
Das Programmm ist ein kleine Schiffeversenken in einem 3D Gatter.
Exception in thread "main" java.lang.NullPointerException
at qDot.setLaenge(quark.java:54)
at qPunkte.platziereqDots(quark.java:26)
at starter.main(quark.java:83)
Hier der Java-Code:
Java:
import java.util.*;
import java.io.*;
class inputHelfer {
public String getUserinput(String input) {
String inputline = null;
System.out.print(input + " ");
try {
BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
inputline = is.readLine();
if (inputline.length() == 0) return "256";
}catch (IOException e) {
System.out.println("IOException: " + e);
}
return inputline;
}
}
class qPunkte {
public ArrayList<qDot> qDotsListe = new ArrayList<qDot>();
void platziereqDots() {
for(int x = 0; x < 4; x++) {
String laenge = "" + (Math.round(Math.random() * 8));
String breite = "" + (Math.round(Math.random() * 8));
String hoehe = "" + (Math.round(Math.random() * 8));
if(x == 0) {
qDot eins = new qDot();
eins.setLaenge(laenge);
eins.setBreite(breite);
eins.setHoehe(hoehe);
qDotsListe.add(eins);
}
if(x == 2) {
qDot zwei = new qDot();
zwei.setLaenge(laenge);
zwei.setBreite(breite);
zwei.setHoehe(hoehe);
qDotsListe.add(zwei);
}
if(x == 3) {
qDot drei = new qDot();
drei.setLaenge(laenge);
drei.setBreite(breite);
drei.setHoehe(hoehe);
qDotsListe.add(drei);
}
}
}
}
class qDot {
public ArrayList<String> qOrteLaenge;
public ArrayList<String> qOrteBreite;
public ArrayList<String> qOrteHoehe;
private boolean returnstatement = false;
void setLaenge(String laenge) {
qOrteLaenge.add(laenge);
}
void setBreite(String breite) {
qOrteBreite.add(breite);
}
void setHoehe(String hoehe) {
qOrteHoehe.add(hoehe);
}
boolean pruefeKoordinaten(String userTippLaenge, String userTippBreite, String userTippHoehe) {
int indexOfLaenge = qOrteLaenge.indexOf(userTippLaenge);
int indexOfBreite = qOrteBreite.indexOf(userTippBreite);
int indexOfHoehe = qOrteHoehe.indexOf(userTippHoehe);
if(indexOfLaenge == indexOfBreite && indexOfHoehe == indexOfLaenge) {
if(indexOfLaenge != -1) {
qOrteLaenge.remove(indexOfLaenge);
qOrteBreite.remove(indexOfBreite);
qOrteHoehe.remove(indexOfHoehe);
System.out.println("Sie haben ein Objekt im 3 Dimesionalen Raum abgeschossen");
returnstatement = true;
}
}
return returnstatement;
}
}
class starter {
public static void main(String [] args) {
inputHelfer ipH = new inputHelfer();
qPunkte qP = new qPunkte();
qDot qD = new qDot();
qP.platziereqDots();
while(!qD.qOrteHoehe.isEmpty()) {
qD.pruefeKoordinaten(ipH.getUserinput("Geben sie die Laengen ein"), ipH.getUserinput("Geben sie die Breiten ein"), ipH.getUserinput("Geben sie die Hoehen ein"));
}
if(qD.qOrteHoehe.isEmpty()) {
System.out.println("Das Spiel ist beendet, sie haben alle drei Objekte zerstört");
}
}
}
Falls der Javacode vollständig der Syntax nicht entsprechen würde, würde ich das gerne wissen. ???:L
Das Programmm ist ein kleine Schiffeversenken in einem 3D Gatter.