集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Python >

几个简单的Python小游戏代码分享

发布者: 成都python爬虫培训     浏览次数:     发布时间:2018-07-11 09:59:17

:贴出来的python程序代码在windows中也兼容,只不过运行方式不是命令行,而是要通过python软件。python软件可以上官网下载安装点击打开链接,在学习的时候,可以直接在python软件上面输入...

在学习了Python的基础知识后,我们来进行项目实战,几个简单的Python游戏测试一下你学会了多少。-成都Python培训


成都python爬虫培训


练习题目


利用python写“猜数字”,“猜词语”,“谁是卧底”这三个游戏,从而快速掌握python编程的入门知识,包括python语法/列表/元组/字典/流程控制/库函数等。


环境参数


需要linux平台,python3.4。上海Python培训:需要在linux中把python3.4编译一下,这样编写python程序时保存为.py格式的文件并添加执行权限再终端运行即可(原理跟shell脚本相同),非常方便。


ps:贴出来的python程序代码在windows中也兼容,只不过运行方式不是命令行,而是要通过python软件。python软件可以上官网下载安装点击打开链接,在学习的时候,可以直接在python软件上面输入python语句即可打印结果,也就是说python无需编译即可运行,很多人也称之为“脚本”语言。


设计实现


猜数字


很多人在聚餐时都玩过猜数字游戏,由某人随机出一个指定范围内的数,然后其他人一个一个猜,猜的过程中区间不断缩小,直到猜中为止。


成都Python培训:这里的猜数字游戏就是用程序来代替那个出数字的人,程序算法设计为:


1.输入数字区间--->2.系统产生区间内的随机数--->3.玩家输入自己猜的数字--->4.比较玩家猜的与答案的高低并提示--->5.未猜中则回到3,猜中则提示猜次数


代码很少,如下所示:


#!/usr/local/bin/python3


import random


bot=int(input('Set range bottom\n'))


top=int(input('Set range top\n'))


rand=random.randint(bot,top)


print ('Random number in ['+str(bot)+','+str(top)+'] generated!')


num=int(input('###Guess the number###\n'))


cnt=1


while (num!=rand):


if (num


print('*_* Lower than the answer')


else:


print('T_T Higher than the answer')


num=int(input('###Guess the number###\n'))


cnt=cnt+1


print('^_^ You get the answer with [%d] times'%cnt)


通过这个可以掌握基本的语法和编写规则了,下面再试试有点难度的,用到词组和循环控制等知识。


猜词语


电视节目中的”你来比划我来猜“大家应该都看过,而且很多人也玩过,规则就是一个人看词语比划相应动作和说一些提示,另一个人看不到词语要通过比划的动作猜出来,猜的过程中主持人判断是否符合规则。


上海Python培训:某一组玩家猜词语的算法设计为:


1.开始计时--->2.猜词语--->3.答对则正确数加1并回到2,要跳过或犯规了则直接回到2,超时了直接跳到3--->3.循环10次后或时间结束后统计答对的题数


有num组玩家就进行以上流程的num次循环,当然也要准备x组词语,因为每组玩家猜的词语是不同的。


代码量不大,如下所示:


#!/usr/local/bin/python3


import time


num = int(input('有多少组玩家\n'))


guessWord = []


correct = []


#定义列表,num+10是不想让guessWord下标不合法


for i in range(0,num+10):


guessWord.append(0)


correct.append(0)


wordNum=10


guessWord[0] = ['打情骂俏','海绵宝宝','娇媚','金鸡独立','狼吞虎咽','睡眼朦胧','鹤立鸡群','手舞足蹈','卓别林','穿越火线']


guessWord[1] = ['眉飞色舞','英雄联盟','扭秧歌','偷看美女','大摇大摆','回眸一笑','市场营销','大眼瞪小眼','自恋','处女座']


guessWord[2] = ['狗急跳墙','捧腹大笑','目不转睛','愁眉苦脸','左顾右盼','宫保鸡丁','升国旗','暗恋','臭袜子','趁火打劫']


flag='n'


for i in range(0,num):


start = time.time()


for k in range(0,wordNum):


#显示词语


print (('%d.%s')%(k+1,guessWord[i][k]))


flag = input('请答题,答对请输入y,跳过请输入任意键')


end = time.time()


sec = end-start


#统计用时


if (110<=sec<=120):


print ('还有10秒钟')


if (sec>=120):


print ('时间到!游戏结束')


break


if (flag=='y'):


correct[i]=correct[i]+1


continue


else:


continue


str_temp=('第%d组答对数目:%d') % (i+1,correct[i])


print (str_temp)


其实词语可以做成从独立的文件中读入的方式,这样方便更新和管理,下面就介绍一种用“字典”的方式来获得“谁是卧底”的卧底词。


Python游戏


谁是卧底


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


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


上海Python培训这里说说程序设计思想:输入玩家数num,玩家编号为0~num-1,然后定义三个含有num个元素的列表:词语列表,计算玩家票数的列表,死亡玩家的列表。列表下标从0~num-1,随机产生该区间的数x,代表x号玩家是卧底,然后分配卧底词和平民词。注意,提示几号玩家是卧底或冤死的时候,要将打印信息时候的下标加1,比如下标数0代表的其实是1号玩家。在生活中,没多少人会习惯说自己是“第0个人”这种说法吧,除了程序员--;在每轮游戏中,依次进行发言,投票,票数最多的玩家出局(出现相同票数则重新发言),出局玩家归入死亡玩家列表。然后开始下一轮。


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


程序代码如下:


#!/usr/local/bin/python3


import random


from spyword import spyword


num=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=0


spyWin=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 ('发言环节结束')


#将各位玩家的票数置0


for j in range(0,num):


if (j not in dead):


cnt[j]=0


for j in range(0,num):


if (j not in dead):


vote2p=int(input('请%d号玩家投票'%(j+1)))-1


cnt[vote2p]=cnt[vote2p]+1


sameVote=0


for y in range(0,num):


if((cnt[y]==max(cnt)) & (y!=cnt.index(max(cnt)))):


print ('不止一位玩家得到最高票数,请这些玩家重新发言')


sameVote=1


if (sameVote==0):


dead[x]=cnt.index(max(cnt))


if (dead[x]==spy):


print ('卧底得到最多票数,游戏结束')


spyWin=1


break


print ('%d号玩家被冤死!'%(dead[x]+1))


#游戏结束


if(spyWin==0):


print ('只剩两名玩家,卧底胜利!')


python是一门简洁高效,通俗易懂的高阶动态编程语言;很多人也称之为“胶水语言”,在接到大项目时往往用python写好主体框架,然后在一些特定模块再用java/js/C++之类的语言实现特定需求。


成都python爬虫培训总结


以上就是成都python爬虫培训小编关于python实战练习的简单游戏全部内容,希望对大家有所帮助。小编希望通过这篇文章让大家明白:掌握python并不难,通过讲到的三个小游戏,希望您能发现python的乐趣,快速找到python编程的窍门。
(责任编辑:杨老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼段35号明宇金融广场19楼1903室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街紫东段35号明宇广场2306

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市成华区建设路10号万科钻石广场B座5楼

联系电话:15023458194

公交路线:建设路中(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56