Solved but utterly confused. A Real Win


#1



So they want me to put a break after the string "Congrats, you sank my battleship", but i kept getting errors that the break is outside loop. When i inserted it after the for turn in range bit, it debugged successfully, i'm also guessing the program would have exited after winning as well. can someone please explain to me what went wrong?

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"
        if turn == 3:
            print "Game Over"
    # Print (turn + 1) here!
    print_board(board)
    
for turn in range(4):
    print "Turn", turn + 1
    break


Replace this line with your code.


#2

this whole code:

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"
        if turn == 3:
            print "Game Over"
    # Print (turn + 1) here!
    print_board(board)

should be inside the for loop, i do assume you want to give the user multiply shots/attempts?


#3

haha omg.. thanks! That does make a whole lotta sense.


#4

you give the user 3 changes to guess your ship, the break is in the loop. Everyone happy :slight_smile: