18. To Your Battle Stations


#1



https://www.codecademy.com/courses/python-beginner-en-4XuFm/2/4?curriculum_id=4f89dab3d788890003000096


My code works, I'm just wondering how to make "Game Over" print after the fourth attempt instead of the third. When I change if turn == 3: print "Game Over" to ==4, it will not print Game Over. It defaults to none.


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


#2
== [0, 1, 2, 3]

Just inside your loop,

print turn + 1    # turn starts on zero but displays as 1

Then at the end, just before the loop increments,

if turn + 1 > 4:
    print "Game over"
    break

or simply, if turn > 3. We want to do the test immediately after their turn before the loop comes to an end (which it will do. so we never see, 5 displayed as a turn number).


#3

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.