解阵练习1:NE神之六炮
shallow一dream
编辑于 2024年02月17日 19:20

好的,这两天渐强都没什么动静,我算是跟上了键控教程的步伐,终于把抄袭部分给做完了,抄归抄,自己还是要解个阵练习一下,选择了目前教程中最难的ME神之六炮,将其移至NE(因为同是夜间,正好练习复用计算器的使用),稍作修改。

实际上NE神六这个阵早就有了,不过我看B站上怎么全是手动,为了尽量不修改阵型,选择优先解原阵。

先看阵型,和ME神之六炮一样,六门炮,三超前置三底线炮布置

其实这种布置在ME炮损很低的,但是在NE,巨人不肾虚了,加速波又不少,这种布置还是很容易绷不住炮损的()

伞盖全场在ME是为了完防小偷,这里没有选择去掉伞,因为我也懒得管小偷

好的,开始考虑解阵,都是夜间,又有超前置炮,依旧是考虑C7u

IP-PP | IP-PP | PA | N | PP

代码块
JavaScript
自动换行
复制代码
(1_8_wave % 1, 10_11_wave % 4, 12_18_wave % 2) <<= ip_pp | pa | n | pp | ip_pp;
复制成功

轨道语言是不是很好看hhh


解阵部分

这里还是优先算出冰波波长,仍旧假设I3冰(在ADSL中写作11生效,而SAVZ中写作10生效,实际按照结算顺序,I3冰即为11冰),注意到冰波仍是扶梯走在最前(NE无冰车,即使有冰车也有热过渡炮收,因此无视冰车),只要计算扶梯最早啃炮即可

562 * 2 + 400 - 10 = 1514

这里其实和ME神六一样,不过是再算一遍

因此可得目前冰波波长为1714

加速波与ME不同,NE中三路会出舞王,因此不适用垫材的前提下无法拖加速波时间,只能601,且在舞王自然召唤前使炮生效,这样要求炮317及之前生效,暂定为310

大致波长排布如下

此时,ME神之六炮的处理办法是延长核波,但那是因为ME无舞王矿工,因此需要考虑的就是投篮最早投掷(746),这里不行,因此核波也固定为601。

这样加速波就没法动了,那么少的几cs怎么办?

这时候可以考虑引入垫材,由于该冰时机下波长1714时是无垫材的无伤波长,这里只需要垫一下,即可消除最快扶梯对超前置炮的威胁,同时还能垫到巨人。

微调冰波波长与热过渡炮时机后可得

周期大于5001且复用窗口为3475,复用成立

1763冰波炮落点问题

其实只需要全伤巨人就可以了,掏出拦截计算器,

为了收跳跳,落点还是靠左一点(冰波跳跳可是大逆天),因此落点取全伤三行的最左落点8.525列。

(然而其实这样还是会漏跳跳)

这里用渐强测的数据说明一下,这个波长是可以全收跳跳的,但是落点emm(好吧其实就是我懒得测,测出来也不知道是不是和全收巨人冲突,毕竟全收巨人可以直接用拦截计算器)(好吧无法全收三行跳跳和巨人,毕竟表格上面直接就写了,如果为了全收跳跳可以放弃中路巨人,见演示视频)

漏了就用高坚果,这里为了书写方便上下f的高坚果均写在第二波了,防止被巨人砸了然后跳跳偷家

代码块
JavaScript
自动换行
复制代码
OnWave(2, 11){
    At(1) Card(AGJG_23, 1, 2)
};
复制成功

还有一点,四路核弹会漏一路僵尸,用上辣椒就可以解决了。

代码块
JavaScript
自动换行
复制代码
OnWave(13){
    At(401) J(1, 1)
};
复制成功

接下来就是w9/19收尾(我的Excel没法用复用计算器的逐波部分,用了一种离谱的办法,等报错然后在原时机上加上对应数值2333)

代码块
JavaScript
自动换行
复制代码
OnWave(9, 19){
    At(310) PP(),
    At(811) P(3, 9),
    At(926) I(1, 1),
    At(2073) PP(8.5),
    At(2583) P(3, 9),
    At(3876) PP(7) + C(-1, 3)
};
复制成功

w20还需要特殊处理一下,因为有墓碑,因此设计了自动消墓碑的函数,以及收尾炮不够预判炸采用核弹收尾,但是收尾墓碑占核坑怎么办?我的解法是先种小喷,等墓碑出来再铲小喷种核弹(其实脸个2f也可以)

代码块
JavaScript
自动换行
复制代码
void ADealMuBei(){
    for (auto& item : aAlivePlaceItemFilter){
        if (item.Type() == 1){
            ACard(AGRAVE_BUSTER, item.Row() + 1, item.Col() + 1);
            break;
        }
    }
}
复制成功
代码块
JavaScript
自动换行
复制代码
OnWave(20){
    At(300) Shovel(3, 9),
    At(500) N(3, 9),
    At(301) P(3, 9),
    At(600) I(1, 1),
    At(1510) PP(),
    At(1800) P(3, 9),
    At(3884) PP(8)
};
复制成功

最最后就是炮损问题,我在原阵上加了曾(其实还有更好的摆法),过2f就算胜利!

阳光可能会掉,但是无跳跳不用高坚果,无扶梯不用垫材,应该够用。(看着够用就行,管那么多干啥)


完整代码

代码块
JavaScript
自动换行
复制代码
// C7u双冰变奏习题
// NE神之六炮
// 解法依旧是C7u,练习复用计算器的使用,和逐波波长的计算
#include <avz.h>
#include <dsl/shorthand_240205.h>
#include <psdk_inc/_ip_types.h>

