binmat
Version:
binmat simulator
20 lines (19 loc) • 834 B
JavaScript
import { StatusCode, Role } from "./shared.js"
function doMovePass(state) {
if (state.turn >= state.turns) return StatusCode.MadeMoveOnFinishedGame
if ((state.turn % 2) + 1 == Role.Defender)
if (state.defenderPassedLastTurn)
for (const card of state.defenderHand.splice(0)) {
let smallestDiscardPile = state.laneDiscardPiles[0]
for (const discardPile of state.laneDiscardPiles.slice(1))
discardPile.length < smallestDiscardPile.length && (smallestDiscardPile = discardPile)
smallestDiscardPile.push(card)
}
else state.defenderPassedLastTurn = !0
else
state.attackerPassedLastTurn ?
state.attackerDiscardPile.push(...state.attackerHand.splice(0))
: (state.attackerPassedLastTurn = !0)
return state.turn++, state.turn == state.turns ? StatusCode.DefenderWin : StatusCode.Ok
}
export { doMovePass }