16 Game Over help needed

from random import randint

board = []

for x in range(5):
    board.append(["O"] * 5)

def print_board(board):
    for row in board:
        print " ".join(row)

print "Let's play Battleship!"


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)

print ship_row
print ship_col

for i in range(4):
    print "Turn %s" % str(i + 1)
    guess_row = int(raw_input("Guess Row:"))
    guess_col = int(raw_input("Guess Col:"))

    if guess_row == ship_row and guess_col == ship_col:
        print "Congratulations! You sunk my battleship!"
        if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
            print "Oops, that's not even in the ocean."
        elif(board[guess_row][guess_col] == "X"):
            print "You guessed that one already."
            print "You missed my battleship!"
            board[guess_row][guess_col] = "X"


    if i == 3:
        print "Game Over"

This is my code for this step. The problem is that it works properly. However, after it types "Game Over" after Turn 4, the code gives me the following error, and I can't figure out why.
Oops, try again. Make sure that guess_row, guess_col, ship_row, ship_col and turn are all properly defined.

Any ideas what the problem is?


In case anyone is interested, I solved it.

The problem was a stupid one.
Since I chose to name the variable turn "i", instead of turn, and the guidance was to name it "turn", the code got confused.

The error went away, when I changed "i" into "turn". ))))