Methoden Schleife immer wieder durchlaufen lassen

Hallo!
Ich bin noch relativ unerfahren, was Programmieren angeht, beherrsche allerdings die Grundkentnisse mit Java.
Ich möchte ein Spiel programmieren, welches aus mehreren Runden bestehen soll. Die Spieler müssen hintereinander immer wieder würfeln und die Augensummen werden addiert. Ich dachte mir, dass ich das ganz gut mit einer for Schleife umsetzen kann, allerdings fiel mir hierbei das Problem aus, dass diese zwar so oft durchläuft, wie ich Spieler habe, aber das wäre in diesem Fall nur eine Runde. Wenn der letzte Spieler gewürfelt hat, soll Spieler 1 wieder würfeln und das muss mein Programm auch irgendwie erkennen. Hat jemand eine Idee, wie ich das umsetzen kann?
 
Steck eine for-Schleife in eine andere for-Schleife - so kannst du die kleinere for-Schleife immer wiederholen. 🙂
 
Danke für den Tipp mit der while Schleife, frage mich, warum ich da nicht selber drauf gekommen bin. Mein Code sieht jetzt so aus:

public void spiel() {
while (summe < abseitszahl.getZahl()) {
for (int i = 0; i < spieler.length; i++) {
summe = summe + spieler.spielerWuerfelt();
}
}
}

Summe ist eine Klassenvariable, der ich zu Beginn keinen Wert gebe, dieser wird eben durch das Würfeln der Spieler hinzugefügt. Meine Frage: Dürfte das an sich so funktionieren, wie ich es mir gedacht habe?
 
Jetzt fällt mir allerdings noch eine Frage ein...
Code habe ich ja gepostet. Ich möchte das Ganze gerne noch in eine if Bedingung setzen, da der Spieler gelöscht werden soll, falls er die Abseitszahl überschreitet. An welcher Stelle mache ich das am Besten, da ich die Bedingung durch die While Schleife ja eigentlich schon setze oder gibt es einen besseren Weg?
 
Ich zeige dir einfach mal die if Schleife, die ich gerne eingebaut hätte.

if (summe > abseitszahl.getZahl()) {
spieler = null;
summe = 0;
}

Und dann sollte möglichst die while Schleife wieder von vorne beginnen.
 
Du gibts deinem Spieler ein Attribut ob er draussen ist oder weiter im Spiel.
Das fragst du in deiner Würfelrunde vorher ab ob er überhaupt würfeln darf.

Code:
//gameloop
while ( würfelrundenanzahl noch nicht erreicht oder andere Abbruchbedingung ) {
  for alleSpieler {
    if spieler.darfSpielen {
        spieler.würfelt
        ...
  }
}
 
Zuletzt bearbeitet:
Na und? Was soll ich jetzt damit anfangen? Lässt sich nicht kompilieren - und zum Raten habe ich heute Morgen bestimmt keine Lust.

Du verlangst etwas von uns! - und nicht umgekehrt. Halte dich daran, oder belästige niemanden.
 
prgprg danke für deine Idee. Habe das Attribut direkt mit eingebaut, kann sich sicherlich als nützlich erweise. Mein Problem habe ich nur immer noch nicht gelöst... Selbst wenn ich dieses Attribut jetzt habe, ist die Bedingung allerdings doch während ich in der while Schleife bin immer (summe < abseitszahl.getZahl()), das heißt doch, dass meine Spieler immer spielen dürfen. Ich muss irgendwie noch die Bedingung einbauen, was passiert, wenn die Summe plötzlich größer als die Zahl ist...
 
@"Der Wissende": Ich belästige hier niemanden. Ich habe lediglich um Hilfe gebeten. Wenn du nicht antworten möchtest oder dich belästigt fühlst, warum auch immer, dann antworte einfach nicht. Ich schreibe dich ja nicht privat an.
 
Selbst wenn ich dieses Attribut jetzt habe, ist die Bedingung allerdings doch während ich in der while Schleife bin immer (summe < abseitszahl.getZahl()), das heißt doch, dass meine Spieler immer spielen dürfen. Ich muss irgendwie noch die Bedingung einbauen, was passiert, wenn die Summe plötzlich größer als die Zahl ist...
Ja, genau, ich habe ich mein Beispiel später geändert: "oder weitere Abbruchbedingungen"

Überleg dir erst mal mal wie dein Spiel abbläuft, dann schreibst du dir nen Pseudocode wie ich
und den programmierst du dann aus.
Es kann evt. auch der Fall auftreten dass alle Spieler nicht mehr spielen dürfen und die Runden anzahl noch nicht durch ist,... Die Abbruchbedingungen musst du nat. alle beachten, sie ergeben sich aus den Spielregeln die wir hier nicht kennen.
 
Dann lies dir mal durch wie man sich hier verhalten soll, anstatt um Lösungen zu betteln. Wie man Fragen richtig stellt, Die Phasen des Erschleichenes von Lösungen, FAQ, Etikette, Netiquette, Knigge und Vor dem ersten Postings Bitte lesen.... Eine versäumte Problembeschreibung stört (mindestens mittelbar) alljene die helfen möchten.
 
  • Ich möchte ein Spiel programmieren, welches aus mehreren Runden bestehen soll.
  • Die Spieler müssen hintereinander immer wieder würfeln und die Augensummen werden addiert.
  • Wenn der letzte Spieler gewürfelt hat, soll Spieler 1 wieder würfeln und das muss mein Programm auch irgendwie erkennen.
Hat jemand eine Idee, wie ich das umsetzen kann?
Also könnte dein Programm in etwa so ablaufen:
Solange die MAX_RUNDENZAHL nicht erreicht -> playRound()
playRound(){ Anzahl X Spieler würfelt Y Mal pro Runde} -> zusatzAufgaben()
zusatzAufgaben(){Bedingungen, Punktevergabe usw}
Wenn die Rundenzahl == MAX_RUNDENZAHL -> Auswertung

Zeig mal den Code, damit jeder hier sehen kann, wie weit du bist.
 

Zurück
Oben