Following code works properly, still after running it shows "Oops you missed to print turn + 1 each turn". Please help


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

Everything from here on should go in your for loop!

Be sure to indent four spaces!

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!"
    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"
# Print (turn + 1) here!
print "Turn " + str(turn + 1)


Indent everything under the for-loop first, then edit this line:

and type this instead: print "Turn ", turn + 1

Now it should work fine :grin:


thanks for helping...:slightly_smiling:
i edited the line you suggested and it worked perfectly, but i still can't get why it didn't worked with my previous line of code


I think it was just about the indentations, because you didn't print the turn after every shot. :smiley:

That line didn't actually change anything:stuck_out_tongue:


@frozentofu actually while editing i didn't changed the indentation. I guess its about how codecademy's compiler scans our code. In instructions it was said to print Turn (with comma), so while scanning my code, it expects exact same line given in instruction. :expressionless:


That could also be a possibility :grin:


yup :relaxed: who knows :slightly_smiling: