首页 > 编程知识 正文

python简单编程小游戏,python编的著名游戏

时间:2023-05-04 13:33:50 阅读:35312 作者:3038

在文档中,通过使用python编写“猜数字”、“猜语言”和“谁是卧底”三个游戏,例如python语法/列表/元组/词典/过程控制/库函数

环境参数linux平台,python 3.4。 必须在linux上编译python 3.4。 这样做很有用,因为在创建python程序时,您只需要将其另存为. py格式的文件,添加执行权限,然后在终端上运行。

ps:粘贴的python程序代码在windows上也是兼容的。 但是,它是通过python软件而不是命令行运行的。 python软件可以下载安装到官网上,点击打开链接。 学习时,在python软件上直接输入python语句即可打印结果。 也就是说,python不用编译就可以运行,很多人也被称为“脚本”语言。

实现设计

猜数字的很多人在聚餐时都玩过猜数字游戏。 有人随机给出指定范围内的数,其他人各猜一个。 猜的过程中区间越来越窄,直到猜对为止。

这里的数字猜谜游戏是用程序代替给出那个数字的人。 程序算法的设计如下。

1 .输入数字区间---2.系统发生区间内的随机数---3.玩家输入自己猜的数字---4.将玩家猜的数字与答案的高度进行比较并提示---5.偏离则返回3,偏离则提示数量

代码很少,如下所示。

#!/usr/local/ATG djd/python3importrandombot=int (input (setrangebottom (n ) ) top=int (input ) ) set range top (nt=rand(:if(numrand ) : print ((* _ * lowerthantheanswer ) ) else : print (t _ thigherthantheanswer ) ) times'%CNT ) )请注意,第一行通知linux系统这是python3程序,而random是产生随机数的库函数

这样你就能掌握基本的语法和规则了。 接下来试着使用有点难的、短语和循环控制等知识吧。

猜词

电视节目里的《你来比划我来猜》大家都应该看过。 而且很多人也玩过。 规则是一个人看到语言后做出适当的动作或提示。 另一个人看不到语言模仿的动作就能猜到。 猜的时候主持人会判断是否符合规则。

一组玩家猜测词语的算法设计如下。

---2、猜词----3、正解数加1加2、跳过或犯规直接跳2、超时直接跳3---3。 对循环10次后或经过时间后正确回答的问题数进行计数

如果有num组的玩家,进行以上流程的num循环。 当然,也要准备x组的话。 因为每组玩家推测的语言都不一样。

代码量很少,如下所示。

#!/usr/local/ATG djd/python 3导入时间编号=int (input ) (有多少组玩家(n ) ) guessWord=[]correct=[]#定义num 10不想让gorect说num 10 ) :guessword.append(0) correct.append(0)0) wordnum=10guessword)=[不友好的坏话)金鸡独立“越过火线”(guessword(1)=(眉飞色舞)、“英雄联盟”、“扭秧歌”、“窥视壮实的白开水”、“大摇大摆”、“对视一笑”、“ “单恋”、“臭袜子”、“趁火打劫”(flag='n'forIinrange(0,num ) :start=time.time ) for k in range(0) )。 guess word [ I ] [ k ] (flag=input ) (请解答。 正确答案请输入y,跳过请输入任意键。 (end=time.time ) )用于sec=end-start#统计时if(110=sec=游戏结束' (breakif(flag=='y ' ) ) :correct[i]=c

orrect[i]+1continueelse:continuestr_temp=('第%d组答对数目:%d') % (i+1,correct[i])print (str_temp)其实词语可以做成从独立的文件中读入的方式,这样方便更新和管理,下面就介绍一种用“字典”的方式来获得“谁是卧底”的卧底词。

谁是卧底

谁是卧底也是深受很多人喜欢的游戏,起码要三人以上才能玩,大致分为几个阶段:1.分配平民词语和卧底词语--->2.玩家依次发言--->3.根据发言投票认为谁是卧底--->4.得到票数最多的玩家出局--->5.出局玩家刚好是卧底则平民胜利,如果出局玩家是平民则被冤死并继续第2步,当剩下的平民只有1个时卧底胜利。

特殊情况是,出现两名或以上的玩家票数相同,则相同票数的玩家重新发言,然后全体针对这几个玩家投票。

程序设计思想:输入玩家数num,玩家编号为0~num-1,然后定义三个含有num个元素的列表:词语列表,计算玩家票数的列表,死亡玩家的列表。列表下标从0~num-1,随机产生该区间的数x,代表x号玩家是卧底,然后分配卧底词和平民词。注意,提示几号玩家是卧底或冤死的时候,要将打印信息时候的下标加1,比如下标数0代表的其实是1号玩家。在生活中,没多少人会习惯说自己是“第0个人”这种说法吧,除了程序员- -;

在每轮游戏中,依次进行发言,投票,票数最多的玩家出局(出现相同票数则重新发言),出局玩家归入死亡玩家列表。然后开始下一轮。

那么,如果有num位玩家,则最多有多少轮游戏结束?因为进行到只有2位玩家游戏就结束了,所以答案是num-2轮!也就是说上述流程要循环num-2次。

编程思想定了就可以敲代码了,程序代码如下:

#!/usr/local/atgdjd/python3import randomfrom spyword import spywordnum=int(input('请输入玩家数(至少为3)n'))#卧底玩家spy=random.randint(0,num-1)#随机产生词语 定义词语列表 计算玩家票数的列表 统计死亡玩家的列表list_rand=spyword.popitem()word=[]cnt=[]dead=[]#给三个列表赋值for i in range(0,num):word.append('a')cnt.append(0)dead.append(num+2)#给玩家词语 其中print是调试用的,sanmeVote是出现相同票数的标志,spyWin是卧底胜利的判决条件for i in range(0,num):if (i==spy):word[i]=str(list_rand[1])else:word[i]=str(list_rand[0])print (word[i])sameVote=0spyWin=0#游戏开始for x in range(0,num-1):for k in range(0,num):if ((k not in dead) & (sameVote==0)):print ('%d号玩家发言时间'%(k+1))print ('发言环节结束')#将各位玩家的票数置0for j in range(0,num):if (j not in dead):cnt[j]=0for j in range(0,num):if (j not in dead):vote2p=int(input('请%d号玩家投票'%(j+1)))-1cnt[vote2p]=cnt[vote2p]+1sameVote=0for y in range(0,num):if((cnt[y]==max(cnt)) & (y!=cnt.index(max(cnt)))):print ('不止一位玩家得到最高票数,请这些玩家重新发言')sameVote=1if (sameVote==0):dead[x]=cnt.index(max(cnt))if (dead[x]==spy):print ('卧底得到最多票数,游戏结束')spyWin=1breakprint ('%d号玩家被冤死!'%(dead[x]+1))#游戏结束if(spyWin==0):print ('只剩两名玩家,卧底胜利!')有一行代码是from spyword import spyword这里spyword是我自己定义的卧底词字典,运行时把这个文件放在python的工作目录下,就可以让python程序调用该字典了。要查看python工作目录,你需要运行python后输入

>>> import os
>>> os.getcwd()

当然你也可以更改python工作目录。

总结

python是一门简洁高效,通俗易懂的高阶动态编程语言;很多人也称之为“胶水语言”,在接到大项目时往往用python写好主体框架,然后在一些特定模块再用java/js/C++之类的语言实现特定需求。掌握python并不难,通过这篇博客讲到的三个小游戏,希望您能发现python的乐趣,快速找到python编程的窍门。


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。