鱼C论坛

 找回密码
 立即注册
查看: 2230|回复: 26

帮我看看,感谢

[复制链接]
发表于 2019-7-13 15:20:59 | 显示全部楼层 |阅读模式

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

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

x
  1. import random
  2. kuaiji = '快速攻击:进行快速攻击,对敌人造成3点伤害。消耗:1'
  3. fangyu = '防御:进行一次防御,获得4点护盾。消耗:1'
  4. zhongji = '重击:进行一次重击,对敌人造成8点伤害。消耗:3'
  5. tonggui = '同归于尽:和敌人同时受到3点伤害。消耗:2'
  6. paiku = [kuaiji , fangyu , zhongji , tonggui]
  7. a = random.randint(0,3)
  8. b = random.randint(0,3)
  9. if a == b:
  10.     while True:
  11.         b = random.randint(0,3)
  12.         if a != b:
  13.             break
  14. c = random.randint(0,3)
  15. if a == c:
  16.     while True:
  17.         c = random.randint(0,3)
  18.         if a != c and b != c:
  19.             break
  20. elif b == c:
  21.     while True:
  22.         c = random.randint(0,3)
  23.         if  a != c and b != c:
  24.             break
  25. print('这是你的初始手牌:\n')
  26. shoupaiku = [a,b,c]
  27. print(paiku[a])
  28. print(paiku[b])
  29. print(paiku[c],'\n')
  30. dHP = 120
  31. wHP = 60
  32. atk = 6
  33. hudun = 0
  34. print('敌人有',dHP,'点血量\n')
  35. input('单击回车以开始\n')
  36. while dHP>0:
  37.     chouka = random.randint(0,2)
  38.     t = shoupaiku[chouka]
  39.     print('你使用了',paiku[t],'\n')
  40.     if paiku[t] == kuaiji:
  41.         dHP-=3
  42.         if dHP<= 0:
  43.             print('敌人已死亡\n')
  44.             break
  45.         elif wHP<=0:
  46.             print('你死了\n')
  47.             break
  48.         print('敌人损失3点血,还剩',dHP,'点血量\n')
  49.     elif paiku[t] == fangyu:
  50.         hudun+= 4
  51.     elif paiku[t] == zhongji:
  52.         dHP-= 8
  53.         if dHP<= 0:
  54.             print('敌人已死亡\n')
  55.             break
  56.         elif wHP<=0:
  57.             print('你死了\n')
  58.             break
  59.         print('敌人损失8点血,还剩',dHP,'点血量\n')
  60.     elif paiku[t] == tonggui:
  61.         dHP-= 3
  62.         wHP-= 3
  63.         if dHP<= 0:
  64.             print('敌人已死亡\n')
  65.             break
  66.         elif wHP<=0:
  67.             print('你死了\n')
  68.             break
  69.         print('敌人损失3点血,还剩',dHP,'点血量\n')
  70.         print('你损失了3点血,还剩',wHP,'点血量\n')
  71.     if hudun<atk:
  72.         atk-= hudun
  73.         wHP-= atk
  74.         if hudun > 0:
  75.             print('你的护盾替你挡下了一些伤害\n')
  76.             hudun-= atk
  77.         print('敌人将你击中,损失',atk,'点血量,还剩',wHP,'点\n')
  78.     elif hudun>atk:
  79.         hudun-= atk
  80.         print('你的护盾替你挡下一击,你还剩',hudun,'点护盾\n')
  81.     input('单击回车以继续\n')
复制代码

为什么hudun这个变量在hudun<0时,不能执行hudun = 0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-7-13 15:42:06 From FishC Mobile | 显示全部楼层
没看到相关代码啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 16:01:16 | 显示全部楼层
wp231957 发表于 2019-7-13 15:42
没看到相关代码啊

我发了代码呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 16:05:35 From FishC Mobile | 显示全部楼层
hudun<0时,不能执行hudun = 0
我是说这部分相关代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 16:08:16 | 显示全部楼层

所以怎么改呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 16:13:58 | 显示全部楼层

因为不知道你的代码的核心思想,所以没办法直接给你修改代码

