Übungsaufgaben

TicTacToe

TicTacToe

by Uwe Schwartz -
Number of replies: 2
Hallo,
wollte die Methode gemeOver über eine switch-Anweisung lösen, leider gelingt mir der und-Operator hier nicht.
Eclipse meldet:" The operator && is undefined for the argument type(s)
Status, Status"

Ansatz (Für Horizontale):
switch (Feld[i][0] && Feld [i][1] && Feld [i][2]){
case Status.Kreuz:
return 1;
break;
case Status.Kreis:
return 2;
break;
}

Das Status-Enum:
public enum Status {Leer, Kreuz, Kreis}

Kann man das Problem über eine switch-Anweisung lösen, oder braucht man da was anderes?

In reply to Uwe Schwartz

Re: TicTacToe

by Dominik Köppl -
Status ist nicht vom Typ boolean.
Du kannst Bool'sche Operatoren wie &&, ||, etc. nur mit boolean Ausdrücken bzw. Prädikaten verknüpfen.
Feld[i][0] ist jedoch ein Element eines Enums, keines von oben. Dafür ist '==' ein Prädikat, d.h. (Feld[i][0] == Status.Leer) würde ein boolean zurückgeben, das du dann z.B. wie
Feld[i][0] == Status.Leer && Feld [i][1] == Status.Leer && ...
verknüpfen kannst.
Du kannst zwar
switch (Feld[i][0])
{
case Kreuz:
...
}
schreiben, aber einen bool'schen Ausdruck zu switchen halte ich für sinnlos (gibt ja nur true oder false zurück).

Die Frage in der letzten Zeile kann ich dir nur beantworten, wenn ich weiß, für was du die Switch-Anweisung eingeplant hast. Du kannst die Aufgabe mit und ohne Switch-Anweisung lösen.
In reply to Dominik Köppl

Re: TicTacToe

by Uwe Schwartz -
Ok, danke.
Wollte mir mit den switch-Anweisungen nur Schreibarbeitsparen. Habs jetzt mit if verschachtelt und es funktioniert.