Play It, Sam


#1



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

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


#2

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.


#3

Hi mtf, thank you for the quick reply.

The link is following: https://www.codecademy.com/en/courses/python-beginner-en-4XuFm/2/1?curriculum_id=4f89dab3d788890003000096

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


#4

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.


#5

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


#6

A side note:

This pattern is easier to read...

if ___:

elif ___:

elif ___:

else:

Examine your code and see what I mean.


#7

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


#8

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


#9

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


#11