python代码示例实现游戏“谁是卧底”代码详解

Python实战课程:几个简单的Python游戏(练习)_达内上海Python培训
Python实战课程:几个简单的Python游戏(练习)
时间: 14:21
在学习了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'))
while (num!=rand):
print('*_* Lower than the answer')
print('T_T Higher than the answer')
num=int(input('###Guess the number###\n'))
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] =
['狗急跳墙','捧腹大笑','目不转睛','愁眉苦脸','左顾右盼','宫保鸡丁','升国旗','暗恋','臭袜子','趁火打劫']
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 ('时间到!游戏结束')
if (flag=='y'):
correct[i]=correct[i]+1
str_temp=('第%d组答对数目:%d') % (i+1,correct[i])
print (str_temp)
其实词语可以做成从独立的文件中读入的方式,这样方便更新和管理,下面就介绍一种用“字典”的方式来获得“谁是卧底”的卧底词。
谁是卧底也是深受很多人喜欢的游戏,起码要三人以上才能玩,大致分为几个阶段: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()
#给三个列表赋值
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])
word[i]=str(list_rand[0])
print (word[i])
sameVote=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):
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 ('卧底得到最多票数,游戏结束')
print ('%d号玩家被冤死!'%(dead[x]+1))
if(spyWin==0):
print ('只剩两名玩家,卧底胜利!')
python是一门简洁高效,通俗易懂的高阶动态编程语言;很多人也称之为“胶水语言”,在接到大项目时往往用python写好主体框架,然后在一些特定模块再用java/js/C++之类的语言实现特定需求。
上海Python培训总结
以上就是上海Python培训小编关于python实战练习的简单游戏全部内容,希望对大家有所帮助。小编希望通过这篇文章让大家明白:掌握python并不难,通过讲到的三个小游戏,希望您能发现python的乐趣,快速找到python编程的窍门。
Python除了在人工智能方面被炒得火热,私下还是写爬虫的利器。今天上海Python培训写一个爬虫来简单爬一下一个段子网站页面。感兴趣的可以一起学哦。
认识了很多数据库,即使python行业老司机也未必掌握了所有库,上海Python培训就遇到了一个不懂得问题:什么是pymysql?
为大家介绍Python3银行账户登录系统,上海Python培训认为该节内容适合初学者学习,感兴趣的小伙伴们可以参考一下。
2018年主流的编程语言有python、Java、c/c++,如果要在上海IT培训学校学习一门编程语言,那么哪种比较好呢?一起跟上海python培训小编来对比下薪资待遇,为你的就业找准方向。
Copyright (C)
Tedu.cn All Rights Reserved 京ICP备号-56 达内时代科技集团有限公司 版权所有
选择城市和中心
达内北京亦庄大学生实训基地
达内北京网络营销中心
达内北京会计中心
免费学习5天VIP课程价格从低到高
价格从高到低
相关推荐词
不能错过的游戏主机!
谁也没想到,科技改变了我们的生活,曾经贫穷的小山村发生了如此巨变。再过几十年,当我们年华老去时,我们的生活又会发生怎样翻天覆地的变化啊!我们相信,随着科学技术的高速发展,我们的生活一定会更加幸福美好!
相关推荐词
英伟达开放VR Funhouse源代码助VR开发者模组
  英伟达宣布开源《VR Funhouse》源代码及模组,让用户创造属于自己的更多体验。《VR Funhouse》被称作是“世界上最先进的VR(虚拟现实)游戏”,通过使用其GameWorks、PhysX以及VRWorks技术,用户可以创造更多自己的体验。应用中有新型的编辑器和模组,用户可以使用迄今为止的所有这些。
