# 11. Danger, Will Robinson!

``````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)
print ship_row
print ship_col

guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))
``````
``````# Write your code below!
if guess_row == ship_row and guess_col == ship_col:
print "Congratulations! You sank my battleship!"
else:
print "You missed my battleship!"
board[guess_row][guess_col] = "X"
print_board(board)
``````

this is giving error like “Traceback (most recent call last):
File “python”, line 33, in
IndexError: list index out of range”

Row and column numbers are `0 to 4`, not `1 to 5`.

1 Like

if i give input
raw = 4
col = 4

then also it is giving this error

I couldn’t find any errors in your code so tested it, and got no errors and a pass. Perhaps refresh the page and try again (be sure your work is saved).

Yeah I get the same error when using the code. Anyone have any clues?

if guess_row == ship_row and guess_col == ship_col:
print “Congratulations! You sank my battleship!”
else:
print “You missed my battleship!”
board[guess_row][guess_col] = ‘X’
print_board(board)

I did this and it let me pass
hope this helps
And when you hit save and submit to test the code, put the numbers 1 and 2 because I tried some numbers higher and it seemed to reject it and give the error that was posted by kathan40

Like mtf was saying rows and columns are from 0 - 4.

This is what you entered row =4 and col = 4 in the console:
O O O O O
O O O O O
O O O O O
O O O X O
O O O O O

This is what the program is comparing above to:
O O O O O
O O O O O
O O O O O
O O O O O
O O O O X

To compare it to the correct row and column you must subtract one when you store the input into guess variables.

Hope this makes sense!

1 Like

It’s a logic error that the check-script in picking up.

The next lesson does a test for range in both directions. Don’t get hung up on this one, unless it is an SCT problem. Just move on.

Yup,This has worked!