Hi anyone knows what is the problem with this code


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

Write your code below!

if guess_row == ship_row and guess_col == ship_col:
print ("Congratulations! you sank my battleship!")
print ("You missed my battleship!")
board[guess_row][guess_col] = "X"
if guess_row not in range(5) or guess_col in range(5):
print "Oops, that’s not even in the ocean."
print "You missed my battleship!"
board[guess_row][guess_col] = "X"
row = unicode(row, encoding='utf-8')

this is the error
Traceback (most recent call last):
File "python", line 36, in
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 10: ordinal not in range(128)


Oops, try again. Your code looks a bit off. Check the Hint if you need help! Your code threw the following error: 'ascii' codec can't decode byte 0xe2 in position 10: ordinal not in range(128)


I'm not sure what you were trying to do with this, but I'm pretty sure that's causing the error. You were suppose to print the board instead of that line. Replace that line with this:



This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.