Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何比较多个布尔值以通过特定输出?C++;适用于UE4_C++_Boolean_Compare_Unreal Engine4_Unreal Blueprint - Fatal编程技术网

C++ 如何比较多个布尔值以通过特定输出?C++;适用于UE4

C++ 如何比较多个布尔值以通过特定输出?C++;适用于UE4,c++,boolean,compare,unreal-engine4,unreal-blueprint,C++,Boolean,Compare,Unreal Engine4,Unreal Blueprint,我自己不是一个程序员,但我有一个程序员朋友,他正试图帮助我完成虚幻引擎4中的某项任务,我希望在这里找到一些建议,并将其传递给他 我们试图在UE4中创建一个“节点”,它可以接受许多布尔值(20+),并传递特定值,或者更确切地说是传递事件链/行 例如,我可能有6个布尔值进入节点,如果布尔值2和4为真,1为假,其余的不被查看(基本上是N/A),我希望其中一个输出通过。我在下面做了一个快速的图片来展示它的样子 我的朋友说他不确定这样的节点如何在C++中完成,所以我希望这里的人能帮助我们朝正确的方向发展

我自己不是一个程序员,但我有一个程序员朋友,他正试图帮助我完成虚幻引擎4中的某项任务,我希望在这里找到一些建议,并将其传递给他

我们试图在UE4中创建一个“节点”,它可以接受许多布尔值(20+),并传递特定值,或者更确切地说是传递事件链/行

例如,我可能有6个布尔值进入节点,如果布尔值2和4为真,1为假,其余的不被查看(基本上是N/A),我希望其中一个输出通过。我在下面做了一个快速的图片来展示它的样子

我的朋友说他不确定这样的节点如何在C++中完成,所以我希望这里的人能帮助我们朝正确的方向发展。否则,我将被困在混乱的分支节点,节点,或节点,直到我的耳朵流血,我的项目看起来像一碗意大利面条



谢谢你的建议,但是我觉得这个实现对于我所需要的东西来说有点太简单了

嗯,也许我可以用它的逻辑来解释我的想法。本质上,将传入节点的布尔值设置为一个整数数组(或浮点数,实际上不知道它们之间的差异),True=1,False=2。阵列节点的输入数量可由主节点的输入数量确定。 然后,根据主节点的输入数量,可以在主节点上为每个事件输出引脚提供相同数量的选项。每个选项都有3个复选框。选中第一个框将输出1表示真,第二个框将输出2表示假,第三个框将输出3表示不选中。 然后,这些输出可以自己制作成一个数组。然后你只需要比较两个数组,看看它们是否匹配,第二个数组中有3个值的任何地方,都会输出一个“is matching”,不管它与什么进行比较。
我只是不知道实际的编码,所以我需要一些帮助来尝试向我的朋友解释这一行逻辑,以代码的形式。

基于以下信息:

std::vector<int> input_vector; //the index will represent sequence and value will represent state

for(int i=0; i<node_size; i++)
{
    input_vector.push_back(state); //you will push state=1 or state=2 here
}

std::vector<int> node_vector;
bool flag = true;

for(int case_no=0; case_no<cases;case_no++)
{
    //checking node_vector with input_vector
    for(int i=0; i<node_size; i++)
    {
        int choice;
        std::cin >> choice; //either 1 or 2 or 3
        node_vector.push_back(choice);
    }
    for(int i=0; i<node_size; i++)
    {
        if(node_vector[i]==3)
            continue;
        else if(node_vector[i]==input_vector[i])
            continue;
        else
        {
            flag = false;
            break;
        }
    }
    if(flag==true)
        break;
    else
        continue;
}

if(flag)
    std::cout << "Matched";
else
    std::cout << "Not Matched";
std::vector input\u vector//索引将表示序列,值将表示状态

对于(int i=0;我支持该建议,但请参见上面的编辑。:d这里有多个[le在节点上的情况,我们必须为每个情况找到匹配的/不匹配的?嗯..我想是的?基本上,我需要一次只有一个输出为真,否则它会破坏UE4。因此,基本上,每次节点“激活”时,它都会检查所有的输出管脚阵列,直到找到一个与输入匹配的管脚阵列数组,否则它将有一个“不匹配”的输出,我猜?这就是你要问的吗?太棒了,非常感谢。我将把这个传递给我的程序员朋友,看看这是否有助于他理解事情。Ddo告诉我最终结果:)您可以在主节点上的每个事件输出引脚中选择相同数量的选项,请在CaleFixy下在屏幕上的右边,在Case1下有一组复选框。理想情况下,这些相同的复选框将出现在CaseS0下,以及您创建的任何附加输出引脚。在屏幕上,您可以看到“添加Pin”选项,这将创建Case_2、Case_3等。我的想法是,每个“Case”对象都有自己的复选框集,可以将其转换为自己的数组,并根据主输入数组进行检查。现在明白了吗?