Schleife für ein Würfelspiel

NavaJoob

Mitglied
Hallo ich bin dabei für eine Uni Hausaufgabe ein Würfelspiel zu Programmieren aber ich brauche noch einige Schleifen welche abfragen ob ein Spieler nochmal würfeln möchte und dann das Programm nochmal ausführt.

Leider habe ich mich so in meinem Ansatz verrannt, dass nichtsmehr funktioniert.

Wäre wirklich für jede Hilfe dankbar!

Hier mein bisheriger Code und die Angabe im Anhang.

Java:
import java.util.*;
public class Macao {
 public static void main (String[] args) {
    
    
     System.out.println("Wie viele Spieler nehmen teil ?");
     Scanner a = new Scanner(System.in);
     final int numberOfPlayers = a.nextInt();
    
    
     int i = 1;
     for(i = 1; i <= numberOfPlayers; i++) {
     System.out.println( "Spieler : " +i);
    
     int erster = (int)  (Math.random() * 6) + 1;
     System.out.println("Sie haben eine "+erster);   
    
     boolean again = true;
     while(again) {
     String neu = "j";
     String ende = "n";
     System.out.println("Nochmal würfeln ? j oder n ?");
     Scanner c = new Scanner(System.in);
     String b = c.next();
     if (neu.equals(b)) {
         int zweiter = (int)  (Math.random() * 6) + 1;
         System.out.println("Sie haben eine "+zweiter);
         System.out.println("Gesamt "+(erster+zweiter));}
     else {  System.out.println("Endergebnis :" +erster);}

    
    
     }
     }
    
    
    
    
     }
      }
 

Anhänge

  • 04. Kontrollstrukturen.pdf
    64,7 KB · Aufrufe: 23
X

Xyz1

Gast
Java:
import java.util.Scanner;

/**
 * @author
 */
public class Macao {
    public static void main(String[] args) {
        int numberOfPlayers;
        Scanner scan = new Scanner(System.in); // Convert to try-with-resource...
        System.out.println("Wie viele Spieler werden am Spiel teilnehmen?");
        numberOfPlayers = scan.nextInt();
        scan.nextLine();
        do {
            int i = 1;
            int[] sums = new int[numberOfPlayers];
            while (i <= numberOfPlayers) {
                boolean foo = true;
                do {
                    System.out.println("Spieler " + i + " ist dran.");
                    int x = (int) (Math.random() * 6) + 1;
                    System.out.println("Spieler " + i + " würfelte eine: " + x + ".");
                    sums[i - 1] += x;
                    System.out.println("Spieler " + i + " hat jetzt: " + sums[i - 1] + ".");
                    if (sums[i - 1] > 9) {
                        System.out.println("Spieler " + i + " hat verloren.");
                        foo = false;
                    } else {
                        System.out.println("Noch einmal würfeln? ('y')");
                        if (!scan.nextLine().contains("y")) {
                            foo = false;
                        }
                    }
                } while (foo);
                i++;
            }
            int max = -1;
            for (int j = 0; j < numberOfPlayers; j++) {
                if (sums[j] <= 9 && (max == -1 || sums[j] > sums[max])) {
                    max = j;
                }
            }
            if (max == -1) {
                System.out.println("Kein Spieler hat gewonnen.");
            } else {
                System.out.println("Spieler " + (max + 1) + " hat mit " + sums[max] + " gewonnen!!!");
            }
            System.out.println("Noch einmal spielen? ('y')");
        } while (scan.nextLine().contains("y"));
        scan.close();
    }
}
 
X

Xyz1

Gast
Verändere es ein bisschen....
Das wäre dann zwar 'Verschleierung' aber bis ich den obigen Code schrittweise entwickelt hätte, hätte ich das nicht bis 24 Uhr hinbekommen.... ;)

Nee sprich mit einem Tutor dadrüber...
 

NavaJoob

Mitglied
Klar, ändere ich auf jeden fall noch soweit wie möglich ab, ist ja so noch perfekter als eine Musterlösung. :D

Danke dir wirklich nochmal!:)
 
X

Xyz1

