Oops ,that's not even in the ocean (However I'm pretty sure it is in the ocean)



Hi there, my code keeps saying that the given answers are not in the ocean, however I'm pretty darn sure they are! I looked up several similar topics on the web (apparently the error is more common), but I am not finding a satisfactory answer to the solution.

Given the answers in the range 0-5 they should be on the board (in the ocean), but it keeps saying it is not even in the ocean.... Does anybody know why it keeps doing this?

Thanks girls & guys, Sjors

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."
    elif board[guess_row][guess_col] == "X":
        print "You guessed that one already."
        board[guess_row][guess_col] = 'X'
        print "You missed my battleship!"


Your code is fine.
I believe what you meant was if you did (5, 1) or (5, 5), it wouldnt work but you see your board as 5x5 right?
I think the confusion lies in the fact that the coordinates start at 0. So since 0 is included, the max coord you can enter is (4,4) or else anything beyond (4,4) (like (5,5)) is out of the ocean.

I doubt it's an error but rather how indexing works.


That is a good thing to point out that the input has to be 0-4 considering the indexes. However I do had the problem that whatever the input (also 0-4) the result was that 'wasn't even in the ocean'...... While in the problem seems to be gone in the next stage ("Play it, Sam"). :slight_smile: Small bug in codeacademy or still somewhere in my code...
Thanks for the reponds!


Could be refreshing issues. I used your code in my environment and it works fine.


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