Test Run ..... line is getting printed out but not supposed to


#1



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


Like title implies I'm getting line "Oops, your guess isn't even in the ocean" when I type 5 into coordinates which is in the ocean thus I suspect there must be something wrong with the conditionals in second 'if' statement. Any ideas ?


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:
    print "You missed my battleship"

    
    print_board(board)
    if guess_row not in range(0, len(board)) or guess_col not in range(0, len(board)):
        print "Oops, that's not even in the ocean."
                
    elif guess_row == 'X' and guess_col == 'X':
        print "You guessed that one already."
    else:
        print "You missed my battleship"
        board[guess_row][guess_col] = "X"
            
            
        print_board(board)


#2

I believe that's because we start counting at zero. So you have five rows and columns, but they are numbered 0,1,2,3,4. Also, it looks like there's an issue with your elif statement. It should be checking if that position on the board is an "X", but it looks like your code is checking the user's raw_input for "X".


#3

Wow ! Didn't occur to me that I play with lists here and yes they start to be indexed from 0 up to xx. Thanks for reminding me mate !


#4

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