CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

利用python制作几个简单入门的游戏,看完这一篇就够了-源码交易平台丞旭猿

文档介绍

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

环境参数

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

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

设计实现

猜数字

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

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

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

代码很少,如下所示:

import random想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载!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=1while(num!=rand):if(num<rand):print(*_* Lower than the answer)else:print(T_T Higher than the answer)
    num=int(input(Guess the number\n))
    cnt=cnt+1print(^_^ You get the answer with [%d] times%cnt)

第一行是要让linux系统知道这是python3程序,random是产生随机数的库函数,要注意的是python对格式要求很严格,因为它不用通过{}而是通过缩进量判断流程。

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

猜词语

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

某一组玩家猜词语的算法设计为:

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

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

代码量不大,如下所示:.

importtime
num =int(input(有多少组玩家\n))
guessWord = []
correct = []
定义列表,num+10是不想让guessWord下标不合法fori inrange(0,num+10):
    guessWord.append(0)
    correct.append(0)
wordNum=10guessWord[0] = [打情骂俏,海绵宝宝,娇媚,金鸡独立,狼吞虎咽,睡眼朦胧,鹤立鸡群,手舞足蹈,卓别林,穿越火线]
guessWord[1] = [眉飞色舞,英雄联盟,扭秧歌,偷看美女,大摇大摆,回眸一笑,市场营销,大眼瞪小眼,自恋,处女座]
guessWord[2] = [狗急跳墙,捧腹大笑,目不转睛,愁眉苦脸,左顾右盼,宫保鸡丁,升国旗,暗恋,臭袜子,趁火打劫]
 
flag=nfori inrange(0,num):
    start = time.time()fork inrange(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(时间到!游戏结束)breakif(flag==y):
            correct[i]=correct[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次。

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

importrandomfromspyword import spywordnum=int(input(请输入玩家数(至少为3)\n))卧底玩家spy=random.randint(0,num-1)随机产生词语 定义词语列表 计算玩家票数的列表 统计死亡玩家的列表list_rand=spyword.popitem()word=[]cnt=[]dead=[]给三个列表赋值fori in range(0,num):word.append(a)cnt.append(0)dead.append(num+2)给玩家词语 其中print是调试用的,sanmeVote是出现相同票数的标志,spyWin是卧底胜利的判决条件fori 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游戏开始forx in range(0,num-1):fork in range(0,num):if((k not in dead) & (sameVote==0)):print(%d号玩家发言时间%(k+1))print(发言环节结束)将各位玩家的票数置0forj in range(0,num):if(j not in dead):cnt[j]=0forj in range(0,num):if(j not in dead):vote2p=int(input(请%d号玩家投票%(j+1)))-1cnt[vote2p]=cnt[vote2p]+1sameVote=0fory 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(只剩两名玩家,卧底胜利!)

有一行代码是

fromspywordimportspyword

这里spyword是我自己定义的卧底词字典,运行时把这个文件放在python的工作目录下,就可以让python程序调用该字典了。要查看python工作目录,你需要运行python后输入

>>>importos>>>os.getcwd()

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

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

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容