bool is_need_use_hblj = false;

ATickRunner use_hblj;

void ADealMuBei(){
    for (auto& item : aAlivePlaceItemFilter){
        if (item.Type() == 1){
            ACard(AGRAVE_BUSTER, item.Row() + 1, item.Col() + 1);
            break;
        }
    }
}

void AScript(){
    // ASetReloadMode(AReloadMode::MAIN_UI_OR_FIGHT_UI);
    ASelectCards({AHBG_14, AM_HBG_14, AHMG_15, AYTZD_2, AHBLJ_20, AXPG_8, AHP_33, ADXG_13, AGJG_23, AMBTSZ_11}, 1);
    ASetZombies({APJ_0, ALZ_2, ACG_3, AWW_8, AXC_15, AQQ_16, AKG_17, ATT_18, AFT_21, ATL_22, ABY_23, AHY_32});
    AConnect(ATime(20, 3884), []{ ADealMuBei(); });
    ATimeline ip_pp = {
        At(11) I(1, 1),
        At(301) P(3, 9),
        At(1563) PP(8.525) + Trig() + Shovel(2, 8) + Shovel(3, 8) + Shovel(4, 8),
        At(302) C(-1, {234, 8}),
    };

    ATimeline pp = {
        At(310) PP() + Trig()
    };

    ATimeline pa = {
        At(310) A(1, 9) + P(4, 9) + Trig(),
    };

    ATimeline n = {
        At(317) N({{2, 9}, {3, 9}, {4, 9}})
    };

    (1_8_wave % 1, 10_11_wave % 4, 12_18_wave % 2) <<= ip_pp | pa | n | pp | ip_pp;

    OnWave(9, 19){
        At(310) PP(),
        At(811) P(3, 9),
        At(926) I(1, 1),
        At(2073) PP(8.5),
        At(2583) P(3, 9),
        At(3876) PP(7) + C(-1, 3)
    };

    OnWave(2, 11){
        At(1) Card(AGJG_23, 1, 2)
    };

    OnWave(13){
        At(401) J(1, 1)
    };

    OnWave(20){
        At(300) Shovel(3, 9),
        At(500) N(3, 9),
        At(301) P(3, 9),
        At(600) I(1, 1),
        At(1510) PP(),
        At(1800) P(3, 9),
        At(3884) PP(8) + Shovel(2, 1)
    };
}
复制成功

网页链接​在此

以上代码可以转载、传播、修改,但请注明出处。


修订版

由于不知道什么原因导致的眼瞎,实际上舞王最早自然召唤为342,炮应于341及之前生效(感谢小何指正)

且阵解中其他数值也会相应发生改变,波长微调后,冰波缩短至1732,但仍需要垫材。

微调后使复用成立的波长如下。

脚本也做出相应调整,代码如下(演示视频)

代码块
JavaScript
自动换行
复制代码
// C7u双冰变奏习题
// NE神之六炮
// 解法依旧是C7u,练习复用计算器的使用,和逐波波长的计算
#include <avz.h>
#include <dsl/shorthand_240205.h>
#include <psdk_inc/_ip_types.h>

bool is_need_use_hblj = false;

ATickRunner use_hblj;

void ADealMuBei(){
    for (auto& item : aAlivePlaceItemFilter){
        if (item.Type() == 1){
            ACard(AGRAVE_BUSTER, item.Row() + 1, item.Col() + 1);
            break;
        }
    }
}

void AScript(){
    ASetGameSpeed(5);
    // ASetReloadMode(AReloadMode::MAIN_UI_OR_FIGHT_UI);
    ASelectCards({AHBG_14, AM_HBG_14, AHMG_15, AYTZD_2, AHBLJ_20, AXPG_8, AHP_33, ADXG_13, AGJG_23, AMBTSZ_11}, 1);
    ASetZombies({APJ_0, ALZ_2, ACG_3, AWW_8, AXC_15, AQQ_16, AKG_17, ATT_18, AFT_21, ATL_22, ABY_23, AHY_32});
    AConnect(ATime(20, 600), []{ ADealMuBei(); });
    ATimeline ip_pp = {
        At(11) I(1, 1),
        At(301) P(3, 9),
        At(1532) PP(8.525) + Trig() + Shovel(2, 8) + Shovel(3, 8) + Shovel(4, 8),
        At(302) C(-1, {234, 8}),
    };

    ATimeline pp = {
        At(341) PP() + Trig()
    };

    ATimeline pa = {
        At(341) A(1, 9) + P(4, 9) + Trig(),
    };

    ATimeline n = {
        At(341) N({{2, 9}, {3, 9}, {4, 9}})
    };

    (1_8_wave % 1, 10_11_wave % 4, 12_18_wave % 2) <<= ip_pp | pa | n | pp | ip_pp;

    OnWave(9, 19){
        At(341) PP(),
        At(842) P(3, 9),
        At(926) I(1, 1),
        At(2073) PP(8.5),
        At(2614) P(3, 9),
        At(3876) PP(7) + C(-1, 3)
    };

    OnWave(2, 11){
        At(1) Card(AGJG_23, 1, 2)
    };

    OnWave(13){
        At(401) J(1, 1)
    };

    OnWave(20){
        At(300) Shovel(3, 9),
        At(500) N(3, 9),
        At(301) P(3, 9),
        At(600) I(1, 1),
        At(1510) PP(),
        At(1800) P(3, 9),
        At(3884) PP(7) + Shovel(1, 2)
    };
}
复制成功

以上代码可以转载、传播、修改,但请注明出处。