编写RPG短脚本很困难

时间:2018-09-12 14:40:02

标签: python

编写一个名为“ compute_xp”的函数,该函数采用两个参数,它们分别是整数和布尔值。如果布尔值为假(失败),该函数将返回44993;如果布尔值为真(赢得胜利),则函数将返回44993加上整数参数

def compute_xp(i, b):
    if b == 44993:
        return 44993 
    else:
        return 44993 + i

这是我的代码,但是当我输入一个值使该语句为真时,我总是得到错误的答案。

4 个答案:

答案 0 :(得分:2)

在原始代码示例中,if b == 44993:将参数b44993进行比较。
由于预计b是布尔值,因此此比较将始终返回false

这是我的解决方法:

def compute_xp(i, b):
  if b:
      return 44993 + i
  else:
      return 44993  

if b:检查布尔值b,因此如果btrue,则将执行return 44993 + i。如果bfalse,则将执行return 44993

答案 1 :(得分:1)

为什么要比较布尔变量和数字?试试:

 import brain from 'node_modules/brain.js/index.js';
 import brain from 'node_modules/brain.js/';
 import brain from './brain.js/index.js';

或更简短地说:

def compute_xp(i, b):
    if b:
        return 44993 + i
    else:
        return 44993 

答案 2 :(得分:0)

我认为您应该重新考虑。

这就是我要做的:

def compute_xp(int_value, bool_value):
    if b == True:
        #If the battle is won run this code block
        #return 44993, int_value (this would return two seperate things," (44993, int_value) ")
        return 44993 + i
    else:
        #If the battle is lost, run this code
        return 44993

您的代码无法使用的原因是,因为您试图将布尔值解释为整数if b == 44993,所以它当然总是假,因为True和{{1 }}是False

所以我的代码要做的是显式检查布尔值,因此只有在== 44993b == True的情况下

我以注释的形式在代码中增加了一行。 return 44993 + i似乎不适合返回。返回return 44993 + i将返回一个元组,索引0将是一个整数,索引1将是您的int_value。

答案 3 :(得分:0)

尝试一下。请记住,布尔值只能具有两个值true或false之一,因此永远不能将其设置为等于数字。

def compute_xp(x,y):
    if y == True:
        return (x + 44993)
    else:
        return 44993