python 游戏(数字推理游戏Bagels)
程序员文章站
2022-07-07 08:26:09
1.游戏思路和流程图 实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确) 游戏流程图 2. 使用模块和游戏提示 3. 双选验证 4. 用户输入限制 5. 随机抽取数字函数 6. 数字判断提示 7. 游戏判断核心 8. 游戏外壳 ......
1.游戏思路和流程图
实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确)
游戏流程图
2. 使用模块和游戏提示
import random
def game_info():
print('欢迎来到数字推理游戏')
print('系统会随机抽取三位不相同的数字')
print('根据系统提示来推理出这3位数字')
3. 双选验证
def double_choice(a,b,hint):
'''双选择验证函数
:param a 第一个选项值
:param b 第二个选项值
:param hint 选项信息
:return 返回输入值'''
choice=''
while choice.lower() !=a and choice.lower() !=b:
print(hint)
choice=input()
return choice
4. 用户输入限制
def number_limited(number):
'''用户输入限制
:param number 用户输入数字
:return 返回用户输入数字'''
#用户限制思路 检查必须是整数,限制3位数字,检查数字不能重复
while true:
if not number.isdigit():
print('请输入整数数字')
elif len(number)!=3:
print('请输入三位数字')
elif len(set(list(number)))!=3:
print('三个数字不能重复')
else:
break
number=input()
return number
5. 随机抽取数字函数
def random_number_list(count):
'''随机抽取数字
:param count 抽取数字的位数 最大不能超过10
:return 返回随机抽取的3位不重复数字'''
number_list=[]
random_list=[i for i in range(10)]
random.shuffle(random_list)#打乱顺序
for i in range(count):
random_number=random.choice(random_list)
random_list.remove(random_number)
number_list.append(str(random_number))
return number_list
6. 数字判断提示
def judge_prompt(user_list,number_list):
'''数字判断提示
:param user_list 用户数字列表
:param number_list 随机数字列表
:return true 猜对了 false猜错了'''
#判断思路,先判断都相等,有几个数字是数字和位置对的,没有的话查找数字对的,在没有的话就是都猜错了
pico=0 #数字对了位置不对
fermi=0 #位置数字对了
if user_list==number_list:
return true
for i in range(len(user_list)):
if user_list[i]==number_list[i]:
fermi+=1
elif user_list[i] in number_list:
pico+=1
if fermi:
print('猜中了数字和位置(%d个)'%fermi)
if pico:
print('猜中了数字没有猜中位置(%d个)' % pico)
if not fermi and not pico:
print('没有一个数字和位置是对的')
return false
7. 游戏判断核心
def game_start():
'''游戏判断核心'''
number_list = random_number_list(count=3)
count=9
while count:
print('猜猜看(%d次机会)'%count)
user_number=number_limited(input())
if judge_prompt(list(user_number),number_list):
break
count-=1
if count==0:
print('你输了,这个数字是%s'%''.join(number_list))
else:
print('玩家获胜,这个数字是%s'%''.join(number_list))
8. 游戏外壳
def game_shell():
'''外壳程序'''
game_info() # 游戏开始提示
game_start()
while true:
message='你想在玩一次吗(y or n)'
again_flag=double_choice('y','n',message)
if again_flag=='n':
break
game_start()
9. 运行游戏
game_shell()
python学习途径
本游戏参考书本 <<python游戏编程快速上手>>
友情推荐: 猿人学python【】 由一群工作十余年的老程序员结合实际工作经验所写的python教程。
上一篇: C++基础——运算符重载友元函数示例
下一篇: php 中的4种标记风格介绍