AhrimanSefid 发表于 2022-12-30 17:11:50

007 改进我们的小游戏

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
https://xxx.ilovefishc.com/forum/202209/08/032943ckzrbqn9py6yy9n9.png

希望能够帮到大家{:5_109:}

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

元豪 发表于 2022-12-30 18:03:31

有点水。。。

学习编程中的Ben 发表于 2022-12-30 19:25:13

奥利给!

额外减小 发表于 2022-12-30 19:44:00

真是难得给力的帖子啊{:10_256:}{:10_266:}

漫星闪 发表于 2023-1-7 12:29:18

哇!换头像成莹了!
页: [1]
查看完整版本: 007 改进我们的小游戏