【发布时间】:2016-08-10 06:52:33
【问题描述】:
这是我的战舰游戏代码,我不断收到错误消息
"Type error: unorderable types: str() < int()"
这条消息出现在行
if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
完整代码如下:
import random
board = []
for x in range(0,5):
board.append(["O"] * 5)
def print_board(board):
for row in board:
print (" ".join(row))
print ("Let's play Battleship!")
print_board(board)
def random_row(board):
return random.randint(0,len(board)-1)
def random_col(board):
return random.randint(0,len(board[0])-1)
ship_row = random_row(board)
ship_col = random_col(board)
print (ship_row)
print (ship_col)
for turn in range(4):
guess_row = input("Guess Row:")
guess_col = input("Guess Col:")
if guess_row == ship_row and guess_col == ship_col:
print ("Congratulations! You sunk my battleship!")
break
else:
if turn == 3:
board[guess_row][guess_col] = "X"
print_board(board)
print ("Game Over")
print ("My ship was here: [" + str(ship_row) + "][" + str(ship_col) + "]")
else:
if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
print ("Oops, that's not even in the ocean.")
elif(board[guess_row][guess_col] == "X"):
print ("You guessed that one already.")
else:
print ("You missed my battleship!")
board[guess_row][guess_col] = "X"
print (turn + 1)
print_board(board)
【问题讨论】:
-
请修正您的格式,谢谢!
-
看到错误信息,你的guess_row和guess_col有可能是字符串吗?然后把它们变成整数就可以了: if (int(guess_row) 4) or (int(guess_col) 4):
-
当您
inputguess_row和guess_col的值是字符串时。将它们转换为整数。
标签: python