鱼C论坛

 找回密码
 立即注册
查看: 1878|回复: 7

[技术交流] 代码 重构 !

[复制链接]
发表于 2020-7-12 18:29:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 TsaiYen 于 2020-7-12 19:38 编辑

鱼友们可以帮我看看代码哪里需要改进吗?
感觉自己写得太复杂,很烂...
  1. from random import randint
  2. from time import sleep
  3. from terminaltables import AsciiTable
  4. Head = ["回合", " 范围", "猜谜数字"]
  5. Min, Max, Round = 1, 100, 1
  6. isBingo, Judy = True, True
  7. data = []
  8. #选择模式
  9. def mode():
  10.     body = "电脑随机生成终极密码(1) or 手动设定终极密码(2) or 退出当前操作(3): "
  11.     while Judy:
  12.         print("------------------------终极密码1 ~ 100 ------------------ ---------")
  13.         choose = input(body)
  14.         if choose.isdigit() and 0 < int(choose) < 4:
  15.             if choose == "1":
  16.                 generate_num()
  17.             if choose == "2":
  18.                 game_start()
  19.             if choose == "3":
  20.                 break
  21.         else:
  22.             print("输入指令错误")
  23.             body = "重新输入指令"

  24. #计算机随机产生密码
  25. def generate_num():
  26.     global Min, Max, Judy, Round
  27.     #初始化范围
  28.     Min, Max, Round = 1, 100, Round
  29.     #不包含 1 和 100
  30.     r = randint(2, 100)
  31.     print(r)
  32.     print("正在产生密码...")
  33.     sleep(3)
  34.     print("终极密码产生完毕 ! ! !")
  35.     while True:
  36.         result = input("输入终极密码,密码介于 {} ~ {} : \n".format(Min, Max))
  37.         data.append([Round, "%3d ~ %3d" % (Min, Max), result])
  38.         Round += 1
  39.         if result.isdigit() and Min < int(result) < Max:
  40.             result = int(result)
  41.             if result > r:
  42.                 Max = result
  43.             elif result < r:
  44.                 Min = result
  45.             else:
  46.                 print("Bingo,答对了 ! ! ! ")
  47.                 table = AsciiTable([Head, *data])
  48.                 print(table.table)
  49.                 if input("还要继续玩吗 [y / n] ?: ") == "y":
  50.                     break
  51.                 else:
  52.                     print("游戏结束 ! ! !")
  53.                     Judy = False
  54.                     break
  55.         else:
  56.             print("密码并非数字 & 终极密码范围超出 ! ! !\n重新输入终极密码...")

  57. #游戏开始,手动设定密码
  58. def game_start():
  59.     global Min, Max, isBingo, Judy, Round
  60.     #初始化范围
  61.     Min, Max, Round = 1, 100, 1
  62.     #初始化 isBingo
  63.     isBingo = True
  64.     while isBingo:
  65.         num = int(input("设定终极密码: "))
  66.         if isinstance(num, int) and Min < num < Max :
  67.             print("设定完成")
  68.             while True:
  69.                 result = input("输入终极密码,密码介于 {} ~ {} : \n".format(Min, Max))
  70.                 data.append([Round, "%3d ~ %3d" % (Min, Max), result])
  71.                 Round += 1
  72.                 if result.isdigit() and Min < int(result) < Max:
  73.                     result = int(result)
  74.                     if result > num:
  75.                         Max = result
  76.                     elif result < num:
  77.                         Min = result
  78.                     else:
  79.                         print("Bingo,答对了 ! ! ! ")
  80.                         table = AsciiTable([Head, *data])
  81.                         print(table.table)
  82.                         if input("还要继续玩吗 [y / n] ?: ") == "y":
  83.                             isBingo = False
  84.                             break
  85.                         else:
  86.                             isBingo = False
  87.                             Judy = False
  88.                             print("游戏结束 ! ! !")
  89.                             break
  90.                 else:
  91.                     print("密码并非数字 & 终极密码范围超出 ! ! !\n重新设定终极密码...")
  92.         else:
  93.             print("重新设定 ! 密码并非数字 & 范围超出")
  94.    
  95. mode()
  96.         

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-12 18:31:48 | 显示全部楼层
100行……
我都写不到50行的……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 18:35:16 | 显示全部楼层
weiter 发表于 2020-7-12 18:31
100行……
我都写不到50行的……

我判断的比较多哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 19:06:06 | 显示全部楼层
繁体字看不懂不知道你写的啥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 19:14:34 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-12 19:06
繁体字看不懂不知道你写的啥

更改了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 19:27:36 | 显示全部楼层

题目没改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 19:38:57 | 显示全部楼层

改了TAT
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 20:42:33 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 11:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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