不过要是实现这个在hudun<0时,hudun = 0的话
不就  if hudun<0: hudun=0 不就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 16:19:52 | 显示全部楼层
wp231957 发表于 2019-7-13 16:13
因为不知道你的代码的核心思想,所以没办法直接给你修改代码

不过要是实现这个在hudun

我就是这么打的,只是发错了
你可以与运行试试
hudun = 0不能执行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 16:21:41 | 显示全部楼层
nick5185 发表于 2019-7-13 16:19
我就是这么打的,只是发错了
你可以与运行试试
hudun = 0不能执行
  1. import random
  2. kuaiji = '快速攻击:进行快速攻击,对敌人造成3点伤害。消耗:1'
  3. fangyu = '防御:进行一次防御,获得4点护盾。消耗:1'
  4. zhongji = '重击:进行一次重击,对敌人造成8点伤害。消耗:3'
  5. tonggui = '同归于尽:和敌人同时受到3点伤害。消耗:2'
  6. paiku = [kuaiji , fangyu , zhongji , tonggui]
  7. a = random.randint(0,3)
  8. b = random.randint(0,3)
  9. if a == b:
  10.     while True:
  11.         b = random.randint(0,3)
  12.         if a != b:
  13.             break
  14. c = random.randint(0,3)
  15. if a == c:
  16.     while True:
  17.         c = random.randint(0,3)
  18.         if a != c and b != c:
  19.             break
  20. elif b == c:
  21.     while True:
  22.         c = random.randint(0,3)
  23.         if  a != c and b != c:
  24.             break
  25. print('这是你的初始手牌:\n')
  26. shoupaiku = [a,b,c]
  27. print(paiku[a])
  28. print(paiku[b])
  29. print(paiku[c],'\n')
  30. dHP = 120
  31. wHP = 60
  32. atk = 6
  33. hudun = 0
  34. print('敌人有',dHP,'点血量\n')
  35. input('单击回车以开始\n')
  36. while dHP>0:
  37.     chouka = random.randint(0,2)
  38.     t = shoupaiku[chouka]
  39.     print('你使用了',paiku[t],'\n')
  40.     if paiku[t] == kuaiji:
  41.         dHP-=3
  42.         if dHP<= 0:
  43.             print('敌人已死亡\n')
  44.             break
  45.         elif wHP<=0:
  46.             print('你死了\n')
  47.             break
  48.         print('敌人损失3点血,还剩',dHP,'点血量\n')
  49.     elif paiku[t] == fangyu:
  50.         hudun+= 4
  51.     elif paiku[t] == zhongji:
  52.         dHP-= 8
  53.         if dHP<= 0:
  54.             print('敌人已死亡\n')
  55.             break
  56.         elif wHP<=0:
  57.             print('你死了\n')
  58.             break
  59.         print('敌人损失8点血,还剩',dHP,'点血量\n')
  60.     elif paiku[t] == tonggui:
  61.         dHP-= 3
  62.         wHP-= 3
  63.         if dHP<= 0:
  64.             print('敌人已死亡\n')
  65.             break
  66.         elif wHP<=0:
  67.             print('你死了\n')
  68.             break
  69.         print('敌人损失3点血,还剩',dHP,'点血量\n')
  70.         print('你损失了3点血,还剩',wHP,'点血量\n')
  71.     if hudun<atk:
  72.         atk-= hudun
  73.         wHP-= atk
  74.         if hudun > 0:
  75.             print('你的护盾替你挡下了一些伤害\n')
  76.             hudun = 0
  77.         print('敌人将你击中,损失',atk,'点血量,还剩',wHP,'点\n')
  78.     elif hudun>atk:
  79.         hudun-= atk
  80.         print('你的护盾替你挡下一击,你还剩',hudun,'点护盾\n')
  81.     input('单击回车以继续\n')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 16:28:49 | 显示全部楼层
nick5185 发表于 2019-7-13 16:19
我就是这么打的,只是发错了
你可以与运行试试
hudun = 0不能执行

我测试了2次  都是敌人死  自己不死,,没太弄明白你的设计思路
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 16:54:36 | 显示全部楼层
wp231957 发表于 2019-7-13 16:28
我测试了2次  都是敌人死  自己不死,,没太弄明白你的设计思路

