三人抢答器程序
时间: 2023-12-17 10:05:01 浏览: 124
以下是一个简单的三人抢答器程序的示例:
```python
import threading
class Buzz:
def __init__(self):
self.lock = threading.Lock()
self.players = {}
self.buzzed = None
def add_player(self, name):
with self.lock:
self.players[name] = False
def buzz(self, name):
with self.lock:
if self.buzzed is None and name in self.players and not self.players[name]:
self.buzzed = name
self.players[name] = True
return True
else:
return False
def reset(self):
with self.lock:
self.buzzed = None
for player in self.players:
self.players[player] = False
```
这个程序使用了 Python 的多线程模块 threading,其中 Buzz 类维护了一个玩家字典和一个锁,以确保线程安全。add_player 方法用于添加玩家,buzz 方法用于响应抢答,reset 方法用于重置游戏状态。下面是一个示例用法:
```python
buzz = Buzz()
buzz.add_player('Alice')
buzz.add_player('Bob')
buzz.add_player('Charlie')
# 玩家 Alice 抢答成功
if buzz.buzz('Alice'):
print('Alice buzzed first!')
# 玩家 Bob 抢答失败(因为 Alice 已经抢答成功)
if buzz.buzz('Bob'):
print('Bob buzzed second.')
# 重置游戏状态
buzz.reset()
# 玩家 Charlie 抢答成功
if buzz.buzz('Charlie'):
print('Charlie buzzed first!')
```
这个程序只是一个简单的示例,实际上还有很多方面需要考虑,比如超时机制、抢答顺序等。
阅读全文