12. Bad Aim


I don't understand what to do here.. please explain

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

if guess_row == ship_col 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 != range(5) or guess_col != range(5):
    print "Oops, that/s not even in the ocean!"
else :
    print "You missed my battleship!"
Replace this line with your code.


Hi @_isaza23

Please post the errors you are getting, as well as a link to the lesson.


Oops, try again. Make sure you print "Oops, that's not even in the ocean." if the user guesses a row or column that is off the board.

that is the error


The code you submit is case sensitive. Type "Oops, that's not even in the ocean." with a period at the end. You are using an exclamation mark. Fixing that should make it run :slight_smile:


'''First of you must remove this line.
else :
print "You missed my battleship!"
Replace this line with your code. '''
In if statement double else is wrong. Remove the last one
Second you must nested your if statement exactly under else. Check this https://www.tutorialspoint.com/python/nested_if_statements_in_python.htm
And it will work as necessesary.


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