鱼C论坛

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

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

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

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

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

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

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


  1. import random
  2. import time



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

  16.     if x == 1:
  17.         z = random.randint(1,10)
  18.         print('你有5次机会 :')
  19.         time.sleep(1)
  20.         for i in range(5):
  21.             print('----------【猜】----------')
  22.             c = int(input('>>'))
  23.             if c == z:
  24.                 print('哇 , 厉害呀')
  25.                 time.sleep(1)
  26.                 break
  27.             else:
  28.                 if c < z:
  29.                     print('哥, 小了小了. ')
  30.                     time.sleep(1)
  31.                 else:
  32.                     print('哥, 大了大了. ')
  33.                     time.sleep(1)
  34.                     
  35.     elif x == 2:
  36.         z = random.randint(1,50)
  37.         print('你有10次机会 :')
  38.         time.sleep(1)
  39.         for i in range(10):            
  40.             print('----------【猜】----------')
  41.             c = int(input('>>'))
  42.             if c == z:
  43.                 print('哇 , 厉害呀')
  44.                 break
  45.             else:
  46.                 if c < z:
  47.                     print('哥, 小了小了. ')
  48.                     time.sleep(1)
  49.                 else:
  50.                     print('哥, 大了大了. ')
  51.                     time.sleep(1)
  52.                     
  53.     elif x == 3:
  54.         z = random.randint(1,100)
  55.         print('你有15次机会 :')
  56.         time.sleep(1)
  57.         for i in range(15):
  58.             print('----------【猜】----------')
  59.             c = int(input('>>'))
  60.             if c == z:
  61.                 print('哇 , 厉害呀')
  62.                 time.sleep(1)
  63.                 break
  64.             else:
  65.                 if c < z:
  66.                     print('哥, 小了小了. ')
  67.                     time.sleep(1)
  68.                 else:
  69.                     print('哥, 大了大了. ')
  70.                     time.sleep(1)
  71.                     
  72.     elif x == 4:
  73.         z = random.randint(1,500)
  74.         print('你有20次机会 :')
  75.         time.sleep(1)
  76.         for i in range(20):
  77.             print('----------【猜】----------')
  78.             c = int(input('>>'))
  79.             if c == z:
  80.                 print('哇 , 厉害呀')
  81.                 time.sleep(1)
  82.                 break
  83.             else:
  84.                 if c < z:
  85.                     print('哥, 小了小了. ')
  86.                     time.sleep(1)
  87.                 else:
  88.                     print('哥, 大了大了. ')
  89.                     time.sleep(1)
  90.                     
  91.     elif x == 5:
  92.         z = random.randint(1,1000)
  93.         print('你有25次机会 :')
  94.         time.sleep(1)
  95.         for i in range(25):
  96.             print('----------【猜】----------')
  97.             c = int(input('>>'))
  98.             if c == z:
  99.                 print('哇 , 厉害呀')
  100.                 time.sleep(1)
  101.                 break
  102.             else:
  103.                 if c < z:
  104.                     print('哥, 小了小了. ')
  105.                     time.sleep(1)
  106.                 else:
  107.                     print('哥, 大了大了. ')
  108.                     time.sleep(1)

  109.     else:
  110.         print('请输入1~5的数字 .')
  111.         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 编辑

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

  2. print('欢迎来玩猜数字游戏 , 请选择模式 .')
  3. print('( 如果一次猜中请去买彩票 )')
  4. while True:
  5.     print('''1. 1~10
  6. 2. 1~50
  7. 3. 1~100
  8. 4. 1~500
  9. 5. 1~1000
  10. 6. 结束''')
  11.     print('''
  12. ----------【请选择模式】----------''')
  13.     s = input('>> ') . strip()
  14.     if s:
  15.         x = int(s)
  16.         if x > 0 and x < 7:
  17.             if x == 6:
  18.                 break
  19.             else:
  20.                 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)'))
  21.                 k , t , m = p[x - 1][0] , p[x - 1][1] , p[x - 1][2]
  22.                 while t:
  23.                     print('您有 %d 次机会 : ' % t)
  24.                     print('----------【猜】----------')
  25.                     c = int(input('%s >> ' % m))
  26.                     if c == k:
  27.                         print()
  28.                         print('哇 , 厉害呀')
  29.                         print('祝贺,您猜对了!')
  30.                         if t == p[x - 1][1]:
  31.                             print('强烈建议去买彩票!!!')
  32.                         print()
  33.                         break
  34.                     else:
  35.                         s = ''
  36.                         d = c - k if c > k else k - c
  37.                         e = '+' if c > k else '-'
  38.                         while d:
  39.                             s = s + e
  40.                             d //= 10
  41.                         print('哥, 大了大了 ' + s) if c > k else print('哥, 小了小了 ' + s)
  42.                         t -= 1
  43.                 else:
  44.                     print('很遗憾,次数已经用完!')
  45.                     print('目标数字是 : %d' % k)
  46.     else:
  47.         break
  48. print()
  49. print('游戏结束')
复制代码

        运行实况:
  1. D:\[00.Exerciese.2022]\Python>python x.py
  2. 欢迎来玩猜数字游戏 , 请选择模式 .
  3. ( 如果一次猜中请去买彩票 )
  4. 1. 1~10
  5. 2. 1~50
  6. 3. 1~100
  7. 4. 1~500
  8. 5. 1~1000
  9. 6. 结束

  10. ----------【请选择模式】----------
  11. >>5
  12. 您有 25 次机会 :
  13. ----------【猜】----------
  14. (1-1000) >> 567
  15. 哥, 大了大了 +++
  16. 您有 24 次机会 :
  17. ----------【猜】----------
  18. (1-1000) >> 345
  19. 哥, 小了小了 ---
  20. 您有 23 次机会 :
  21. ----------【猜】----------
  22. (1-1000) >> 456
  23. 哥, 大了大了 ++
  24. 您有 22 次机会 :
  25. ----------【猜】----------
  26. (1-1000) >> 412
  27. 哥, 小了小了 --
  28. 您有 21 次机会 :
  29. ----------【猜】----------
  30. (1-1000) >> 432
  31. 哥, 小了小了 --
  32. 您有 20 次机会 :
  33. ----------【猜】----------
  34. (1-1000) >> 452
  35. 哥, 大了大了 +
  36. 您有 19 次机会 :
  37. ----------【猜】----------
  38. (1-1000) >> 448
  39. 哥, 大了大了 +
  40. 您有 18 次机会 :
  41. ----------【猜】----------
  42. (1-1000) >> 445
  43. 哥, 小了小了 -
  44. 您有 17 次机会 :
  45. ----------【猜】----------
  46. (1-1000) >> 446

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

  49. 1. 1~10
  50. 2. 1~50
  51. 3. 1~100
  52. 4. 1~500
  53. 5. 1~1000
  54. 6. 结束

  55. ----------【请选择模式】----------
  56. >>
复制代码

        【注】:'+'、'-' 代表误差方向,其数量则代表误差级别,一、二、三分别代表误差值为一、二、三位数。
想知道小甲鱼最近在做啥?请访问 -> 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-5-20 05:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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