Frage zu BlueJ 4-Gewinnt

  • Ersteller Ersteller DruckerAuto
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
D

DruckerAuto

Gast
Hallo, ich muss gerade mit nem Partner zusammen 4 Gewinnt in BlueJ programmieren und wir haben von unserem Lehrer nicht wirklich viele erklärt bekommen, dh. wir verstehen da relativ wenig von. Wir sollten auf jedenfall drei Klassen machen, Spielfeld, Eingabeleser und game...bei game haben wir jetzt allerdings ein Problem. Ich werde jetzt zuersteinmal den kompletten Inhalt der Klasse game hier posten:


public class Game
{
Spielfeld meinFeld; // Spielfeld wird definiert
boolean win=false;

public Game() // das Spiel wird eröffnet
{
meinFeld = new Spielfeld(); // Spielfeld meinFeld wird erzeugt



}
public int gibZug1()
{
Eingabeleser meineEingabe = new Eingabeleser();
int spalte = -1;
String t = meineEingabe.gibEingabe();
if(t.equals ("0"));
{
spalte=0;
}
return spalte;
meinFeld.einwerfen(spalte,1);
}
public int gibZug2()
{
Random random =new Random();
int x= random.nextInt(7);
return x;
}
public boolean istGewinn(int[][] meinFeld, int farbe)
{
int spieler;
spieler = farbe;

for(int j=0; j<6;j++)
{
for(int i=0; i<5;i++)
{
if ((meinFeld [j]== spieler)&&
(meinFeld [j+1]== spieler)&&
(meinFeld [j+2]== spieler)&&
(meinFeld [j+3]== spieler))

{
return true;
}
{
if ((meinFeld [j]== spieler)&&
(meinFeld [i+1] [j]== spieler)&&
(meinFeld [i+2] [j]== spieler)&&
(meinFeld [i+3] [j]== spieler))

{
return true;
}
{
if ((meinFeld [j]== spieler)&&
(meinFeld [i+1] [j+1]== spieler)&&
(meinFeld [i+2] [j+2]== spieler)&&
(meinFeld [i+3] [j+3]== spieler))


{
return true;
}
{
if ((meinFeld [j]== spieler)&&
(meinFeld [i+1] [j-1]== spieler)&&
(meinFeld [i+2] [j-2]== spieler)&&
(meinFeld [i+3] [j-3]== spieler))

{
return true;
}
}

}
}
}
}

public void Steuerung()
{
while (win==false)
{
meinFeld.printDisplay();
meinFeld.einwerfen(gibZug1());
meinFeld.printDisplay();
meinFeld.einwerfen(gibZug2());
System.out.println("Gewinn Spieler 1: "+istGewinn(meinFeld.spielefeld,1));
System.out.println("Gewinn Spieler 2: "+istGewinn(meinFeld.spielefeld,2));
}
}
return false;
}
}


Nun wenn wir das compilieren wollen kommt in der Zeile wo " public void Steuerung()" steht ein Fehler: illegal state of expression" wir sind jetzt ziemlich ratlos was wir da machen sollen, ich hoffe uns kann hier endlich jemand helfen :)
 
Sieht so aus, als ob eine "}" vor "public void Steuerung()" fehlen würde.

edit: bzw. das "return false" samt } noch vor "public void Steuerung()" gehört
 
Zuletzt bearbeitet:
meinst du so?
[...]

}

}
}
}
}
}
return false;
public void Steuerung()
{

Wenn ja, das klappt leider auch nicht, da sagt er mir das return wäre ein illegal state of type
 
Ihr habt da einige Strukturprobleme drin:
'meinFeld.einwerfen(spalte,1);' wird nicht erreicht, da direkt davor ein return steht.
Wie Kahdor schon sagte, das 'return false;' muss vor Steuerung ... und dann fehlt da noch eine '}'

}
return false;
} <-
public void Steuerung() {
{

Logik habe ich mir nicht angeschaut, aber ein wenig ausprobieren könnt ihr ja auch noch. ;-)
 
if ((meinFeld [j]== spieler)&&
(meinFeld [i+1] [j-1]== spieler)&&
(meinFeld [i+2] [j-2]== spieler)&&
(meinFeld [i+3] [j-3]== spieler))

{
return true;
}
}
}
}
}
}
}
return false;
}
public void Steuerung(){
{
while (win==false)
{
meinFeld.printDisplay();
meinFeld.einwerfen(gibZug1());
[...]

so sieht das jetzt bei mir aus... allerdings bekomm ich da jetzt immernoch "illegal state of type bei dem return Befehl
 
Zuletzt bearbeitet von einem Moderator:
und wir haben von unserem Lehrer nicht wirklich viele erklärt bekommen
Aber doch hoffentlich, was das Wort "Hausaufgaben" bedeutet? ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben