BAD AIM error: Oops, try again. Your code looks a bit off. Check the Hint if you need help! Your code threw the following error: list index out of range


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 not in range(5):
print "Oops, that's not even in the ocean."
print "You guessed wrong."


First of all, you should delete this part (not the else), because it will print "You missed my battleship" even if it isn't in the ocean, and will try to put a "X" into the field, which can't work when the shot isn't in the ocean.

Put the board[guess_row][guess_col] = "X" in here, to only print "X", if you miss the ship.