python游戏最简单代码-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 '))
top=int(input('Set range top '))
rand=random.randint(bot,top)
print ('Random number in ['+str(bot)+','+str(top)+'] generated!')
num=int(input('###Guess the number### '))
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### '))
cnt=cnt+1
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('有多少组玩家 '))
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)
其实词语可以做成从独⽴的⽂件中读⼊的⽅式,这样⽅便更新和管理,下⾯就介绍⼀种⽤“字典”的⽅式来获得“谁是卧底”的卧底词。
谁是卧底
谁是卧底也是深受很多⼈喜欢的游戏,起码要三⼈以上才能玩,⼤致分为⼏个阶段:1.分配平民词语和卧底词语--->2.玩家依次发⾔--->3.根据发⾔投票认为谁是卧底--->4.得到票数最多的玩家出局--->5.出局玩家刚好是卧底则平民胜利,如果出局玩家是平民则被冤死并继续第2步,当剩下的平民只有1个时卧底胜利。
特殊情况是,出现两名或以上的玩家票数相同,则相同票数的玩家重新发⾔,然后全体针对这⼏个玩家投票。
程序设计思想:输⼊玩家数num,玩家编号为0~num-1,然后定义三个含有num个元素的列表:词语列表,计算玩家票数的列表,死亡玩家的列表。列表下标从0~num-1,随机产⽣该区间的数x,代表x号玩家是卧底,然后分配卧底词和平民词。注意,提⽰⼏号玩家是卧底或冤死的时候,要将打印信息时候的下标加1,⽐如下标数0代表的其实是1号玩家。在⽣活中,没多少⼈会习惯说⾃⼰是“第0个⼈”这种说法吧,除了程序员--;
在每轮游戏中,依次进⾏发⾔,投票,票数最多的玩家出局(出现相同票数则重新发⾔),出局玩家归⼊死亡玩家列表。然后开始下⼀轮。
android手机搭建本地服务器那么,如果有num位玩家,则最多有多少轮游戏结束?因为进⾏到只有2位玩家游戏就结束了,所以答案是num-2轮!也就是说上述流程要循环num-2次。
编程思想定了就可以敲代码了,程序代码如下:
#!/usr/local/bin/python3
import random
from spyword import spyword
num=int(input('请输⼊玩家数(⾄少为3) '))
#卧底玩家
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
python基础代码实例
#游戏开始
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):null啥意思啊
if (j not in dead):
cnt[j]=0
portableappsfor 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 ('只剩两名玩家,卧底胜利!')
有⼀⾏代码是
from spyword import spyword
这⾥spyword是我⾃⼰定义的卧底词字典,运⾏时把这个⽂件放在python的⼯作⽬录下,就可以让python程序调⽤该字典了。要查看python⼯作⽬录,你需要运⾏python后输⼊
>>>importos
>>&wd()
当然你也可以更改python⼯作⽬录。
python是⼀门简洁⾼效,通俗易懂的⾼阶动态编程语⾔;很多⼈也称之为“胶⽔语⾔”,在接到⼤项⽬时往往⽤python写好主体框架,然后在⼀些特定模块再⽤java/js/C++之类的语⾔实现特定需求。掌握python并不难,通过这篇博客讲到的三个⼩游戏,希望您能发现python的乐趣,快速到python编程的窍门。
思莱德手表价格表总结
以上就是本⽂关于python基础练习之⼏个简单的游戏的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以继续参阅本站:Python3中的列表,元组,字典,字符串相关知识⼩结、Python爬⾍实例爬取⽹站搞笑段⼦、python实现⼈脸识别代码等,有什么问题可以随时留⾔,⼩编会及时回复⼤家的。感谢朋友们对本站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论