鱼C论坛

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

[学习笔记] 007 改进我们的小游戏

[复制链接]
发表于 2022-12-30 17:11:50 | 显示全部楼层 |阅读模式

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

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

x
001 代码 Shut up & Code
Game2.0.py:
""" 用Python设计第一个游戏 """

counts = 3

while counts > 0:
        temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
        guess = int(temp)

        if guess == 8:
                print("你是小甲鱼心里的蛔虫吗?!")
                print("哼,猜中了也没有奖励!")
                break
        else:
                if guess < 8:
                        print("小啦~")
                else:
                        print("大啦~")
                counts = counts - 1

print("游戏结束,不玩啦^_^")

002 改进方向 Changes
  • 当用户猜错的时候,程序应该给出提示
  • 应该提供更多机会给用户
  • 每次运行程序,答案应该是随机的


003 修改代码 Changes
第一个问题:
当用户猜错的时候,程序应该给出提示

这里很好解决,我们已经了解了if-else结构,这里只需要把else分支下的print()删掉,换上一个if-else分支循环,判断用户输入的数字是大了还是小了就可以了。
修改之后的代码:
""" 用Python设计第一个游戏 """


temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
guess = int(temp)
                        
if guess == 8:
        print("你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
else:
        if guess < 8:
                print("小啦~")
        else:
                print("大啦~")

print("游戏结束,不玩啦^_^")
可以看到,python是利用了层层缩进来显示分支循环的层级的,这就是为什么说“缩进是Python的灵魂”。

第二个问题:
应该提供更多机会给用户

想要改进这个问题,就不得不扯到循环结构这里先介绍while循环。
while循环的语法规则是这样的:
while 条件:
如果条件为真(True)执行这里的语句
举个例子,在Python的交互模式中输入
while 1 < 2:
        print("ilovefishc.com")
然后电脑就开始刷屏了……
这时我们可以按下CTRL+C终止程序。
再来Alt+P看看我们的代码,可以看到,1 < 2 这个条件小孩子都知道是对的(也就是结果为True),计算机一直看一直知道结果为True,所以就不停的执行循环里面的操作,自然就形成了“刷屏”这一壮观的景象。
这时,我们可以手动的让这个条件从True变为False,也就是使用变量!
这样我们重新编写一下测试代码
counts = 3
while counts > 0:
        print("ilovefishc.com")
        counts = counts - 1
运行一下,可以看到,屏幕上只打印了3行ilovefishc.com,因为每执行一次循环,counts就减去1,当全部减去,counts = 0 时,条件不符合,也就是为False,所以跳出了循环。
同理,我们的小游戏也可以这样修改:
""" 用Python设计第一个游戏 """

counts = 3

while counts > 0:
        temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
        guess = int(temp)

        if guess == 8:
                print("你是小甲鱼心里的蛔虫吗?!")
                print("哼,猜中了也没有奖励!")
        else:
                if guess < 8:
                        print("小啦~")
                else:
                        print("大啦~")
                counts = counts - 1

print("游戏结束,不玩啦^_^")
另外,再次注意一下缩进问题,这个counts = counts - 1要与最内层的if-else语句对齐,否则就会出错。
这时还会有一个问题:如果用户猜对了,程序又会陷入一直为True的状态。
我们也可以把counts = counts - 1减掉一个缩进,这样无论猜对猜错都会执行counts = counts - 1
这时候就需要用到一个新的指令:break语句!
现在交互模式下做个测试:
counts = 3
while counts > 0:
        print("ilovefishc.com")
        counts = counts - 1
        break
执行代码,只打印了一个ilovefishc.com,因为我们加上了一个break语句。
在while循环中用break语句,意思就是“不管三七二十一往外跳,跳出循环体”
这样我们就可以这样改:
""" 用Python设计第一个游戏 """

counts = 3

while counts > 0:
        temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
        guess = int(temp)

        if guess == 8:
                print("你是小甲鱼心里的蛔虫吗?!")
                print("哼,猜中了也没有奖励!")
                break
        else:
                if guess < 8:
                        print("小啦~")
                else:
                        print("大啦~")
                counts = counts - 1

print("游戏结束,不玩啦^_^")
这样我们在执行到用户输入正确答案时,就会跳出循环体了。

004 思维导图 Picture

                               
登录/注册后可看大图


希望能够帮到大家

PS:最近事情有点多,可能更新地会慢一点,请见谅

评分

参与人数 2荣誉 +3 贡献 +3 收起 理由
sfqxx + 3 支持
asky533 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-30 18:03:31 | 显示全部楼层
有点水。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-30 19:25:13 | 显示全部楼层
奥利给!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-30 19:44:00 | 显示全部楼层
真是难得给力的帖子啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-7 12:29:18 | 显示全部楼层
哇!换头像成莹了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 17:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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