Schachbrettmuster in Python?
Hallo zusammen,
ich versuche ein Schachbrettmuster, welches nur aus 0 und X besteht, zu erzeugen. Recht simpel, allerdings habe ich einen kleinen Fehler:
n = 4
for i in range(0, n):
for j in range(0, n):
print("X", end="")
print("O", end="")
print()
Die Ausgabe ist:
XOXOXOXO
XOXOXOXO
XOXOXOXO
XOXOXOXO
Dabei sollte es nur:
XOXO
XOXO
XOXO
XOXO
sein.
Also, n ist die Anzahl der Zeichen. Es sollte auch immer mit X beginnen. Das stimmt ja soweit.
Vielen Dank im Voraus.
2 Antworten
Ich denke mal, dass dein Code beim reinkopieren etwas durcheinander geraten ist, weil er so gar nicht läuft.
Vermutlich sah er vorher so aus:
n = 4
for i in range(0, n):
for j in range(0, n):
print("X", end="")
print("O", end="")
print()
Das bedeutet im Prinzip "Schreibe in jede Zeile vier mal 'XO'."
Was du eigentlich wolltest, ist wahrscheinlich, dass sich X und O immer abwechseln und auch jede Zeile abwechselnd mit X oder O anfängt. Das geht am besten, indem du prüfst, ob die Zeile plus Spalte eine gerade Zahl ergibt.
def print_chessboard(size: int):
for row in range(size):
for col in range(size):
print("X" if (row+col)%2==0 else "O", end="")
print()
print_chessboard(8)
Ja, du hast total recht, mein Code ist komisch reinkopiert worden von mir. Wow, danke deine Antwort war echt hilfreich
Dein Code bedeutet soviel wie: "Für jede Zahl von 1 bis n, schreibe erst ein X und dann ein O". Wenn du eine 4 eingibst, dann werden deshalb 4 mal ein X und 4 mal ein O geschrieben.
Hilft dir das weiter?