前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 游戏(数字推理游戏Bage

python 游戏(数字推理游戏Bage

作者头像
py3study
发布2020-01-16 17:08:54
1.9K0
发布2020-01-16 17:08:54
举报
文章被收录于专栏:python3python3

1.游戏思路和流程图

实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确)

游戏流程图

2. 使用模块和游戏提示

代码语言:javascript
复制
import random
def game_info():
    print('欢迎来到数字推理游戏')
    print('系统会随机抽取三位不相同的数字')
    print('根据系统提示来推理出这3位数字')

3. 双选验证

代码语言:javascript
复制
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. 用户输入限制

代码语言:javascript
复制
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. 随机抽取数字函数

代码语言:javascript
复制
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. 数字判断提示

代码语言:javascript
复制
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. 游戏判断核心

代码语言:javascript
复制
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. 游戏外壳

代码语言:javascript
复制
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. 运行游戏

代码语言:javascript
复制
game_shell()

python学习途径

本游戏参考书本 <<Python游戏编程快速上手>>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.游戏思路和流程图
  • 2. 使用模块和游戏提示
  • 3. 双选验证
  • 4. 用户输入限制
  • 5. 随机抽取数字函数
  • 6. 数字判断提示
  • 7. 游戏判断核心
  • 8. 游戏外壳
  • 9. 运行游戏
    • python学习途径
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档