2016-07-07 19 views
0

はここにある私のコードのすべての文字列に文字を割り当てる方法は?

from random import randint 

board = [] 

for x in range(5): 
    board.append("O" * 5) 

def print_board(board): 
    for row in board: 
     print(" " .join(row)) 

print_board(board) 

def ship_row(board): 
    return randint(0, len(board) - 1) 

def ship_col(board): 
    return randint(0, len(board) - 1) 

print("Play some battleship") 

ship_row = ship_row(board) 
ship_col = ship_col(board) 

print(ship_row) 
print(ship_col) 


for i in range(4): 
    print("Turn "), i + 1 
     guess_row = int(input("Guess Row:")) 
     guess_col = int(input("Guess Col:")) 

if guess_row == ship_row and guess_col == ship_col: 
    print("Congratulations! You sunk my battleship!") 
    break 
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" 
     if (i == 3): 
      print("Game Over") 
    print_board(board) 

これは、あなたがボードでエラーが発生します実行された場合、[guess_row] [guess_col] =「X」ので質問です私はこれら二つのインデックスでの文字列Xを挿入しない方法?

+0

バグのあるコードについての質問には、コードが行うはずのものの説明とともに、*完全な*エラーメッセージとトレースバックが常に含まれている必要があります。また、コードを[MCVE]に減らす必要があります。この質問には、あなたの問題とは関係のない大量のコードが含まれています。 – skrrgwasme

答えて

3

boardは、5つの5文字の文字列のリストです。既存の文字列内の特定の文字、つまりという文字列オブジェクトを割り当てようとしています。 Pythonの文字列はimmutableTutorialもこれに言及しています)であるため、これは不可能です。

In [1]: row = '0' * 5 

In [2]: row 
Out[2]: '00000' 

In [3]: row[3] = 'X' 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-3-954d03c86f5a> in <module>() 
----> 1 row[3] = 'X' 

TypeError: 'str' object does not support item assignment 

あなたは、しかし、あなたの割り当てが動作します。その場合には、文字のリストのリストとしてboardを整理することができます。

In [4]: row = ['0'] * 5 

In [5]: row 
Out[5]: ['0', '0', '0', '0', '0'] 

In [6]: row[3] = 'X' 

In [7]: row 
Out[7]: ['0', '0', '0', 'X', '0'] 
関連する問題