Play It, Sam


Hi, if anyone can please help me spot any mistake in the code? I am getting error "Oops, try again. Did you remember to print out turn + 1 each turn?". However, I am not even sure why as it seems to be working just fine.

I am using Python 3.

Replace this line with your 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))


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 turn in range(4):
    guess_row = int(input("Guess Row:"))
    guess_col = int(input("Guess Col:"))

    if guess_row == ship_row and guess_col == ship_col:
        print ("Congratulations! You sank my battleship!")
    elif guess_row not in range(5) or guess_col not in range(5):
            print ("Oops, that's not even in the ocean.")
        if board[guess_row][guess_col]=="X":
            print ("You guessed that one already.")
            print ("You missed my battleship!")
            print ("Turn", turn+1)


I've seen this written just inside the loop in many examples that seem to pass. We need to read the instructions to be sure. Please post a link to the exercise that instructs us to add this line. Thanks.


Hi mtf, thank you for the quick reply.

The link is following:

The second step says: At the beginning of each iteration, print "Turn", turn + 1 to let the player know what turn they are on.


Which means just inside the loop.

    for turn in range(4):
        print ("Turn", turn+1)

Your indentation is off. All the code inside the function should have at least one indent.


Aha, okay I see - I will look into it. Thank you very much and for your help again.


A side note:

This pattern is easier to read...

if ___:

elif ___:

elif ___:


Examine your code and see what I mean.


print ("Turn", turn+1) is python 3... won't work here. This is 2.x version.
print "Turn", turn + 1 is the right code


That is not what I've found. print () works fine in most situations..


Thank you so much. I had the same question. It was not intention after all.