extends Node func _ready(): print("=== Guandan Card Game - Core Logic Test ===\n") var config := RuleConfig.standard() var deck := Deck.create(42) print("Deck: %d cards" % deck.remaining()) assert(deck.remaining() == 108, "deck size") deck = Deck.create(42) deck.deal(108) assert(deck.remaining() == 0, "deal all") var d1 := Deck.create(42) var d2 := Deck.create(42) var h1 := d1.deal(27) var h2 := d2.deal(27) var deterministic := true for i in range(27): if h1[i].card_id != h2[i].card_id: deterministic = false assert(deterministic, "shuffle deterministic") var gs := GameState.create(config, 42) assert(gs.current_rank == 2, "start level 2") var t := Actions.Team.create_team(0, 0, 2) assert(t.teammate_of(0) == 2, "teammate") var l1 := L1BasicAI.new() var hand: Array = [h1[0]] var decision := l1.decide(hand, [], 5, config) assert(decision.type != -2, "L1 AI returns valid result") var l2 := L2RuleAI.new() var decision2 := l2.decide(hand, [], 5, config) assert(decision2.type != -2, "L2 AI returns valid result") print("\n=== ALL TESTS PASSED ===") get_tree().quit(0) func assert(condition: bool, name: String): if condition: print(" PASS: %s" % name) else: printerr(" FAIL: %s" % name) get_tree().quit(1)