17/19 'break' outside loop


#1

What's wrong with the 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!

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

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

for turn in range(4):
if turn == 3:
print "Game Over"
print_board(board)


#2

Take care to keep the code intact when you post it.

What does the break keyword do?

It's telling you that your break is outside any loop, if you look at your code, do you agree with that?


#4

i am having the same problem. No matter where I put break - I get the same "outside the loop" error message -

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


#5

Hi I had the same problem. "outside the loop" error.
The idea of break is that it can be made only in a loop.
In this case that`s must be for turn in range(4) loop:

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!"
board[guess_row][guess_col] = "X"
break

in other way there is nothing to break.
I think instruction from 15/19 is not clear, I understood all after reading this: