代码解释:
-
SpinningTop
类:name
: 陀螺的名称(例如 "Top 1" 或 "Top 2")。speed
: 陀螺的旋转速度。duration
: 陀螺的旋转持续时间。
-
spin
方法:- 随机生成陀螺的旋转速度和持续时间,并打印结果。
-
get_duration
方法:- 返回陀螺的持续时间。
-
main
函数:- 创建两个陀螺对象。
- 等待用户输入以开始旋转,计算并比较两个陀螺的持续时间,决定胜负。
- 询问用户是否重新开始游戏。
运行说明:
- 运行程序时,按下回车键开始旋转陀螺。程序会随机生成两个陀螺的旋转速度和持续时间,并打印每个陀螺的旋转状态。然后决定哪个陀螺旋转时间更长,宣告胜者。游戏结束后,你可以选择是否重新开始。
import random
import time
class SpinningTop:
def __init__(self, name):
self.name = name
self.speed = 0
self.duration = 0
def spin(self):
# 随机生成陀螺的旋转速度(0-100)
self.speed = random.randint(1, 100)
# 随机生成陀螺旋转的持续时间(秒)
self.duration = random.uniform(1.0, 5.0)
print(f"{self.name} spins with speed {self.speed:.2f} and lasts for {self.duration:.2f} seconds.")
def get_duration(self):
return self.duration
def main():
# 创建两个陀螺
top1 = SpinningTop("Top 1")
top2 = SpinningTop("Top 2")
print("Welcome to the Spinning Top Game!")
time.sleep(1)
while True:
input("Press Enter to spin the tops...")
top1.spin()
top2.spin()
# 根据陀螺的持续时间决定胜负
if top1.get_duration() > top2.get_duration():
print("Top 1 wins!")
elif top1.get_duration() < top2.get_duration():
print("Top 2 wins!")
else:
print("It's a tie!")
play_again = input("Play again? (y/n): ")
if play_again.lower() != 'y':
break
if __name__ == "__main__":
main()