Game Over error-where to put it?


#1

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 x in range(4):
    guess_row = int(raw_input("Guess Row:"))
    guess_col = int(raw_input("Guess Col:"))
    
    print "Turn", x+1
    
    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 x == 3:
            print "Game over"
            break
        print_board(board)

#2

the instructions say:

Put it under the else that accounts for misses.

    if guess_row == ship_row and guess_col == ship_col:
        print "Congratulations! You sunk my battleship!"
    else: # else that accounts for misses

so you put it at the right place, but you should put it at the same indent level as the else which accounts for misses.

this way, after user has guessed (wrong or right) it checks if the turns have been done


#3

it is giving error:
Oops, try again. Did you add your if statement with the "Game Over" message?


#4

can i see an updated version of your code?


#5

for x in range(4):
    guess_row = int(raw_input("Guess Row:"))
    guess_col = int(raw_input("Guess Col:"))
    
    print "Turn", x+1
    
    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 x == 3:
        print "Game over"
        break  
    print_board(board)

#6

Over is spelled with uppercase O. That took me longer to find then i care to admit :stuck_out_tongue:


#7

oh my god!
thank you so much!


#8