Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

孙守谟技改后AI有待优化 #323

Open
CuteReimu opened this issue Jan 8, 2025 · 0 comments
Open

孙守谟技改后AI有待优化 #323

CuteReimu opened this issue Jan 8, 2025 · 0 comments
Labels
AI AI相关 good first issue 适合新贡献者尝试的问题

Comments

@CuteReimu
Copy link
Owner

CuteReimu commented Jan 8, 2025

- 孙守谟【详尽思索】:当一名角色传出情报时,你可以指定一名角色。若其本回合成功接收了情报,你摸一张牌。
+ 孙守谟【详尽思索】:当一名角色传出情报时,你可以指定一名角色。本回合你不能使用【截获】【误导】。若其本回合成功接收了情报,你摸一张牌。

孙守谟的技能调整后,决定是否发技能的逻辑有待优化,现在经常并不能做出正确决策。

val whoseTurn = event.whoseTurn
val sender = event.sender
val target = event.targetPlayer
if (sender.isEnemy(r) && sender.willWin(whoseTurn, sender, event.messageCard))
return@skillXiangJinSiSuoATos
if (target.isEnemy(r) && target.willWin(whoseTurn, target, event.messageCard))
return@skillXiangJinSiSuoATos
val availablePlayers = arrayListOf(target)
if (event.dir == Up && !event.lockedPlayers.any { it === target }) {
val v1 = target.calculateMessageCardValue(whoseTurn, target, event.messageCard, sender = sender)
val v2 = target.calculateMessageCardValue(whoseTurn, sender, event.messageCard, sender = sender)
if (v1 < v2)
availablePlayers[0] = sender
}
if (!r.cannotPlayCard(Jie_Huo) && r.cards.any { r.canUseCardTypes(Jie_Huo, it).first }) {
availablePlayers.add(r)
}
if (!r.cannotPlayCard(Wu_Dao) && r.cards.any { r.canUseCardTypes(Wu_Dao, it).first }) {
availablePlayers.add(availablePlayers[0].getNextLeftAlivePlayer())
availablePlayers.add(availablePlayers[0].getNextRightAlivePlayer())
}
var v = Int.MIN_VALUE
var bestTarget = availablePlayers[0]
for ((i, t) in availablePlayers.withIndex()) {
var v1 = r.calculateMessageCardValue(whoseTurn, t, event.messageCard, sender = sender)
if (i > 0) v1 -= 10
if (v1 > v) {
v = v1
bestTarget = t
}
}
if (bestTarget !== sender && bestTarget !== target)
return@skillXiangJinSiSuoATos
enable = true
targetPlayerId = r.getAlternativeLocation(bestTarget.location)

@CuteReimu CuteReimu added the AI AI相关 label Jan 8, 2025
@CuteReimu CuteReimu added the good first issue 适合新贡献者尝试的问题 label Jan 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AI AI相关 good first issue 适合新贡献者尝试的问题
Projects
None yet
Development

No branches or pull requests

2 participants