元豪 发表于 2022-8-10 09:47:33

猜数字(多种模式)游戏分享

本帖最后由 元豪 于 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)

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

wp231957 发表于 2022-8-10 09:59:03

啥叫空白时不报错啥也不输入 直接回车??

jackz007 发表于 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 , p , p
                while t:
                  print('您有 %d 次机会 : ' % t)
                  print('----------【猜】----------')
                  c = int(input('%s >> ' % m))
                  if c == k:
                        print()
                        print('哇 , 厉害呀')
                        print('祝贺,您猜对了!')
                        if t == p:
                            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:\\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. 结束

----------【请选择模式】----------
>>
      【注】:'+'、'-' 代表误差方向,其数量则代表误差级别,一、二、三分别代表误差值为一、二、三位数。

元豪 发表于 2022-8-10 13:48:47

jackz007 发表于 2022-8-10 11:41
你的代码太不精炼,试试这个:

      运行实况:


谢谢啊{:5_108:}

元豪 发表于 2022-8-10 13:51:32

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

wp231957 发表于 2022-8-10 09:59
啥叫空白时不报错啥也不输入 直接回车??
页: [1]
查看完整版本: 猜数字(多种模式)游戏分享