相关推荐词
玩家成功修复《暗黑破坏神》经典初代
作为暴雪旗下的经典ARPG作品,《暗黑破坏神》从问世到现在已经有20多个年头了,国内玩家亲切地称它为“大菠萝”,其带给玩家的快感,至今仍让人欲罢不能……
休闲用它们来打发时间,准没错
游戏操控器并不止步于手柄,这么多年以来,任天堂、世嘉、索尼、微软和其他游戏公司不断推陈出新,其外设产品填满了玩家的储藏柜。这些游戏设备能帮助玩家更好的体验游戏。游戏机游戏机是一种主要用于娱乐,使用只向
相关推荐词
Doom竟如何刺激DIY游戏发展的?!
2016年Doom系列的新品发布证明了这个有着24年历史的游戏是流行文化的中流砥柱。这款游戏不单纯是杀怪、升级那么简单,它还刺激着玩家在游戏中发散思维进行DIY设计。自从1993年,这款游戏在PC端发
[{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_1LS0-sLr.html","pcUrl":"https://www.tmall.com/mlist/cp_1LS0-sLr.html","word":"源代码"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_zqLQxdS0tPrC6w==.html","pcUrl":"https://www.tmall.com/mlist/cp_zqLQxdS0tPrC6w==.html","word":"微信源代码"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_YyAg1LS0-sLr.html","pcUrl":"https://www.tmall.com/mlist/cp_YyAg1LS0-sLr.html","word":"c
源代码"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_1LS0-sLrv6q3og==.html","pcUrl":"https://www.tmall.com/mlist/cp_1LS0-sLrv6q3og==.html","word":"源代码开发"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_1LS0-sLrcGhw.html","pcUrl":"https://www.tmall.com/mlist/cp_1LS0-sLrcGhw.html","word":"源代码php"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_zfjVvtS0tPrC6w==.html","pcUrl":"https://www.tmall.com/mlist/cp_zfjVvtS0tPrC6w==.html","word":"网站源代码"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_bmV0INS0tPrC6w==.html","pcUrl":"https://www.tmall.com/mlist/cp_bmV0INS0tPrC6w==.html","word":"net 源代码"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_1LS0-sLrv-I=.html","pcUrl":"https://www.tmall.com/mlist/cp_1LS0-sLrv-I=.html","word":"源代码库"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_amF2YdS0tPrC6w==.html","pcUrl":"https://www.tmall.com/mlist/cp_amF2YdS0tPrC6w==.html","word":"java源代码"}]python实现 谁是卧底游戏_百度知道
python实现 谁是卧底游戏
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:307
获赞数:397
参与团队:
#!/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&('只剩两名玩家,卧底胜利!')spyword是自定义的卧底词字典,运行时把这个文件放在python的工作目录下,就可以让python程序调用该字典了。
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。摘要: 在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性。一些可以说是非常有用,但却没有充分利用。考虑到这一点,我编辑了一些你应该了解的Python功能特色。 带任意数量参数的函数 你可能已经知道了Python允许你定义可选参数。
在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性。一些可以说是非常有用,但却没有充分利用。考虑到这一点,我编辑了一些你应该了解的Python功能特色。
带任意数量参数的函数
你可能已经知道了Python允许你定义可选参数。但还有一个方法,可以定义函数任意数量的参数。
首先,看下面是一个只定义可选参数的例子
现在,让我们看看怎么定义一个可以接受任意参数的函数。我们利用元组来实现。
使用Glob()查找文件
大多Python函数有着长且具有描述性的名字。但是命名为glob()的函数你可能不知道它是干什么的除非你从别处已经熟悉它了。
它像是一个更强大版本的listdir()函数。它可以让你通过使用模式匹配来搜索文件。
你可以像下面这样查找多个文件类型:
如果你想得到每个文件的绝对路径,你可以在返回值上调用realpath()函数:
下面的例子使用inspect模块。该模块用于调试目的时是非常有用的,它的功能远比这里描述的要多。
这篇文章不会覆盖这个模块的每个细节,但会展示给你一些用例。
生成唯一ID
在有些情况下你需要生成一个唯一的字符串。我看到很多人使用md5()函数来达到此目的,但它确实不是以此为目的。
其实有一个名为uuid()的Python函数是用于这个目的的。
你可能会注意到,即使字符串是唯一的,但它们后边的几个字符看起来很相似。这是因为生成的字符串与电脑的MAC地址是相联系的。
为了减少重复的情况,你可以使用这两个函数。
你曾经需要将一个复杂的变量存储在数据库或文本文件中吧?你不需要想一个奇特的方法将数组或对象格转化为式化字符串,因为Python已经提供了此功能。
这是一个原生的Python序列化方法。然而近几年来JSON变得流行起来,Python添加了对它的支持。现在你可以使用JSON来编解码。
这样更紧凑,而且最重要的是这样与JavaScript和许多其他语言兼容。然而对于复杂的对象,其中的一些信息可能丢失。
当谈起压缩时我们通常想到文件,比如ZIP结构。在Python中可以压缩长字符,不涉及任何档案文件。
注册Shutdown函数
有可模块叫atexit,它可以让你在脚本运行完后立马执行一些代码。想要一起学习交流想要共同进步的可以加python学习q-u-n-227-435-450 ,里有许多学习视频资料等待着大家
假如你想在脚本执行结束时测量一些基准数据,比如运行了多长时间:
打眼看来很简单。只需要将代码添加到脚本的最底层,它将在脚本结束前运行。但如果脚本中有一个致命错误或者脚本被用户终止,它可能就不运行了。
当你使用atexit.register()时,你的代码都将执行,不论脚本因为什么原因停止运行。
喜欢这篇文章的话,记得转发+评论哦!同时也欢迎大家和小编一起交流Python知识哦!
什么是python?
Python之%s%d%f
python官网
Python 之父谈 Python
Python 是怎么火起来的?
从入门到进阶,这份完整的Python学习书籍单供你收藏
python中的&&及||
Python书籍推荐
Python 中的&&和!= 区别
没有更多推荐了,python基础练习之几个简单的游戏
转载 &更新时间:日 16:44:57 & 作者:iKeepGoing
这篇文章主要介绍了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,猜中则提示猜次数
代码很少,如下所示:
#!/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'))
while (num!=rand):
if (num&rand):
print('*_* Lower than the answer')
print('T_T Higher than the answer')
num=int(input('###Guess the number###\n'))
print('^_^ You get the answer with [%d] times'%cnt)
第一行是要让linux系统知道这是python3程序,random是产生随机数的库函数,要注意的是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] = ['狗急跳墙','捧腹大笑','目不转睛','愁眉苦脸','左顾右盼','宫保鸡丁','升国旗','暗恋','臭袜子','趁火打劫']
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 ('时间到!游戏结束')
if (flag=='y'):
correct[i]=correct[i]+1
str_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/bin/python3
import random
from spyword import spyword
num=int(input('请输入玩家数(至少为3)\n'))
spy=random.randint(0,num-1)
#随机产生词语 定义词语列表 计算玩家票数的列表 统计死亡玩家的列表
list_rand=spyword.popitem()
#给三个列表赋值
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])
word[i]=str(list_rand[0])
print (word[i])
sameVote=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):
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 ('卧底得到最多票数,游戏结束')
print ('%d号玩家被冤死!'%(dead[x]+1))
if(spyWin==0):
print ('只剩两名玩家,卧底胜利!')
有一行代码是
from spyword import spyword
这里spyword是我自己定义的卧底词字典,运行时把这个文件放在python的工作目录下,就可以让python程序调用该字典了。要查看python工作目录,你需要运行python后输入
&&&importos
&&&os.getcwd()
当然你也可以更改python工作目录。
python是一门简洁高效,通俗易懂的高阶动态编程语言;很多人也称之为“胶水语言”,在接到大项目时往往用python写好主体框架,然后在一些特定模块再用java/js/C++之类的语言实现特定需求。掌握python并不难,通过这篇博客讲到的三个小游戏,希望您能发现python的乐趣,快速找到python编程的窍门。
以上就是本文关于python基础练习之几个简单的游戏的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:、、等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 svmpython代码实现 的文章

 

随机推荐