[Studium] Mäxchenspiel programmieren

Diskutiere [Studium] Mäxchenspiel programmieren im Java Basics - Anfänger-Themen Forum; Nabend, folgende Aufgabe: Abgabe1_v0.2.pdf hier mein code bisher: import java.lang.Math; public class Maexchen { public static void main...

  1. HorstPeter12
    HorstPeter12 Neues Mitglied
    Nabend,
    folgende Aufgabe:
    Abgabe1_v0.2.pdf

    hier mein code bisher:
    Code (Text):
    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;
           
            int[] a=new int[x];
           
            for (int i=0; i<a.length;i++) {
                a[i]=Integer.parseInt(args [i]);
               
            }
           
            for(int i=0; i<x-1; i++) {
                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]);
                        }
                        System.out.print(ergebnissSpieler);
                } else {
                        System.out.print(-1);
                        System.out.print(-1);
                } System.out.println();
            }
                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);
        }
    }
       
    Was zum Henker mach ich falsch? Danke im Vorraus.
     

    Anhänge:

  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. Robat
    Robat Bekanntes Mitglied
    VfL_Freak gefällt das.
  4. krgewb
    krgewb Aktives Mitglied
    Code (Java):
    ergebnissSpieler=+1000;
    Das + kann weggelassen werden. Oder meinst du vielleicht
    Code (Java):
    ergebnissSpieler+=1000;

    Ich verstehe die Aufrufsyntax, die in dem Dokument steht, nicht.
     
  5. HorstPeter12
    HorstPeter12 Neues Mitglied
    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 :D
    MFG
     
  6. Lamajockey
    Lamajockey Neues Mitglied
    Moin,
    dann schau dir mal return an.
     
  7. truesoul
    truesoul Aktives Mitglied
    Hallo.


    Also
    Code (Java):
    int x = 2 * (spielerAnzahl - 1) + 1;
    wird so nicht gehen, wenn der Benutzer -1 -1 angibt.
    Weil spielerAnzahl ja -1 ist. Du solltest also vorher überprüfen ob die Eingaben korrekt sind.

    Die Exception die du bekommen wirst wird wahrscheinlich darauf hinweisen, dass der Index Negativ ist.
    Siehe
    Code (Java):
    int[] a = new int[x];
    Und if (a<2 && a>6) wird nie zutreffen. Weil a nie kleiner 2 sein kann und zugleich größer als 6.

    Grüße
     
  8. HorstPeter12
    HorstPeter12 Neues Mitglied
    @ truesoul Die Formel int x = 2 * (spielerAnzahl - 1) + 1; ist aber in der PDF vorgegeben. D:
     
  9. truesoul
    truesoul Aktives Mitglied
    Dann lese nochmal mein Post. :D
     
  10. HorstPeter12
    HorstPeter12 Neues Mitglied
    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 (Text):
    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.??

    Danke
     
  11. krgewb
    krgewb Aktives Mitglied
    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>

    Da steht es wie folgt drin:
    x >= 2 * (Anzahl der Mitspieler – 1) + 1
     
Die Seite wird geladen...

[Studium] Mäxchenspiel programmieren - Ähnliche Themen

[STUDIUM]Informatik oder doch was anderes?
[STUDIUM]Informatik oder doch was anderes? im Forum Plauderecke
Thema: [Studium] Mäxchenspiel programmieren