Not Again - please help!


#1



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


I don't understand this thing, that why even after using the same row and column again and again it doesn't says "you already guessed that".
That message hasn't appeared even for once and i have passed this lesson.
Please check if there is some error in my code .
THANKS. :slight_smile:


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:
    """print "You missed my battleship!"
    board[guess_row][guess_col] = 'X'"""
    if guess_row not in range(5) and 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

That message would print if you have marked that location as already shot at, and then detect that it is marked when you visit it again.

So if it's not showing, then you're not doing one of those things.

If your game only has a single turn, then you can't guess the same location twice.


#3

@ionatan thank you so much . I got my mistake.Thanks again :slight_smile:


#4

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