鱼C论坛

 找回密码
 立即注册
查看: 2639|回复: 12

[已解决]小甲鱼007讲改进小游戏

[复制链接]
发表于 2023-5-8 21:56:58 | 显示全部楼层 |阅读模式

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

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

x
在看小甲鱼的007讲的时候,自己动手写代码,出现了以下两个问题,求助大神。
如图所示,我想实现的效果应该是:
1、猜对了就直接结束,不输出“"三次都猜错了,没机会了",
2、猜错的情况下,“猜错了,还剩X次机会”和“请再猜一次”在同一行,(目前在两行)。
求教!
最佳答案
2023-5-9 01:20:04
ansire 发表于 2023-5-8 23:28
第二个问题解决了,第一个问题没解决其实。三次都猜错了,我想告诉他“三次都猜错了,没机会了",而不是 ...

加个判断啊,把print("三次都猜错了,没机会了")
改成
if guess==answer:
    print("牛逼对了")
else:
    print("三次都猜错了,没机会了") 
      

代码及效果截图

代码及效果截图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-8 22:00:54 | 显示全部楼层

回帖奖励 +1 鱼币

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

使用道具 举报

发表于 2023-5-8 22:02:37 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-5-8 22:05 编辑

算了,我直接说吧

猜对了里面的break改成 exit(),直接退出程序
在同一行的话,得再加上end="",sep是分隔符,end是字符串末尾的内容,设置为空字符串可以取消默认的换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-8 22:20:10 | 显示全部楼层


问题1:猜对了就直接结束,不输出“三次都猜错了,没机会了”
解决方法:加入判断语句。在猜对了的情况下,使用break语句跳出循环即可,代码如下:

import random
counts = 3
answer = random.randint(1, 10)
guess = int(input("猜猜猪猪侠心中想的是数字几,1~10的整数,有三次机会哦:"))
while counts > 0:
    if guess == answer:
        print("猜对了")
        break
    counts = counts - 1
    if counts > 0:
        print("猜错了,还剩", counts, "次机会", sep="")
        guess = int(input("请再猜一次:"))
print("游戏结束!")

问题2:猜错的情况下,“猜错了,还剩X次机会”和“请再猜一次”在同一行,(目前在两行)。
解决方法:去掉print语句中的换行符"\n",然后把两条语句合并为一行即可,代码如下:
import random
counts=3
answer=random.randint(1,10)
guess=int(input("猜猜猪猪侠心中想的是数字几,1~10的整数,有三次机会哦:"))
while counts>0:
    if guess==answer:
        print("猜对了")
        break
    counts=counts-1
    if counts>0:
        print("猜错了,还剩",counts,"次机会",end=" ")
        guess=int(input("请再猜一次:"))
print("游戏结束!")

有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-8 22:39:01 | 显示全部楼层
sfqxx 发表于 2023-5-8 22:20
问题1:猜对了就直接结束,不输出“三次都猜错了,没机会了”
解决方法:加入判断语句。在猜对了的情 ...

没求助帖先偷偷访问www.bilibili.com
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-8 23:01:43 | 显示全部楼层
歌者文明清理员 发表于 2023-5-8 22:39
没求助帖先偷偷访问www.bilibili.com

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

使用道具 举报

 楼主| 发表于 2023-5-8 23:26:24 | 显示全部楼层
歌者文明清理员 发表于 2023-5-8 22:02
算了,我直接说吧

猜对了里面的break改成 exit(),直接退出程序

答对了要给反馈而不是退出软件,您这样的话不适合
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-8 23:28:17 | 显示全部楼层
sfqxx 发表于 2023-5-8 22:20
问题1:猜对了就直接结束,不输出“三次都猜错了,没机会了”
解决方法:加入判断语句。在猜对了的情 ...

第二个问题解决了,第一个问题没解决其实。三次都猜错了,我想告诉他“三次都猜错了,没机会了",而不是”游戏结束“,实际上这个问题没解决呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-8 23:29:37 | 显示全部楼层
ansire 发表于 2023-5-8 23:26
答对了要给反馈而不是退出软件,您这样的话不适合

啊这,不然就做不到了
或者你可以写到一个函数里
def main():
    你原来的while循环代码
        print("猜对了")
        return#只退出函数
    print('没机会了')
然后在主程序里
guess=...
main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-8 23:30:08 | 显示全部楼层
ansire 发表于 2023-5-8 23:28
第二个问题解决了,第一个问题没解决其实。三次都猜错了,我想告诉他“三次都猜错了,没机会了",而不是 ...

看4楼的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-9 01:20:04 | 显示全部楼层    本楼为最佳答案   
ansire 发表于 2023-5-8 23:28
第二个问题解决了,第一个问题没解决其实。三次都猜错了,我想告诉他“三次都猜错了,没机会了",而不是 ...

加个判断啊,把print("三次都猜错了,没机会了")
改成
if guess==answer:
    print("牛逼对了")
else:
    print("三次都猜错了,没机会了") 
      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-5-9 09:05:03 | 显示全部楼层
15113181453 发表于 2023-5-9 01:20
加个判断啊,把print("三次都猜错了,没机会了")
改成

这次OK了,感谢感谢。需要再嵌套一个if语句才行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-9 09:11:33 | 显示全部楼层
import random
counts=3
answer=random.randint(1,10)
guess=int(input("猜猜猪猪侠心中想的是数字几,1~10的整数,有三次机会哦:"))
while True:
    counts=counts-1
    if guess==answer:
        print("猜对了")
        break
   
    elif counts>0:
        print("猜错了,还剩",counts,"次机会",end=" ")
        guess=int(input("请再猜一次:"))
    else:
        print("三次都猜错了,没有机会了")
        break
   
print("游戏结束!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 04:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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