首页 > 编程 > Python > 正文

python基础练习之几个简单的游戏

2020-02-16 10:40:43
字体:
来源:转载
供稿:网友

文档介绍

利用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/python3import randombot=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组词语,因为每组玩家猜的词语是不同的。

代码量不大,如下所示:

#!/usr/local/bin/python3import timenum = int(input('有多少组玩家/n'))guessWord = []correct = []#定义列表,num+10是不想让guessWord下标不合法for i in range(0,num+10):	guessWord.append(0)	correct.append(0)wordNum=10guessWord[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)	            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表