Abend.
Ich darf in meinem Kurs das Spiel Böse 6 programmieren. Kurz gefasst würfelt jeder Spieler so lange er möchte, oder bis eine 6 kommt. Wenn er eine 6 würfelt, dann sind die Punkte dieser Runde verzockt, wenn er vorher aufhört, dann schreibt er die gewürfelten Punkte seinem Punktekonto gut. Gespielt wird bis 50 Punkte oder mehr erreicht werden.
Ich habe mir schon einiges selber erarbeiten können, komme aber gerade nicht weiter. Besonders hapert es bei der Klasse Spiel unter der Methode spielen(). Ich habe dort irgendwie einen Denkfehler eingebaut, sehe aber nicht dessen Lösung. Der Compiler sagt mir, dass ich += nicht nutzen kann, da es nicht für das Objekt spieler definiert ist.
Die Objekte und Methoden sind mir vom Namen und Typ vorgeschrieben, daher kann ich das auch nicht ändern.
Ich darf in meinem Kurs das Spiel Böse 6 programmieren. Kurz gefasst würfelt jeder Spieler so lange er möchte, oder bis eine 6 kommt. Wenn er eine 6 würfelt, dann sind die Punkte dieser Runde verzockt, wenn er vorher aufhört, dann schreibt er die gewürfelten Punkte seinem Punktekonto gut. Gespielt wird bis 50 Punkte oder mehr erreicht werden.
Ich habe mir schon einiges selber erarbeiten können, komme aber gerade nicht weiter. Besonders hapert es bei der Klasse Spiel unter der Methode spielen(). Ich habe dort irgendwie einen Denkfehler eingebaut, sehe aber nicht dessen Lösung. Der Compiler sagt mir, dass ich += nicht nutzen kann, da es nicht für das Objekt spieler definiert ist.
Die Objekte und Methoden sind mir vom Namen und Typ vorgeschrieben, daher kann ich das auch nicht ändern.
Java:
import java.util.*;
public class Spieler
{
public String name;
public int spielstand;
/**
* Spiele hat vor jedem neuen Versuch die Chance abzubrechen
* und seine Punkte gutschreiben zu lassen, daher die Frage
* ob er abbrechen will oder nicht.
*/
public int wuerfeln()
{
int wurf =(int)(Math.random()*6+1);// normaler Würfel mit 6 Seiten.
int versuch = 0;
/* Summe aus der Anzahl der Würfe, ist
initial ersteinmal 0, da der Punktestand zu Beginn
bei 0 liegt.
*/
int a = 0;//Abbruchvariable
do
{
if (wurf==6)
{
System.out.println("Schade, deine gesammelten" +
"Punkte dieser Runde sind weg.");
versuch = 0;
a = 1;
//Abbruchvariable auf 1, daher verlässt man die do-while Schleife.
}
else
{
/**
* Hier wird bei der Variable versuch das
* Wurfergebnis addiert.
*/
versuch +=wurf;
Scanner s = new Scanner(System.in);
System.out.println("<A>bbrechen oder <W>eiter?");
String eingabe = s.nextLine();
if(eingabe.equals("A")||eingabe.equals("a"))
{
System.out.println("abgebochen");
return versuch = spielstand;
}
else
{
System.out.println("weiter");
}
}
return versuch = spielstand;
}
while (a == 0);
}
}
Java:
import java.util.Scanner;
public class Spiel extends Spieler
{
public int anzSpieler;
public Spieler [] spieler;
/**
* Hier soll erst abgefragt werden wie vieler Spieler
* mitspielen und wie diese heißen, damit jeder Spieler
* weiß wer wann am Zug ist.
*/
public void starten()
{
Scanner s1 = new Scanner(System.in);
System.out.println("Wie viele Spieler machen mit?");
int anzSpieler = s1.nextInt(); //die nächste Zahl wird eingelesen
int [] spieler = new int [anzSpieler];
Scanner s2 = new Scanner(System.in);
System.out.println("Wie heißen die Spieler?");
String name = s2.nextLine();
}
/**
* Hier wird gewürfelt bis einer der Spieler 50
* Punkte erreicht hat.
*/
public void spielen()
{
starten();
for(int x = 0; x<= spieler.length; x++)
{
int y = wuerfeln();
spieler[x]+=y;
if(spieler[x]>=50)
{
}
}// Ende for
}
}