简单来说就是从四种攻击中随机抽三种,在战斗时每次随机使用一种,直到敌人死或你死。hudun是用来计算护盾值的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 16:56:41 | 显示全部楼层
wp231957 发表于 2019-7-13 16:28
我测试了2次  都是敌人死  自己不死,,没太弄明白你的设计思路

你有没有发现每次护盾被打掉时不会归零,第二次叠护盾时会在4上再加4,这是为什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 17:03:39 | 显示全部楼层
nick5185 发表于 2019-7-13 16:56
你有没有发现每次护盾被打掉时不会归零,第二次叠护盾时会在4上再加4,这是为什么

我不知道的太多了,所以无法解释你问的问题
比如:
02.kuaiji = '快速攻击:进行快速攻击,对敌人造成3点伤害。消耗:1'

03.fangyu = '防御:进行一次防御,获得4点护盾。消耗:1'

04.zhongji = '重击:进行一次重击,对敌人造成8点伤害。消耗:3'

05.tonggui = '同归于尽:和敌人同时受到3点伤害。消耗:2'
这里的1 1 3 2 都是啥意思

再比如:
30.dHP = 120

31.wHP = 60

32.atk = 6

33.hudun = 0
这里的数都是啥意思,勉强看懂120是敌人 60是自己   那个atk又是啥

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

使用道具 举报

 楼主| 发表于 2019-7-13 17:06:57 | 显示全部楼层
wp231957 发表于 2019-7-13 17:03
我不知道的太多了,所以无法解释你问的问题
比如:
02.kuaiji = '快速攻击:进行快速攻击,对敌人造成3 ...

1132我还没有做,atk不就是攻击吗,atk是敌人每回合对你造成的伤害
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 17:10:45 | 显示全部楼层
wp231957 发表于 2019-7-13 17:03
我不知道的太多了,所以无法解释你问的问题
比如:
02.kuaiji = '快速攻击:进行快速攻击,对敌人造成3 ...

02030405是攻击类型
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 17:16:45 | 显示全部楼层
wp231957 发表于 2019-7-13 17:03
我不知道的太多了,所以无法解释你问的问题
比如:
02.kuaiji = '快速攻击:进行快速攻击,对敌人造成3 ...

hudun是护盾值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 17:23:24 From FishC Mobile | 显示全部楼层
nick5185 发表于 2019-7-13 17:16
hudun是护盾值

护盾值是干嘛用滴,能增加那个WHP吗
还是抵消攻击,我方总血量是护盾值加上WHP吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 17:25:09 | 显示全部楼层
wp231957 发表于 2019-7-13 17:23
护盾值是干嘛用滴,能增加那个WHP吗
还是抵消攻击,我方总血量是护盾值加上WHP吗

炉石玩过吗,相当于里面的护甲
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 17:28:26 | 显示全部楼层
wp231957 发表于 2019-7-13 17:23
护盾值是干嘛用滴,能增加那个WHP吗
还是抵消攻击,我方总血量是护盾值加上WHP吗

相当于血量,但不是血量
因为某些攻击的效果,所以要用护盾
例如,你使用:刺杀:敌人血量减10
这个时候,护盾就不能抵消攻击力
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 17:46:17 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2019-7-13 17:47 编辑
nick5185 发表于 2019-7-13 17:28
相当于血量,但不是血量
因为某些攻击的效果,所以要用护盾
例如,你使用:刺杀:敌人血量减10


if hudun<atk:
        atk-= hudun
        wHP-= atk
        if hudun > 0:
            print('你的护盾替你挡下了一些伤害\n')
            hudun = 0
        print('敌人将你击中,损失',atk,'点血量,还剩',wHP,'点\n')
    elif hudun>atk:
        hudun-= atk
        print('你的护盾替你挡下一击,你还剩',hudun,'点护盾\n')

我认为这里有问题,这里可能会出现atk为负数的情况,如果这样,hudun-=atk就会出现hudun反增
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-13 17:50:29 | 显示全部楼层
wp231957 发表于 2019-7-13 17:46
if hudun 0:
            print('你的护盾替你挡下了一些伤害\n')
            hudun = 0

我不是已经分类讨论了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-16 21:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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