Bad Aim


#1



https://www.codecademy.com/en/courses/python-beginner-en-4XuFm/1/3?curriculum_id=4f89dab3d788890003000096

Im not recieving any error messages, however the code displays "Thats not even in the Ocean" regardless of the numbers I input.


Im expecting the code to only print that message if the input is not in range(5)


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)
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!"
else:
    if guess_row != range(5) and guess_col != range(5):
        print "Oops, that's not even in the ocean."
    else:
        print "You missed my battleship!"
        board[guess_row][guess_col] = "X"
        print_board(board)


#2

What is responsible for determining if that should be printed?

Is a single number ever going to be equal to a range? You're comparing an apple with an orange, they are different, always, because an apple is not an orange.

Also, in order to miss the ocean, it is sufficient to only have one coordinate out of range, right now you're saying that both have to be out of range.


#3

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