2016-04-18 14 views
-1

のために必要な指導、私はこのメッセージは、ラインのpython - 戦艦ゲーム - これは私の戦艦ゲームのための私のコードでエラー

if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):

に表示されます "Type error: unorderable types: str() < int()"

のエラーメッセージが出続けます完全なコードは以下の通りです:

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) 
+0

フォーマットを修正してください。ありがとうございます! – Chris

+0

エラーメッセージを見て、guess_rowとguess_colが文字列である可能性はありますか? if(int(guess_row)<0またはint(guess_row)> 4)または(int(guess_col)<0またはint(guess_col)> 4): – ysearka

+0

これは、 'guess_row'と' guess_col'の値を入力します。これらの値は文字列です。それらを整数に変換します。 – Matthias

答えて

1

入力は文字列として入力を読み取ります。

guess_row = int(input("Guess Row:")) 
guess_col = int(input("Guess Col:")) 
+0

私はあなたが私のケビンベーコンを救った男が大好き – TheNobody

1

このエラーは、あなたの変数guess_rowguess_colが文字列ではなく整数であり、そしてあなたは、整数とそれらを比較しようとしていることを意味します:あなたはint型に変換する必要があります。

比較を行うときには、int(guess_row)int(guess_col)を使用して整数に変換してください。

関連する問題