使用多线程,模拟实现乌龟和兔子赛跑 总长2000米 规则:兔子每 0.1 秒 5 米的速度,每跑20米休息1秒 乌龟每 0.1 秒跑 2 米,不休息 当有一方到达终点时,另外一方立即终止。
时间: 2023-12-10 09:41:04 浏览: 110
以下是使用Python的多线程模拟乌龟和兔子赛跑的代码:
```python
import threading
import time
class Turtle(threading.Thread):
def __init__(self):
super().__init__()
self.position = 0
def run(self):
while self.position < 2000:
self.position += 2
time.sleep(0.1)
class Rabbit(threading.Thread):
def __init__(self):
super().__init__()
self.position = 0
def run(self):
while self.position < 2000:
if self.position % 20 == 0 and self.position != 0:
time.sleep(1)
self.position += 5
time.sleep(0.1)
turtle = Turtle()
rabbit = Rabbit()
turtle.start()
rabbit.start()
while True:
if turtle.position >= 2000 or rabbit.position >= 2000:
turtle.join()
rabbit.join()
break
print(f"Turtle: {turtle.position}m, Rabbit: {rabbit.position}m")
if turtle.position >= 2000:
print("Turtle wins!")
else:
print("Rabbit wins!")
```
代码中,我们首先定义了 `Turtle` 和 `Rabbit` 两个类,分别表示乌龟和兔子。它们都继承自 `threading.Thread` 类,并且实现了 `run` 方法,来模拟它们的赛跑过程。
在 `Turtle` 类中,每次 `run` 方法被调用时,乌龟会前进 2 米,并且等待 0.1 秒。在 `Rabbit` 类中,每次 `run` 方法被调用时,兔子会前进 5 米,并且等待 0.1 秒。如果兔子已经前进了 20 米,那么会暂停 1 秒钟。
在主程序中,我们创建了乌龟和兔子的实例,并且分别启动了它们的线程。然后在一个循环中,我们不断地打印乌龟和兔子当前的位置,直到有一方到达终点为止。最后,我们根据谁先到达终点来判断胜利者。
阅读全文