鱼C论坛

 找回密码
 立即注册
查看: 1896|回复: 4

[原创] 猜数字(多种模式)游戏分享

[复制链接]
发表于 2022-8-10 09:47:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 元豪 于 2023-4-21 10:43 编辑

闲来无事 , 编了一个猜数字游戏
上源码 :

import random
import time



print('欢迎来玩猜数字游戏 , 请选择模式 .')
time.sleep(1)
print('''1. 1~10
2. 1~50
3. 1~100
4. 1~500
5. 1~1000''')
time.sleep(1)
print('( 如果一次猜中请去买彩票 )')
while True:
    print('''
----------【请选择模式】----------''')
    x = int(input('>>'))

    if x == 1:
        z = random.randint(1,10)
        print('你有5次机会 :')
        time.sleep(1)
        for i in range(5):
            print('----------【猜】----------')
            c = int(input('>>'))
            if c == z:
                print('哇 , 厉害呀')
                time.sleep(1)
                break
            else:
                if c < z:
                    print('哥, 小了小了. ')
                    time.sleep(1)
                else:
                    print('哥, 大了大了. ')
                    time.sleep(1)
                    
    elif x == 2:
        z = random.randint(1,50)
        print('你有10次机会 :')
        time.sleep(1)
        for i in range(10):            
            print('----------【猜】----------')
            c = int(input('>>'))
            if c == z:
                print('哇 , 厉害呀')
                break
            else:
                if c < z:
                    print('哥, 小了小了. ')
                    time.sleep(1)
                else:
                    print('哥, 大了大了. ')
                    time.sleep(1)
                    
    elif x == 3:
        z = random.randint(1,100)
        print('你有15次机会 :')
        time.sleep(1)
        for i in range(15):
            print('----------【猜】----------')
            c = int(input('>>'))
            if c == z:
                print('哇 , 厉害呀')
                time.sleep(1)
                break
            else:
                if c < z:
                    print('哥, 小了小了. ')
                    time.sleep(1)
                else:
                    print('哥, 大了大了. ')
                    time.sleep(1)
                    
    elif x == 4:
        z = random.randint(1,500)
        print('你有20次机会 :')
        time.sleep(1)
        for i in range(20):
            print('----------【猜】----------')
            c = int(input('>>'))
            if c == z:
                print('哇 , 厉害呀')
                time.sleep(1)
                break
            else:
                if c < z:
                    print('哥, 小了小了. ')
                    time.sleep(1)
                else:
                    print('哥, 大了大了. ')
                    time.sleep(1)
                    
    elif x == 5:
        z = random.randint(1,1000)
        print('你有25次机会 :')
        time.sleep(1)
        for i in range(25):
            print('----------【猜】----------')
            c = int(input('>>'))
            if c == z:
                print('哇 , 厉害呀')
                time.sleep(1)
                break
            else:
                if c < z:
                    print('哥, 小了小了. ')
                    time.sleep(1)
                else:
                    print('哥, 大了大了. ')
                    time.sleep(1)

    else:
        print('请输入1~5的数字 .')
        time.sleep(1)


                               
登录/注册后可看大图

顺便问一下 , 谁知道怎样让这游戏空白时不报错呢 ?
哪位大佬能回答一下 ?


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-10 09:59:03 | 显示全部楼层
啥叫空白时不报错  啥也不输入 直接回车  ??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 11:41:15 | 显示全部楼层
本帖最后由 jackz007 于 2022-8-10 23:41 编辑

     你的代码太不精炼,试试这个:
import random

print('欢迎来玩猜数字游戏 , 请选择模式 .')
print('( 如果一次猜中请去买彩票 )')
while True:
    print('''1. 1~10
2. 1~50
3. 1~100
4. 1~500
5. 1~1000
6. 结束''')
    print('''
----------【请选择模式】----------''')
    s = input('>> ') . strip()
    if s:
        x = int(s)
        if x > 0 and x < 7:
            if x == 6:
                break
            else:
                p = ((random.randint(1,10) , 5 , '(1-10)') , (random.randint(1,50) , 10 , '(1-50)') , (random.randint(1,100) , 15 , '(1-100)') , (random.randint(1,500) , 20 , '(1-500)') , (random.randint(1,1000) , 25 , '(1-1000)'))
                k , t , m = p[x - 1][0] , p[x - 1][1] , p[x - 1][2]
                while t:
                    print('您有 %d 次机会 : ' % t)
                    print('----------【猜】----------')
                    c = int(input('%s >> ' % m))
                    if c == k:
                        print()
                        print('哇 , 厉害呀')
                        print('祝贺,您猜对了!')
                        if t == p[x - 1][1]:
                            print('强烈建议去买彩票!!!')
                        print()
                        break
                    else:
                        s = ''
                        d = c - k if c > k else k - c
                        e = '+' if c > k else '-'
                        while d:
                            s = s + e
                            d //= 10
                        print('哥, 大了大了 ' + s) if c > k else print('哥, 小了小了 ' + s)
                        t -= 1
                else:
                    print('很遗憾,次数已经用完!')
                    print('目标数字是 : %d' % k)
    else:
        break
print()
print('游戏结束')
        运行实况:
D:\[00.Exerciese.2022]\Python>python x.py
欢迎来玩猜数字游戏 , 请选择模式 .
( 如果一次猜中请去买彩票 )
1. 1~10
2. 1~50
3. 1~100
4. 1~500
5. 1~1000
6. 结束

----------【请选择模式】----------
>>5
您有 25 次机会 :
----------【猜】----------
(1-1000) >> 567
哥, 大了大了 +++
您有 24 次机会 :
----------【猜】----------
(1-1000) >> 345
哥, 小了小了 ---
您有 23 次机会 :
----------【猜】----------
(1-1000) >> 456
哥, 大了大了 ++
您有 22 次机会 :
----------【猜】----------
(1-1000) >> 412
哥, 小了小了 --
您有 21 次机会 :
----------【猜】----------
(1-1000) >> 432
哥, 小了小了 --
您有 20 次机会 :
----------【猜】----------
(1-1000) >> 452
哥, 大了大了 +
您有 19 次机会 :
----------【猜】----------
(1-1000) >> 448
哥, 大了大了 +
您有 18 次机会 :
----------【猜】----------
(1-1000) >> 445
哥, 小了小了 -
您有 17 次机会 :
----------【猜】----------
(1-1000) >> 446

哇 , 厉害呀
祝贺,您猜对了!

1. 1~10
2. 1~50
3. 1~100
4. 1~500
5. 1~1000
6. 结束

----------【请选择模式】----------
>>
        【注】:'+'、'-' 代表误差方向,其数量则代表误差级别,一、二、三分别代表误差值为一、二、三位数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-8-10 13:48:47 | 显示全部楼层
jackz007 发表于 2022-8-10 11:41
你的代码太不精炼,试试这个:

        运行实况:

谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 13:51:32 | 显示全部楼层
本帖最后由 元豪 于 2023-4-21 10:33 编辑
wp231957 发表于 2022-8-10 09:59
啥叫空白时不报错  啥也不输入 直接回车  ??

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 09:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表