Play it, Sam


I have completed the exercise, but I am wondering why it prints out the correct answer when I run the code. Whenever I press save & submit it prints the board, the correct answer, the string (Let's play battleship!, and the input for guesses.

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!"

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

for turn in range(4):
# 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!"
        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", turn + 1


Hi @systemmaster43603,

This displays the answer ...

print ship_row
print ship_col

You can remove it or comment it out if you want to play the game without knowing the answer in advance.


Ah, makes sense! Some of the code has been changed from the previous exercise, and apparently that changed since it didn't do that before. Thanks for the quick answer!