Gast
Büdde. (Hatte gerade etwas Leerlauf)
Mich erinnert das ein bisschen an eine Mathe, oder war es Jura?, prüfung an einer Uni bei der bei Beginn der prüfung dann ca 75% der Studierenden krank wurden und danach zu demselben Arzt gegangen sind, um sich einen roten Schein zu holen.... Für die Studierenden war die prüfung eindeutig 'zu schwer' und auch unfair gestellt. Es kamen in der Vorlesung nicht besprochene Inhalte dran. Als 'Protest' wurden also wie abgesprochen alle erst während der prüfung krank. Das hat seitens der Uni einen großen Aufschrei erzeugt, alle sollten einen Fehlversuch bekommen, auch die Drittversuchler. Aber später gab es seitens der Uni einen trade-off. Nicht alle bekamen einen Fehlversuch angerechnet, die meisten mussten ihre Erkrankung nocheinmal attestieren lassen und durften, wenn gewünscht, die prüfung zu einem späteren Zeitpunkt wiederholt schreiben.
Wieso schreibe ich denn jetzt davon? Ich weiß auch nicht genau. Vielleicht um das nicht 'auf die leicht Schulter' zu nehmen. ;)
 

Bible Man

Mitglied
Habe mich auch mal daran versucht. Bis dann.
Java:
package macao;

import java.util.Scanner;

public class Macao {

    public static void main(String[] args) {
        int numberOfPlayers = 0;
        Scanner s = new Scanner(System.in);
        int wurf;
        int wuerfelsumme = 0;
        String antwort;
        int[] punkte;

        System.out.println("How many players?");

        while (true) {
            numberOfPlayers = s.nextInt();
            punkte = new int[numberOfPlayers];
            for (int spieler = 1; spieler <= numberOfPlayers; spieler++) {
                System.out.println("NEXT TURN: Player " + spieler);

                wurf = (int) (Math.random() * 6 + 1);
                wuerfelsumme += wurf;
                System.out.print("You rolled a " + wurf + "! ");
                System.out.println("Score: " + wuerfelsumme);

                while (true) {
                    System.out.println("Roll the dice again? Press ’y’ to continue or any other key to quit.");
                    antwort = s.next();
                    if (antwort.equals("y")) {

                        wurf = (int) (Math.random() * 6 + 1);
                        wuerfelsumme += wurf;
                        if (wuerfelsumme > 9) {
                            punkte[spieler - 1] = wuerfelsumme;
                            System.out.println("YOU LOSE!");
                            break;
                        }
                        System.out.print("You rolled a " + wurf + "! ");
                        System.out.println("Score: " + wuerfelsumme);

                    } else{
                        punkte[spieler - 1] = wuerfelsumme;
                        System.out.println("Your final score is: " + punkte[spieler - 1]);
                        break;
                    }
                }
                wuerfelsumme = 0;
            }
            int gewinner = -1;
            for (int i = 0; i < punkte.length; i++) {
                if(punkte[i] <= 9) {
                    if(gewinner != -1) {
                        if(punkte[i] > punkte[gewinner]) {
                            gewinner = i;
                        }
                    } else {
                        gewinner = i;
                    }
                }
            }
            if(gewinner == -1) {
                System.out.println("No one wins");
            } else {
                System.out.println("Player " + (gewinner + 1) + " has won with a score of " + punkte[gewinner]);
            }
            break;
        }
        s.close();
    }
}
 

marco20

Neues Mitglied
Hallo ich habe so eine ähnliche Aufgabe bekommen in der Uni aber komme auf keine Lösung. Vielleicht könnte einer mir weiterhelfen. Habe bis jetzt versucht aus den obigen Lösungen für meine Aufgabe die Lösung abzuleiten. Und mir fehlt noch, wie in der Aufgabe verlangt, das unterschieden wird ob bereits 6 oder 7 gewürfelt wurden, womit entschieden wird, ob weiter gewürfelt wird oder nicht. Steht aber nochmal alles in der Aufgabe im Anhang. Würde mich über eine Rückmeldung freuen.



public class Macao {
public static void main(String[] args) {
int numberOfPlayers = 2;
do {
int i = 1;
int[] sums = new int[numberOfPlayers];
while (i <= numberOfPlayers) {
boolean foo = true;
do {
System.out.println("NEXT TURN: Player " + i);
int x = (int) (Math.random() * 6) + 1;
System.out.println("Player " + i + " rolled a " + x + "! Score: " + x);
sums[i - 1] += x;
System.out.println("Player " + i + " rolled a " + sums[i - 1] + "! Score: " + sums[i - 1]);
if (sums[i - 1] > 9) {
System.out.println("Player " + i + " LOST!");
foo = false;
}
} while (foo);
i++;
}
int max = -1;
for (int a = 0; a < numberOfPlayers; a++) {
if (sums[a] <= 9 && (max == -1 || sums[a] > sums[max])) {
max = a;
}
}
if (max == -1) {
System.out.println("No Player has won!");
} else {
System.out.println("Player " + (max + 1) + " has won with a score of " + sums[max] + "!");
}
}
}
 

Anhänge

