Not Again!


#1



https://www.codecademy.com/en/courses/python-beginner-en-4XuFm/1/4?curriculum_id=4f89dab3d788890003000096#


i think i write the right code,but when i run the code twice with same guess, the screen doesn't show "You guessed that one already." I don't know why.


#My code as below:

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)

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)
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))

print ship_row
print ship_col

# Write your code below!
if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations! You sank my battleship!"
else:
    if guess_row not in range(5) or guess_col not in range(5):
        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"
        print_board(board)


#2

Currently your game is setup to only allow one guess before the program ends. Once you start the program again, it clears everything out and creates new values, so the previous guess is no longer stored.


#3

I have the exact same code, and as mkordik states, I wasn't expecting for it to print since its a one try, for now. But it won't let me go through:

"Oops, try again. Did you remember to add the "You guessed that one already." message in your elif statement?"


#4

omg... found out.......
the corrector is "string sensitive" lol......... I was missing the period

:stuck_out_tongue_closed_eyes:


#5

lol the same mistake


#6

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