12. Bad Aim


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!"
    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 missed my battleship!"

What's wrong with it....

Traceback : (most recent call last):
File "python", line 22, in
ValueError: invalid literal for int() with base 10: ''


what do you enter in the prompt? It should be a number, your code can't handle non-integers input from the user


I just entered 2 .............................................


Your error message says otherwise:

Look at which value that error message says you used


without any spaces or other characters? Then this error shouldn't arise, can you make a screenshot after you entered the numbers in the prompt?

@ionatan is right (i missed it) it didn't seem you entered 2.


Make sure that when you are typing very quickly, you don't hit the numerical and enter keys in the wrong order.

Try it again.


U r right, thanks a lot!!


@ionatan noticed it ...

ValueError: invalid literal for int() with base 10: ''

You entered an empty string.