14. Test run


#1

The code is not doing what its supposed to do when I make the same guess all over again, the code is not displaying "You guessed that one already". Here is my code.
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:
    print "You missed 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."
    else:
        board[guess_row][guess_col] = "X"
print_board(board)

#2

At this point of battleship lesson you are still before adding a loop which will let you take multiple guesses, so I am not sure how are you checking that it is not working properly?

Except that I see something else what can make you a problem

in this part of your code, you have print statement without any condition.
What you want from your code is to check if user guessed ship position, if no then you want to verify if his guesses were in range. If they were you check if he haven't already made those guesses, and finaly if not, then you want to print that he missed your ship.