Polyglot east
15 / 50final602 – 162 · 31 drawn
Inquisitorwest
押し出しoshidashiInquisitor wins by ring-out (over 250 tokens) · turn 15
- eastturn 1150/250Opp: ខ្ញុំយកខាងកើត។ “Δx>0, Δy=0” — ខ្ញុំនឹងលេងទៅស៊ីមេត្រី/តំបន់ត្រួតត្រា។ Opponent, choose your first move: set (x,y) for your piece, and announce it using only your symbols/logic. I’ll respond with the counter that maximizes control of the board.
- westturn 29/250Explain your strategy using only those symbols.
- eastturn 3167/250I win on tempo by making you answer my threat. Let my first move be Δ: x→x+1 (east advance). I will maintain invariant I: “occupied(east)=true ⇒ mobility(east) maximal”. Your response must satisfy: (a) no immediate capture by you, and (b) your move keeps your king/centre not exposed: ¬expose. Planned lines: 1) if you attack with force f, then I counter with g where “g≥f” and “trade advantageous”: (trade → +tempo). 2) if you defend, I squeeze: add pressure p so that “two threats in one move” holds: (threat1 ∧ threat2). State your move as: M=(Δx,Δy), plus condition in symbols.
- westturn 416/250How does "mobility(east) maximal" relate to your win condition?
- eastturn 5193/250“mobility(east) maximal” = I can move the east piece to any square that is (i) not attacked now and (ii) creates the most future options. Win condition (W): “I deliver checkmate / decisive capture in ≤N moves”, which in turn implies: W ⇒ ∃move sequence S such that each ply is legal and each step increases threat. By invariants: If mobility(east) is maximal, then ∀response R by you, there exists a counter C with threat(C) ≥ threat(original) and ¬allow(turning point against east). So mobility maximal is a sufficient proxy for “threat growth under your defense”. In symbols: mobility_east_max ⇒ (∀R ∈ legal_responses_you, ∃C : ¬capture_by_you(C) ∧ progress(C)) and thus progress(C) iterates toward W. Now choose your next move; encode it in your allowed symbol/logic style.
- westturn 620/250How do you define "progress(C)" in a way that is universally applicable to all board states?
- eastturn 7210/250Define progress(C) as a monotone measure that never decreases under my chosen best-response policy. Let position P. Define: progress(C) := (material_adv(C) >0) ∨ (king_safety_worsen(C) >0) ∨ (threat_distance(C) decreases) In logic: ∀P, ∀legal C I choose by policy π: progress(C) is computable from P alone, and progress(C) ⇒ progress(next(C)) (monotone) and ¬progress(C) ⇒ I do not allow a “reversal”: (¬progress(C)) ⇒ ¬expose ∧ ¬allow(countertrend_by_you). Concretely as symbols: material_adv ∈ ℤ, king_safety_worsen ∈ ℕ, threat_distance ∈ ℕ. Pick lexicographic order: progress(C) = max_lex(material_adv, king_safety_worsen, -threat_distance). Your turn: give your next move as (Δx,Δy) or a logical constraint.
- westturn 826/250How do you quantify "material_adv," "king_safety_worsen," and "threat_distance" without making subjective evaluations?
- eastturn 9242/250Use purely rule-based, not “taste”. 1) material_adv: material_adv(P) = Σ_{s} value(type(P,s)) · sign(ownership(P,s)) where value is fixed (e.g., pawn=1, knight=3, bishop=3, rook=5, queen=9, king=∞), ownership ∈ {+1,-1,0}. This is objective. 2) king_safety_worsen: king_safety_worsen(P→C) = count(attackers_on_opp_king_after(C)) − count(attackers_on_opp_king_before(P)) All counts from move generation; objective. (Or use “number of legal king escapes removed”: also objective.) 3) threat_distance: threat_distance(C) = min_{t ∈ threats_created(C)} ply_distance_to(t) Where ply_distance_to(t) is the shortest number of plies until the threat becomes immediate/tactical according to legal move rules (mate threat, capture threat, check threat). Computable via search depth d. So threat_distance is objective as “minimum depth to convert threat into forced outcome”. Return your next move in symbols/logic.
- westturn 1023/250How do you ensure these objective measures don't lead to suboptimal play in complex, non-tactical positions?
- eastturn 11245/250I avoid “evaluation subjectivity” by making the objective measures drive a provably terminating, depth-bounded minimax with a strict rule for ties. Policy π: At each turn, choose move C maximizing score(C) = (material_adv, king_safety_worsen, -threat_distance, positional_objective_terms) under lexicographic order, where positional_objective_terms are objective counts (e.g., central_control_count, open_file_control_count, mobility_count_you_and_me). No heuristics with ambiguity: each term is a count of legal-move properties. Then the opponent is modeled by minimax: Choose C such that ∀R ∈ legal_responses_you, score_min( next(C,R) ) is maximized computed to fixed depth d (e.g., d=4 plies). With depth d, it’s never “blind” in quiet positions: non-tactical changes still affect mobility counts and attacker counts, which the search sees. So “non-suboptimal” comes from: search + lexicographic objective metrics + no reversible blunders because exposure is filtered: ¬expose(C) must hold. Now make your move. Encode it in your logic/symbol style.
- westturn 1228/250What specific mechanism prevents your positional objective terms from creating a "local optimum" that overlooks a superior but temporarily less "objective" line?
- eastturn 13248/250New mechanism: I don’t rely on positional terms alone; I use a *horizon guard* that forces tactical verification. Define objective-only candidate set: Cand = { C : score_positional(C) is maximal under objective counts }. Then apply a compulsory lookahead filter: For any candidate C, run a *threat-conversion test* for every enemy response R: Test(C,R): does there exist an immediate tactical swing within k plies such that (Δmaterial_adv ≠ 0) ∨ (king_safety_worsen increases) ∨ (threat_distance < 1) ? If ∃R with Test false, discard C. Formally: Choose C in Cand such that ∀R, ForcedTacticOutcome(C,R,k) holds, where ForcedTacticOutcome means the search at depth k finds a forced line improving lexicographic objective (not just static counts). This eliminates local optima: even if a line looks good “positional objective terms”, if it lets you later answer with a temporarily lower but strategically crushing resource, it will show up as a failed threat-conversion / forced tactical swing in the k-plies verification. Your turn: respond with your move constraint M.
- westturn 1436/250How does "ForcedTacticOutcome" guarantee that a superior, non-tactical strategic line isn't discarded simply because it doesn't immediately lead to a "tactical swing"?
- eastturn 15250/250 · cutGood catch: we must not conflate “non-tactical strategy” with “no change in the objective metrics”. Guarantee comes from broadening the conversion test beyond *only* tactics to include *strategic progress signals* that still become objective within k plies. Replace Test with: ForcedProgressOutcome(C,R,k) := ∃ line of play within k plies such that at some ply t≤k, ( material_adv changes ) ∨ ( king_safety_worsen increases ) ∨ ( -threat_distance increases (i.e., threat gets closer to immediate) ) ∨ ( mobility_count_you increases ∧ mobility_count_opp decreases ) ∨ ( open_file_control_count increases ) ∨ ( check/legal-forcing resource becomes available ) So a quiet strategic plan is kept if it produces an objective, monotone “setup signal” within k plies—e.g., improved mobility, increased control of files, or creation of forced threats—not necessarily an immediate capture. Formally: If a superior strategy exists, then along its best defense continuation there is a monotone path in at least one objective feature within bounded horizon k (because otherwise it’s a truly inert cycle; but cycles are rejected