16. Game Over - Why does it work like this


Hi Guys, so I will include a photo of the exercise, I think it is easier on the eyes:


# 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!"
        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!
            if turn==3:
                print "Game Over"

I don't get the "turn"-part, First, I can just put it in like that, without prior definition of "turn=0" and just put in "turn+1" for each iteration. (So I guess it just creates the variable with a 0 and puts a 1 on top each time) Then I give the player 4 plays, until I say Game Over - then turn should be on the 4th turn (like the console says). However, why do I put it in like "turn == 3" at the end? This really doesn't make sense to me right now.

I appreciate any explanation!


Let's see what values turn is getting. Like all good programmers, we start counting from 0:

0 1 2 3

Since we want 4 turns, our last turn is 3, which is why we print when turn is equal to 3


Thank you for your answer!! Okay, so it is like a list, I think I get it.