Error: Expected string, found int + Setting list element of guess_row, guess_col = x


Battleship>11. Danger will robinson exercise

I am getting the following errors on this exercise:

Traceback (most recent call last):
File "python", line 35, in
File "python", line 10, in print_board
TypeError: sequence item 2: expected string, int found

Also, I am unsure if I am setting the list element to x correctly.

from random import randint

board = []

for x in range(0, 5):
    board.append(["O"] * 5)

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


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

def random_col(board):
    return randint(0, len(board[0]) - 1)

ship_row = random_row(board)
ship_col = random_col(board)
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))

print ship_row
print ship_col

board[guess_row][guess_col] = x

# Write your code below!
if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations! You sank my battleship!"
    "You missed my battleship!"


they want you to stock "X" as string not a variable so to correct it stock "X"

also they want to stock "X" if the guess is not correct and print "You missed my battleship!"


Hi azazaz,

Could you explain what 'stock' is in this context (or in general). I see that i tried to set x as a variable, which is wrong, but I don't know how to stock. I also see that I am supposed to nest it within the if statement. Here's what I have, but with x as a variable:

if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations! You sank my battleship!"
    print "You missed my battleship!"
    x = board[guess_row][guess_col]
    return x


stock like set , equal ....

you have to set board[guess_row][guess_col] to "X" (as string) , remembre that board[guess_row][guess_col] is an element of the board aleardy we set it to "O" ,so if the player miss we change it to be "X"
like this :


I understand the general concept, but don't know how to implement. can you be more specific?


in this code we set all elements of the board to "O" , if we wanna replace "O" by "X" our code can be board[guess_row][guess_col] = "X"


Where does this code go?