猜数字(多种模式)游戏分享
本帖最后由 元豪 于 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
顺便问一下 , 谁知道怎样让这游戏空白时不报错呢 ?
哪位大佬能回答一下 ?
啥叫空白时不报错啥也不输入 直接回车?? 本帖最后由 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. 结束
----------【请选择模式】----------
>>
【注】:'+'、'-' 代表误差方向,其数量则代表误差级别,一、二、三分别代表误差值为一、二、三位数。 jackz007 发表于 2022-8-10 11:41
你的代码太不精炼,试试这个:
运行实况:
谢谢啊{:5_108:} 本帖最后由 元豪 于 2023-4-21 10:33 编辑
wp231957 发表于 2022-8-10 09:59
啥叫空白时不报错啥也不输入 直接回车??
对
页:
[1]