至此,我们的 Python零基础入门篇 的系列专栏到今天基本上算是结束了。今天没有任何的知识点,只是运用我们之前学习过的知识做两个小游戏的案例。第一个是模拟猜拳的小游戏,第二个就是猜数字的游戏。
猜拳小游戏
需求:
运用至今所学的 Python 知识编写脚本,实现一个人与计算机玩猜拳的石头剪刀布的小游戏。
这里我们先思考一下,如果将石头、剪刀、布分别用数字0、1、2表示,那么如何判定谁胜谁负呢?
user | robot | 结果 |
---|---|---|
0(石头) | 0(石头) | 平局 |
0(石头) | 1(剪刀) | user 获胜 |
0(石头) | 2(布) | robot 获胜 |
1(剪刀) | 0(石头) | robot 获胜 |
1(剪刀) | 1(剪刀) | 平局 |
1(剪刀) | 2(布) | user 获胜 |
2(布) | 0(石头) | user 获胜 |
2(布) | 1(剪刀) | robot 获胜 |
2(布) | 2(布) | 平局 |
不难发现游戏的规律如下:
- 如果user和computer相等就是平局
- 如果用 (user+1) 除以 3 得到的余数与 robot 相等,就是user(人)获得胜利
- 其余情况都是 robot 获胜
案例脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# coding:utf-8 import random # TODO:只针对输入的参数做了 int 的排除,未针对输入的 非 int 类型做校验,可通过 isNum 函数做校验,或者进行 异常捕获。 data = { 0 : '石头' , 1 : '剪刀' , 2 : '布' } while ( True ): robot = random.randint( 0 , 2 ) print ( '********猜拳小游戏即将开始,请准备!********' ) user = int ( input ( '请输入[0:石头;1:剪刀;2:布;9:退出游戏]:' )) if user not in ( 9 , 0 , 1 , 2 ): print ( '--------输入参数不合法,请重新输入!--------' ) print ( ' ' ) continue elif user = = 9 : print ( '**********游戏结束,下次再来玩哦**********' ) break elif not 0 < = user < = 2 : continue if user = = robot: print ( '\'你\'出的是{}, \'ROBOT\' 出的是{}, 结果为:\'平局\'' . format (data[user], data[robot])) print ( ' ' ) elif (user + 1 ) % 3 = = robot: print ( '\'你\'出的是{}, \'ROBOT\' 出的是{}; 结果为:\'你赢了!\'' . format (data[user], data[robot])) print ( ' ' ) else : print ( '\'你\'出的是{}, \'ROBOT\' 出的是{}; 结果为:\'ROBOT赢了!\'' . format (data[user], data[robot])) print ( ' ' ) |
PS:这里的传入参数校验并不完善,大家可以尝试自己动手完善一下。
数字猜猜猜小游戏
需求:
根据现实生活中的猜数字游戏的游戏规则,运用Python语言模拟实现猜数字游戏的的基本功能.
1、设定可猜测的次数,并根据提示进行数字区间的输入猜测的数字
2、将输入的数字与随机生成的数字进行比对,同时次数减一。若次数用完后,仍未猜对,则游戏结束。
案例脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# coding:utf-8 import random # TODO:这并不是我想要的效果,但是目前也只能写成这样了,有时间再晚上吧。 robot = random.randint( 1 , 10 ) count = 5 print ( "*************游戏开始***************" ) print ( "猜数字游戏,数字在1到10之间,你有{0}次机会" . format (count)) print ( ' ' ) while count > 0 : num = input ( "请输入您要猜测的数字:" ) if num.isdigit(): num = int (num) if num = = robot: print ( "对了" ) print ( ' ' ) break elif num < robot: # print("您输入的参数小了", '剩余机会次数:%s' % int(count-1)) print ( "您输入的参数小了" , '剩余机会次数:{0}' . format (count - 1 )) print ( ' ' ) else : print ( "您输入的参数大了" , '剩余机会次数:{0}' . format (count - 1 )) print ( ' ' ) count - = 1 if count = = 0 : print ( "您的机会已经用完" ) print ( ' ' ) break # print("你还剩余{0}次机会".format(count)) # print(' ') else : print ( "你输入的不是一个数字,请重新输入" ) print ( ' ' ) print ( "**********游戏结束************" ) |
以上就是Python实现猜拳与猜数字游戏的方法详解的详细内容,更多关于Python 猜拳猜数字的资料请关注服务器之家其它相关文章!
原文链接:https://blog.csdn.net/weixin_42250835/article/details/123962758