Hỏi bài Battleship trong Python trên codecademy

Chào các bạn. Mình đang học python trên trang codecademy. Đã đến phần Battleship game.
Bài này mình chưa biết làm cách nào để qua.

Yêu cầu của bài:

Add an elif to see if the guessed location already has an 'X' in it.
If it has, print "You guessed that one already."

Đây là code của mình:

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)

Tuy nhiên khi chạy thì báo lỗi:

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

Xin các bạn chỉ giúp mình sai chỗ nào? Vì mình thử chạy ở máy tính đoạn code này thì có vẻ đúng rồi.
Cảm ơn các bạn.

Đề nó kêu thêm elif nếu như người chơi đoán vị trí đã có dấu ‘X’ trong đó.
Nếu có thì in ra câu “You guessed that one already.” Bạn nhập thiếu dấu . (dấu chấm) ‘3’
tốt nhất là copy paste

2 Likes

Hic. Bọn này máy móc thật, thiếu mỗi dấu chấm mà cũng ko cho qua :frowning:

Máy tính mà bạn. Ngu lắm =))
Tốt nhất gặp chuỗi nó yêu cầu thì copy paste

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?