炮操作类——多炮列表

上一篇文章中我们知道了炮操作类中最基本的接口,这篇文章我们将讨论如何使用炮操作类创建多个炮列表。

创建多个炮列表语法:

AvZ::PaoOperator feng_pao;
AvZ::PaoOperator ping_di_pao;

void Script(){
 
}

请注意在创建多个炮列表时,必须将炮列表定义为全局对象,即定义在函数 void Script() 外部,这点十分重要,如果定义在 Script 函数内部,会为以后的使用带来不必要的麻烦。下面我们结合具体的例子说明多炮列表的意义。

RE 十炮:

RE 十炮

对于此阵,由于风炮(位于一列的炮)和平地炮(位于六列的炮)的落点偏移不同驱使着我们必须将平地炮发往四行,将风炮发往二行,否则会导致漏炸。所以此时如果我们使用一个炮列表则必须刻意的对炮的使用顺序进行设计,但是多炮列表就解决了这个麻烦,接下来我们看多炮列表是如何做到的。

feng_pao.resetPaoList({{
    {1, 1},
    {2, 1},
    {3, 1},
    {4, 1},
    {5, 1},
}});

ping_di_pao.resetPaoList({{
    {1, 6},
    {2, 6},
    {3, 6},
    {4, 6},
    {5, 6},
}});

feng_pao 此时储存着风炮所在的位置,ping_di_pao 储存着平地炮所在的位置,由于是天台,这里我们使用 roofPao 函数,此时只要使用对应的炮操作对象调用 roofPao 函数就可以使用相应位置的炮。

feng_pao.roofPao(2, 9);
ping_di_pao.roofPao(4, 9);

这样我们就保证了发射的一对炮里必是一个来自平地炮一个来自风炮的,并且平地炮必射向四行九列,风炮必射向二行九列,这样就不用刻意设计炮位置的书写顺序了。

上一篇 炮操作类——初步

目录

下一篇 炮操作类——铲种