fix: resolve pass keyword conflict in move_generator and game_controller

This commit is contained in:
xiaji
2026-05-29 10:09:55 +08:00
parent c1350a3d7b
commit cb4afe0aaa
4 changed files with 59 additions and 8 deletions

View File

@@ -10,10 +10,10 @@ const BEAM_WIDTH := 50
static func generate(hand: Array[Card], current_rank: int, config: RuleConfig) -> Array[HandEvaluator.EvaluatedPlay]:
var results: Array[HandEvaluator.EvaluatedPlay] = []
var pass := HandEvaluator.EvaluatedPlay.new()
pass.type = -1
pass.primary_rank = 0
results.append(pass)
var pass_play := HandEvaluator.EvaluatedPlay.new()
pass_play.type = -1
pass_play.primary_rank = 0
results.append(pass_play)
if hand.is_empty():
return results
var sorted := hand.duplicate(false)

View File

@@ -45,10 +45,10 @@ func handle_human_pass() -> Dictionary:
var old_last := game_state.round.last_non_pass_player()
if old_last >= 0 and old_last == game_state.round.active_player_idx:
return {"ok": false, "error_code": 3, "data": null}
var pass := HandEvaluator.EvaluatedPlay.new()
pass.type = -1
pass.primary_rank = 0
_apply_play(game_state.round.active_player_idx, pass)
var pass_play := HandEvaluator.EvaluatedPlay.new()
pass_play.type = -1
pass_play.primary_rank = 0
_apply_play(game_state.round.active_player_idx, pass_play)
_advance_turn()
return {"ok": true, "error_code": 0, "data": null}

4
tests/hello.gd Normal file
View File

@@ -0,0 +1,4 @@
extends Node
func _ready():
print("hello")
get_tree().quit(0)

47
tests/quick_test.gd Normal file
View File

@@ -0,0 +1,47 @@
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)