java_Code?

1 Antwort

Die oben gezeigten Methoden sind Teile eines Tic-Tac-Toe-Spiels. Die erste Methode, gibBesitzer(), wird verwendet, um den Besitzer der angegebenen Position auf dem Spielfeld zu ermitteln. Dies geschieht durch Überprüfung des Werts, der an der angegebenen Position auf dem Spielfeld gespeichert ist, und Rückgabe des entsprechenden Besitzer-Werts.

Mit der switch-Anweisung wird geprüft welchen Wert die gesuchte Position hat, also 0 -> Feld ist leer, 1 -> besetzt von Spieler 1 oder 2 -> besetzt von Spieler 2

Die zweite Methode, besetzePosition(), wird verwendet, um die angegebene Position auf dem Spielfeld für einen bestimmten Spieler zu besetzen. Dies geschieht, indem der Wert an der angegebenen Position im String "feld" durch den Wert von "spieler" ersetzt wird.

Woher ich das weiß:Studium / Ausbildung – Weil ich gerne studiere :)

Mathematik2000 
Fragesteller
 08.12.2022, 16:56

was bedeutet diese Zeile?

feld = feld.substring(0, position) + spieler + feld.substring (position + 1);

0
xXwilliXx2002  08.12.2022, 17:13
@Mathematik2000

Die Zeile dient dazu, den Wert an der angegebenen Position im String "feld" durch den Wert von "spieler" zu ersetzen, sodass die angegebene Position auf dem Spielfeld für den angegebenen Spieler besetzt wird.

Dafür wird der String feld (der String repäsentiert den aktuellen Status des Spielfelds) aufgeteilt in den Bereich vor der Position die gesetzt werden soll (feld.substring(0, position)), die position, die gesetzt werden soll (wird auf Wert von spieler gesetzt -> also 1 oder 2) und den Teil nach der Position (feld.substring (position + 1)). Das ganze wird dann wieder in die feld variable gespeichert, wodurch der neue Spielstatus gespeichert ist.

Beispiel:

Feld ist

"000000000"

Dann wird Die Methode so aufegerufen (Setzt das Feld (1,1) für den Spieler 2):

besetzePosition(1, 2, 2)

Danach sieht die Variable Feld so aus:

"020000000"

Im Detail passiert das so:

feld = feld.substring(0, position) + spieler + feld.substring (position + 1);

Mit den Werten:

feld = "0" + "2" + "0000000";
0
xXwilliXx2002  08.12.2022, 19:44
@Mathematik2000
int position = gibPosition(zeile, spalte);

speichert in der variable die position an der du etwas ändern möchtest in dem Beispiel von eben wäre das 1 (man fängt an bei 0 zu zählen).

feld.substring(0, position)

nimmt also vom aktuellen String feld nur den Teil von 0 - 1 -> Also nur "0"

feld.substring (position + 1)

nimmt vom String feld alles ab position + 1 -> Also im Beispiel ab 1 + 1 also 2 -> Das wäre dann "0000000"

0