  • Macao.PNG
    Macao.PNG
    99,2 KB · Aufrufe: 6
  • Beispiele Macao.PNG
    Beispiele Macao.PNG
    26,2 KB · Aufrufe: 9

MoxxiManagarm

Top Contributor
Do hast zu viele do-while-Schleifen drin. Die brauchst du nur beim Würfeln eines Spielers. Die Spieler selbst sollten mit einer for-Schleife iteriert werden. Dein boolean foo ist Blödsinn, deine Bedingung schreibst du direkt rein und betrifft die aktuelle Summe
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
H For-Schleife für 60 sekunden laufen lassen Java Basics - Anfänger-Themen 1
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
A Erste Schritte Hilfe für for-Schleife Java Basics - Anfänger-Themen 1
x-tshainge Schleife für ein Würfel Programm Java Basics - Anfänger-Themen 2
krgewb Erweiterte for-Schleife für 2D-Array Java Basics - Anfänger-Themen 4
E Schleife für ein Jahr mit dem GregorianCalendar Java Basics - Anfänger-Themen 1
P Schleife für insert() und delete() im StringBuilder in Verbindung mit indexOf() Java Basics - Anfänger-Themen 7
X Schleife für Charakterauswahl Java Basics - Anfänger-Themen 13
B Für gesamte Schleife genau X Sekunden benötigen Java Basics - Anfänger-Themen 1
H Schleife für Teilen mit Rest Java Basics - Anfänger-Themen 1
Z Für was benötige ich die For-Schleife? Java Basics - Anfänger-Themen 4
H möglichkeiten für for-schleife? (mehrere ausgangsvariablen?) Java Basics - Anfänger-Themen 9
V While Schleife für ganzes Applet Java Basics - Anfänger-Themen 6
N erweiterte for Schleife für Arrays Java Basics - Anfänger-Themen 6
_SeiA_ Suche Schleife/Algorythmus für ein Problem Java Basics - Anfänger-Themen 3
G For Schleife für Objekteigenschaften Java Basics - Anfänger-Themen 6
G Java schleife für PWcracker Java Basics - Anfänger-Themen 7
D Eine Erklärung für eine 3D-Schleife bitte. :) Java Basics - Anfänger-Themen 4
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
DrahtEck Schleife soll wieder da anfangen wo ich es möchte ! Java Basics - Anfänger-Themen 17
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
MaZ Quadrat Schleife(Pyramide) Java Basics - Anfänger-Themen 9
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Wie kann diese Schleife beenden Java Basics - Anfänger-Themen 1
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Verschachtelte for-Schleife Java Basics - Anfänger-Themen 2
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
N Warum Springt iterator nur in der Schleife weiter Java Basics - Anfänger-Themen 9
J for Schleife kleinste Zufallszahl finden Java Basics - Anfänger-Themen 25
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
T Mit jedem Wert in der for-Schleife weiter arbeiten Java Basics - Anfänger-Themen 3
berserkerdq2 Warum muss man manchmal in der RUnmethode sleep in eine schleife tun? Java Basics - Anfänger-Themen 9
F for-Schleife halbiert Durchläufe ungewollt Java Basics - Anfänger-Themen 6
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
J Methoden iterator for-schleife (hasNext() ) Java Basics - Anfänger-Themen 7
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
Neuling47 for schleife Java Basics - Anfänger-Themen 6
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
W Schleife und einmal variable++ zu viel Java Basics - Anfänger-Themen 20
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
T Mäxchenspiel mit Schleife Java Basics - Anfänger-Themen 3
D try/catch-Block bei for-Schleife Java Basics - Anfänger-Themen 14
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
J Schleife Problem Java Basics - Anfänger-Themen 2
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
S Sentinel-Schleife Java Basics - Anfänger-Themen 0
D Array mit while-schleife Java Basics - Anfänger-Themen 12
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
B do while Schleife Java Basics - Anfänger-Themen 3
I Fehler bei for-Schleife Java Basics - Anfänger-Themen 6
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
D Codeverständis For-Schleife Java Basics - Anfänger-Themen 4
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
M For-Schleife Java Basics - Anfänger-Themen 20
el_pato DialogFenster wird nicht in Schleife geöffnet? Java Basics - Anfänger-Themen 30
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
EinNickname9 Denkfehler bei einfacher Schleife Java Basics - Anfänger-Themen 83
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
S Array mit for-Schleife besetzen Java Basics - Anfänger-Themen 7
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
M for schleife ohne geschweifte Klammer Java Basics - Anfänger-Themen 15
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
U geschachtelte if-Schleife Java Basics - Anfänger-Themen 15
M While Schleife? Java Basics - Anfänger-Themen 4
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
J Koordinaten per Schleife ausgeben Java Basics - Anfänger-Themen 6
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
M For Schleife/ArrayList Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben