13/15


#1


My code does not behave incorrectly, however I cannot get the program to detect it working and advance to the next part. I get the error message: "Oops, try again. Did you remember to print out turn + 1 each turn?" even though I did print turn + 1 every turn. How do I fix this?


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!"
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)

for turn in range(4):

    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!"
    elif(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."
    else:
        print "You missed my battleship!"
        board[guess_row][guess_col] = "X"
    print_board(board)
    print "Turn" + str(turn + 1)


#2

I guess they expect integer and you are giving them string.


#3

I have 2 ideas:
move the above line straight after the for command (so you print turn before you communicate with the user)
or
remove the str() function from it. Maybe this is messing up with passing the excercise.