Ich habe diesen Battleship Code geschrieben:
Code: Alles auswählen
from random import *
#raster erstellen
board = []
for i in range(3):
board.append(["0","0","0","0","0"])
def boardAusdrucken(board):
for row in board:
print("".join(row))
#Punkesystem definieren
Punkte = 0
#Position des Schiffes definieren
def random_reihe(board):
return randint(0, len(board)-1)
def random_kolone(board):
return randint(0, len(board[0])-1)
schiff_reihe = random_reihe(board)
schiff_kolone = random_kolone(board)
#Das Spiel wird gestartet und das Board wird gedruckt
print("Lass uns Battleship spielen!")
NameSpieler = (input("Wie heisst du?: "))
print("Also, los gehts ",NameSpieler, "!")
print(boardAusdrucken(board))
#user wird zum raten gefragt
for turn in range(3):
rate_reihe = int(input("Rate die Reihe (0-4): "))
rate_kolone = int(input("Rate die Kolone (0-3): "))
#Wenn Spieler das richtige Feld getroffen hat
if schiff_reihe == rate_reihe and schiff_kolone == schiff_kolone:
print("Glückwunsch, du hast das Battleship gesenkt! ")
print("Du hast", Punkte +1, "Punkte")
restart = input("Willst du nochmal spielen ?: ")
if restart == "ja" or "Ja":
print(boardAusdrucken(board))
else:
print("Du hattest", Punkte, "Punkte")
print("Game Over")
# den spieler warnen falls er ausserhalb des Spielfeldes geraten hat
else:
if (rate_reihe < 0 or rate_reihe > 5 ) or (rate_kolone < 0 or rate_kolone > 3):
print("Oops, das ist leider nicht im Spielfeld.")
# warnen falls gleich geraten wurde wie vorher
elif(board[rate_kolone][rate_reihe] == "X"):
print("Da hast du schonmal geraten.")
#Wenn die Rate falsch ist, dann das Feld mit X markieren
else:
print("Du hast nicht getrofen!")
board[rate_kolone][rate_reihe] = "X"
#Turn und board nochmals hier ausdrucken
print("Turn ", str(turn + 1 ), "von 3.")
print(boardAusdrucken(board))
#Wenn der Spieler es 3 mal versucht hat und nicht getroffen hat, das Spiel beenden
if turn == 4:
print("Du hattest", Punkte, "Punkte")
print("Game Over")
Traceback (most recent call last):
File, line 54, in <module>
elif(board[rate_kolone][rate_reihe] == "X"):
IndexError: list index out of range
Könnte ich da Hilfe bekommen ?