15. Play it Sam: break



Used break to stop turn loop if correctly guessed battleship. Code works but I get error:
Oops, try again. Did you remember to print out turn + 1 each turn?

Codecademy lets me pass if I lose or win on guess 4
Is this not a valid way to make the program or is it just that Codecademy doesnt like it?

from random import randint

board = []
for x in range(0, 5):
    board.append(["O"] * 5)

def print_board(board):
    for row in board:
        print " ".join(row)

def random_row(board):
    return randint(1, len(board))
def random_col(board):
    return randint(1, len(board))

ship_row = random_row(board)
ship_col = random_col(board)
print ship_row
print ship_col
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 sank my battleship!"
        if guess_row not in range(1,6) or guess_col not in range(1,6):
            print "Oops, that's not even in the ocean."
        elif board[guess_row-1][guess_col-1] == "X":
            print "You guessed that one already."
            board[guess_row-1][guess_col-1] = "X"
            print "You missed my battleship!"
        print "Turn:", turn + 1


Now that I posted this I realize it asks you to do this later in the course.
For once I am ahead of the curve!


Did you ever figure out the Oops error there? I'm getting the same thing and it's driving me nuts.


Never Mind. The back end was generateing the error because I used () in my print statement, which I've done for EVERY print statement since starting code academy. Also () is a required syntax in python 3 and is accepted in python 2, so that's dumb...heads up to anyone else who gets this dumb error.


If you put a # in front of the 2 print statements it will work without the ooops error. I have no idea why but i figured that the statements should be disabled anyway since they only serve for debugging.


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