|
发表于 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. 结束
- ----------【请选择模式】----------
- >>
复制代码
【注】:'+'、'-' 代表误差方向,其数量则代表误差级别,一、二、三分别代表误差值为一、二、三位数。 |
|