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


#1



Battleship>11. Danger will robinson exercise
https://www.codecademy.com/courses/python-beginner-en-4XuFm/1/2?curriculum_id=4f89dab3d788890003000096#

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)

print_board(board)

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!"
else:
    "You missed my battleship!"
    print_board(board)


#2

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!"


#3

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!"
else:
    print "You missed my battleship!"
    x = board[guess_row][guess_col]
    return x
    print_board(board)

#4

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 :


#5

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


#6

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"


#7

Where does this code go?