欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人文社科 > 生活经验 >内容正文

生活经验

python编写赛车游戏单机版_使用Python中OrderedDict模拟一个简单的竞速游戏排名

发布时间:2023/11/27 生活经验 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python编写赛车游戏单机版_使用Python中OrderedDict模拟一个简单的竞速游戏排名 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

上一篇,我们梳理了Python中关于字典排序的一些常用方法(杂乱无章的数据结构如何进行排序,简明讲述Python字典排序那些事)。其中,我们讲到了Python的collections模块中的OrderedDict类。今天,我们来使用它模拟一个简单的竞速游戏的排名的操作。

实例分析

我们知道,在现实生活中有很多竞速比赛,比如,汽车竞速、游戏比赛竞速、体育竞速等等。这类比赛通常是以选手完成比赛的时间来进行排名的,完成比赛需要所用越短,选手的排名越靠前。今天,我们使用Python来模拟一个竞速比赛。

竞速项目模拟

编程实现

首先,我们创建一个比赛选手列表

import string

player_lst = list(string.ascii_lowercase) # 创建26个选手代号列表

我们再来创建一个OrderedDict用来记录每一个选手比赛的耗时信息。

scroe_dict = OrderedDict()

然后,我们梳理一下程序要如何记录比较过程及每一个选手的比赛信息。

比赛开始,为每一名选手确定一个开始时间,程序等待每一名选手完成比赛,这个比赛过程我们就不用程序模拟了,直接使用input()等待响应,当我们按下任意键后,假设一个随机选手完成比赛。同时,我们将该选手移出比赛队列,记录选手比赛所用的时间,并将选手名次和比赛耗时计入到score_dict中,依次执行,直到比赛结束。

竞速游戏

程序实现如下:

# 计时开始比赛

start = time()

for i in range(len(player_lst)):

input('按任意键随机产生一名参赛者成绩')

# 比赛完成后弹出列表

pop_p = player_lst.pop(randint(0, 25 - i))

# 记录完成时间

end = time()

# 成绩添加进字典中

scroe_dict[pop_p] = (i + 1, end - start)

这样,我们就将选手比赛的名次和耗时信息添加到了OrderedDict字典中。

最后,我们运行程序后打印该字典看下结果。

for key in scroe_dict:

print('第{0}名:姓名{1},成绩为{2:.2f}'.format(scroe_dict[key][0], key, scroe_dict[key][1]))

我们来看一下比赛的具体排名信息,粘贴打印信息如下:

第1名:姓名c,成绩为3.26

第2名:姓名i,成绩为4.11

第3名:姓名x,成绩为4.82

第4名:姓名q,成绩为5.29

第5名:姓名n,成绩为5.69

第6名:姓名v,成绩为6.03

第7名:姓名h,成绩为6.31

第8名:姓名u,成绩为6.54

第9名:姓名s,成绩为6.77

第10名:姓名w,成绩为6.96

第11名:姓名m,成绩为7.15

第12名:姓名a,成绩为7.37

第13名:姓名j,成绩为7.59

。。。

成功模拟了竞速比赛项目,当然,需要说明的是选手排名次序是随机产生的,下一名选手耗时取决于我们按键的频率。

总结

我们成功模拟了一个竞速比赛,作为一个练手小项目,主要是让大家熟悉一下OrderedDict的使用及其优点,作为字典,它可以按照进入字典的次序主动对字典内元素进行排序,减少了排序代码量。类似项目,建议使用OrderedDict这种数据结构。这个项目的目的是让大家掌握类似程序的编写方式,如果可以,这个思路可以运用到我们的竞速游戏开发中。

思路可用于游戏开发

后续会推出更有意思的内容,欢迎大家持续关注,有更好的思路请大家下方留下宝贵的意见。

转载请注明出处,百家号:Python高手养成

总结

以上是生活随笔为你收集整理的python编写赛车游戏单机版_使用Python中OrderedDict模拟一个简单的竞速游戏排名的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。