Các người chơi đứng thành vòng tròn và lần lượt chuyển củ khoai cho người bên cạnh theo chiều kim đồng hồ trên nền nhạc. Khi nhạc dừng, lượt chơi dừng tạm thời, người nào đang giữ củ khoai sẽ bị loại...

THỰC HÀNH

Nhiệm vụ. Trò chơi Hot Potato 

Các người chơi đứng thành vòng tròn và lần lượt chuyển củ khoai cho người bên cạnh theo chiều kim đồng hồ trên nền nhạc. Khi nhạc dừng, lượt chơi dừng tạm thời, người nào đang giữ củ khoai sẽ bị loại và giao lại cho người bên cạnh theo chiều kim đồng hồ. Để đơn giản hóa quy định, người chơi có thể quy ước sau m lần chuyển củ khoai thì lượt chơi ngừng tạm thời. Trò chơi tiếp tục cho đến khi chỉ còn lại một người, gọi là người chiến thắng. Hình 4 minh họa trò chơi Hot Potato với 5 người chơi, bắt đầu từ An.

Yêu cầu: Hãy viết chương trình in ra màn mình tên người chiến thắng với danh sách n (n ≥ 1) người chơi và số nguyên dương m (m > 0) được nhập từ bàn phím. Chạy chương trình với số người chơi n = 5.

Dữ liệu vào: danh sách tên các người chơi và số nguyên dương m (m > 0).

Dữ liệu ra: tên của người chiến thắng.


Chương trình Python mô phỏng trò chơi Hot Potato và xác định người chiến thắng:

from queue import Queue

 

def hot_potato(name_list, m):

    q = Queue()

    for name in name_list:

       q.put(name)

 

    while q.qsize() > 1:

        for _ in range(m):

           q.put(q.get())

       q.get()  # Người giữ củ khoai sau m lần chuyển sẽ bị loại

 

    return q.get()  # Người chiến thắng

 

# Danh sách tên các người chơi và số m nhập từ bàn phím

name_list = input("Nhập danh sách tên các người chơi, cách nhau bởi dấu phẩy: ").split(',')

m = int(input("Nhập số nguyên dương m: "))

 

# Chạy chương trình với số người chơi n = 5

winner = hot_potato(name_list, m)

print(f"Người chiến thắng là: {winner}")

Khi chạy chương trình này, hãy nhập danh sách tên các người chơi và số m theo yêu cầu.


Bình luận

Giải bài tập những môn khác