16. Game Over


#1


  1. Game Over

Code is not behaving incorrectly. What I mean is that there is no error message, the activity approves and lets me move forward. However, I'm trying to have Turn 1, Turn 2, Turn 3, Turn 4 turn up after each turn. I get all turns to show up after the first turn.


Replace this line with your 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!"
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 == 4:
            print "Game Over"
    # Print (turn + 1) here!
    print_board(board)
    
for turn in range(4):
    print "Turn", turn + 1


#2

you have to place your lines for turn in range(4): and print "Turn", turn + 1 in different places. first one after

second one after

and remember to indent all lines that go after your for line with 4 spaces


#3

Hi,

My code works but codeacademy returns me back this type of error.

Oops, try again. Did you add your if statement with the "Game Over" message?

Here 's my 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!

for turn in range(4):

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 "Turn", turn +1
turn = turn + 1
print_board(board)

#4

if turn == 3:
print "Game Over"

this is right


#5

Thanks!
But somehow I've just fixed it


#6

need to write Over not over....

I've just spent 10 minutes trying to see what I've missed!


#7

I spent about 30 minutes until I discovered that my "Game over" had no capital O.
Basicly I reshaped, reintended everything 2 times. (Back and forth)
Now it works.


#8

This is a common issue with these courses. You rack your brains trying to find your mistake, when you realise that printed statements are supposed to be case-sensitive, and you missed a capitalization.


#9

A post was split to a new topic: 16. game over


#10