Ich verstehe nicht, wie ich meine Fehlermeldungen bekomme, es soll ja immer -1 -1 kommen, wenn ich bei der Spieleranzahl (in cmd die erste Zahl die wir eingeben) zum Beispiel -100 oder 268 nimmst, die Spieleranzahl ist ja wie in der Pdf steht auf 5 Mitspieler begrenzt.
Am Schluss muss ich natürlich noch die Stelle mit dem Sieger küren machen, aber das wollte ich erst machen, wenn ich das Problem mit den Fehlermeldungen gelöst habe.
Zum -1 -1 Problem: Ich denke man muss das Ganze irgendwie in eine if-Bedingung packen, so in etwa: if (a<2 && a>6) { System.out.print(-1); System.out.print(-1); else.... mein Programm zum berechnen der Spielerpunktzahl - nur habe ich dann das Problem, dass es mehrere -1 -1 schreibt, nämlich für die jeweilige Spieleranzahl. Ich will aber bei ungültiger Eingabe nichts weiteres als einmal diese beiden -1 -1 in cmd.
Hoffe ich konnte mein Problem verständlich rüber bringen
MFG
Ich habs jetzt so gemacht wie du glaube ich mal gemeint hast und es funktioniert mit den -1 -1 egal wieviele Spieler ich eingebe Hier mal mein Code:
Code:
import java.lang.Math;
public class Maexchen {
public static void main (String... args) {
int spielerAnzahl=Integer.parseInt(args [0]); // Spielerzahl
int x=2*(spielerAnzahl-1)+1; // Anzahl Parameter x
int ergebnissSpieler=0;
int wurfcomputer1=(int) (Math.random()*6)+1;
int wurfcomputer2=(int) (Math.random()*6)+1;
int ergebnissComputer=0;
if (x<=6 && x>0) {
int[] a=new int[x];
for (int i=0; i<a.length;i++) {
a[i]=Integer.parseInt(args [i]);
}
for(int i=1; i<x-1; i=i+2) {
if (a[i]<=6 && a[i+1]<=6 && a[i]>0 && a[i+1]>0) {
if (a[i]==2 && a[i+1]==1) {
ergebnissSpieler=+1000;
} else if (a[i]==a[i+1]) {
ergebnissSpieler=+100*a[i];
} else {
ergebnissSpieler=10*Math.max(a[i],a[i+1])+Math.min(a[i],a[i+1]);
}
if (a[i]<=6 && a[i]>0) {
System.out.print(ergebnissSpieler);
System.out.print(" ");
}
}
} if (wurfcomputer1==2 && wurfcomputer2==1) {
ergebnissComputer=+1000;
} else if (wurfcomputer1==wurfcomputer2) {
ergebnissComputer=+100*wurfcomputer1;
} else {
ergebnissComputer=10*Math.max(wurfcomputer1,wurfcomputer2)+Math.min(wurfcomputer1,wurfcomputer2);
}
System.out.print(ergebnissComputer);
} else {
System.out.print(-1);
System.out.print(-1);
}
}
}
Mir fehlt jetzt eigentlich echt nurnoch die Sache mit dem Gewinner bestimmen, kann ich da wieder mit arrays arbeiten und praktisch aus meinen arrays das größte rausziehen, es einmal über die Schleife laufen lassen und damit die Punktzahl des größten arrays ausliefern? = Sieger // wenn ja, wie genau definier ich dann, dass die ersten beiden eingaben, also array [1] und array [2] Spieler1 entsprechen usw.??
Im Dokument sind Aufrufbeispiele. Mit den Parametern 0, 1 und 1 soll ausgegeben werden:
-1 -1
Die Antwortsyntax lautet nämlich:
<Sieger oder -1 bei Fehler> <Punktezahl oder -1 bei Fehler>
WIm Dokument sind Aufrufbeispiele. Mit den Parametern 0 1 und 1 soll ausgegeben werden:
-1 -1
Die Antwortsyntax lautet nämlich:
<Sieger oder -1 bei Fehler> <Punktezahl oder -1 bei Fehler>
Da steht es wie folgt:
x >= 2 * (Anzahl der Mitspieler – 1) + 1
Das wird bei mir mit meinem jetzigen Code ausgegeben. Im jetzigen Code gibt er halt für jeden Spieler die Punktzahl noch mit aus, das muss ich noch ändern ansonsten passt es. Das Problem mit dem -1 -1 hab ich schon gelöst indem ich vorher überprüfe if (x<=6 && x>0) ansonsten System.out.print(-1) System.out.print(-1) (ganz am Ende des codes)