11. Danger, Will Robinson!


#1

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"


#2

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


#3

if i give input
raw = 4
col = 4

then also it is giving this error


#4

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).


#5

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


#6

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


#7

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! :slight_smile:


#8

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


#9

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.


#10

Yup,This has worked!


#13