鱼C论坛

 找回密码
 立即注册
查看: 21|回复: 1

[作品展示] 作品分享的第三天"Guess Game"

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式

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

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

x
"Guess Game"作品代码(拷贝即用):

import time
import random
play_the_game = True
score = 0
print("Let's play a game!")
print('I will write some numbers,you must remeber them,and write them out.')
anser = str(input('Would you play with me?Please answer Yes or No.'))
while play_the_game:
    if anser == 'Yes':
        right_anser = random.randint(10000000,99999999)
        print('You have three seconds to remeber the right anser:',right_anser)
        print(3)
        time.sleep(1)
        print(2)
        time.sleep(1)
        print(1)
        time.sleep(1)
        print('\n'*44)
        anser = int(input('What is the right answer?'))
        if anser == right_anser:
            print('Yes,you are right!')
            score = score + 1
            anser = 'Yes'
            continue
        else:
            print('The right number is',right_anser,',you need to remeber it quiekly!')
            print('Your score is',score)
            break
    else:
        if anser == 'No':
            print('OK...')
            play_the_game = False
        else:
            print('Please say Yes or No.')
            continue

可以给些建议,谢谢🙏
(后期会更新)

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 1 小时前 | 显示全部楼层
这是一个很好的小游戏练手作品,思路清晰,能正常运行已经非常棒了。我整理了一些改进建议,希望能帮你把代码写得更规范、更易扩展:

1. 变量命名与拼写
  • anser 拼写应是 answer
  • remeber 应是 remember
  • quiekly 应是 quickly
  • right_anser 可改为 target_number 更容易理解

统一规范后,别人读代码时不会产生困惑。

2. 去掉不必要的循环陷阱
  • 主循环 while play_the_game 中,当回答正确后 anser = 'Yes'continue,导致下一次循环又会问“要不要玩”——这不符合直觉。建议把“是否开始”的选择放到循环之前,循环内只处理一局游戏的逻辑。
  • 回答错误时 break 退出循环。但是当玩家刚开始回答 'No' 时设置 play_the_game = False 也会退出。逻辑可以更清晰:循环直接控制是否进行新一局。


3. 增加输入检查与容错
  • 输入答案后直接 int(input(...)) 如果输入非数字会报错。建议用 try...except 捕获 ValueError,提示用户重新输入数字。
  • 对“Yes/No”的回答,可以统一转为小写再判断,避免用户输入大小写混合导致意外。


4. 清屏方式的改进
  • print('\n'*44) 在部分终端可能不能完全清屏,而且会滚动很多空行。更规范的做法是用 os.system('cls' if os.name == 'nt' else 'clear'),需要先 import os
  • 如果考虑到跨平台兼容,也可以继续用换行,但建议打印更多行(比如80行)以确保数字被完全覆盖。


5. 代码结构优化
可以把游戏的核心逻辑封装成一个函数,方便重复调用。例如:

  1. def play_round():
  2.     target = random.randint(10000000, 99999999)
  3.     print('记住这个数字:', target)
  4.     # 倒计时 ...
  5.     # 清屏 ...
  6.     # 获取用户输入并判断 ...
  7.     return 是否答对
复制代码

这样主循环只需要关心要不要继续玩,分数维护也清晰。

6. 扩展建议(后期可更新)
  • 增加难度选择:数字长度可以从6位、8位、10位变化。
  • 增加倒计时视觉效果:用 time.sleep 配合 print 稍微美化一下进度条。
  • 记录最高分:用文件持久化保存,下次启动时显示历史最佳。
  • 加入重复玩并累计总分的功能(目前只有单局分)。


总的来说,你的代码已经具备了核心玩法,把这些小细节打磨一下,就会更像一个完整的作品。继续加油!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-3 20:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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