15/19 I'd like to understand what I'm doing


#1

I passed the section but I do not understand what the "Turn", turn + 1 does or whether I needed the print turn at the bottom. Here's my code:

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


#2

Did you write that code section of the exercise or code yourself?


#3

first I tried to put the print "Turn", turn + 1 just above print_board but it didn't work then on the Q&A someone had placed it as above tried it and it worked. I'd like to know why it worked. Why does the print "Turn", turn + 1 go just under the for loop?


#4

if it goes under the for loop then it is inside the for loop. Remember you want to print what turn it is before you prompt the user to enter the row and column hence we need to put the code inside the for loop

Does that help?


#5

Yes it does thank you.


#6

Please let's indent our code properly like this:

for me in my_code:
    do this

So that it will be more useful for those who need help. What you posted is quite confusing and badly indented. Thanks