Skip to content

AI没有防边云疆的技能【歼敌风行】 #351

@CuteReimu

Description

@CuteReimu

边云疆的技能可以替换对方接收到的情报,在争夺阶段AI并不知道防这个技能。

参考这一段代码即可:

if (sender.skills.any { it is MianLiCangZhen }) { // 邵秀
inFrontOfWhom.messageCards.add(TmpCard(colors))
var valueSender = -1
var valueMe = 0
for (c in sender.cards.filter(Card::isBlack)) {
val v = sender.calculateMessageCardValue(whoseTurn, inFrontOfWhom, c.colors, checkThreeSame)
if (v > valueSender) {
valueSender = v
valueMe = calculateMessageCardValue(whoseTurn, inFrontOfWhom, c.colors, checkThreeSame)
}
}
logger.debug("这是[邵秀]传出的情报,计算[绵里藏针]额外分数为$valueMe")
v1 = merge(v1, valueMe)
inFrontOfWhom.messageCards.removeLast()
}
if (Black in colors && inFrontOfWhom.skills.any { it is YiYaHuanYa }) { // 王魁
inFrontOfWhom.messageCards.add(TmpCard(colors))
var valueInFrontOfWhom = -1
var valueMe = 0
for (c in inFrontOfWhom.cards.filter(Card::isBlack)) {
for (p in listOf(sender, sender.getNextLeftAlivePlayer(), sender.getNextRightAlivePlayer())) {
val v = inFrontOfWhom.calculateMessageCardValue(whoseTurn, p, c.colors, checkThreeSame)
if (v > valueInFrontOfWhom) {
valueInFrontOfWhom = v
valueMe = calculateMessageCardValue(whoseTurn, p, c.colors, checkThreeSame)
}
}
}
v1 = merge(v1, valueMe)
logger.debug("这是[王魁]接收的情报,计算[以牙还牙]额外分数为$valueMe")
inFrontOfWhom.messageCards.removeLast()
}
if (Black !in colors && sender.skills.any { it is ChiZiZhiXin } && sender !== inFrontOfWhom) { // 青年小九
inFrontOfWhom.messageCards.add(TmpCard(colors))
var valueSender = 30
var valueMe = 0
for (c in sender.cards.filter { it.colors.any { c -> c in colors } }) {
val v = sender.calculateMessageCardValue(whoseTurn, sender, c.colors, checkThreeSame)
if (v > valueSender) {
valueSender = v
valueMe = calculateMessageCardValue(whoseTurn, sender, c.colors, checkThreeSame)
}
}
logger.debug("这是[SP小九]传出的情报,计算[赤子之心]额外分数为$valueMe")
v1 = merge(v1, when {
valueSender > 30 -> valueMe
isPartnerOrSelf(sender) -> 20
else -> -20
})
inFrontOfWhom.messageCards.removeLast()
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    AIAI相关good first issue适合新贡献者尝试的问题

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions