Kinasjakk JumpStar

Kinasjakk-AI

JumpStar er verdens sterkeste AI-motor for kinasjakk

Nå på iPhone JumpStar Kinasjakk Spill mot den sterkeste AI-en uten nett, løs daglige oppgaver, få hint og lagre avspillinger.

Bakgrunn

Jeg laget JumpStar til mamma. Prosjektet startet 15. mai 2026 i Indiana, mens jeg hjalp foreldrene mine med å flytte ut av barndomshjemmet vårt. Da vi pakket tingene deres, fant vi det gamle kinasjakkbrettet vårt og begynte å mimre om hvor gøy det var å spille sammen som familie.

Etter at broren min og jeg dro på college, hadde mamma prøvd å finne kinasjakkapper til iPhone så hun kunne fortsette å spille på egen hånd, men ingen av dem var noe særlig. Med suksessene til AlphaGo og Stockfish i tankene tenkte jeg at det sikkert fantes mange sterke AI-motorer for kinasjakk med åpen kildekode – men det gjør det ikke. Til tross for sin popularitet og eleganse hadde kinasjakk fått overraskende lite oppmerksomhet fra AI-miljøet. Det var dette tomrommet som fikk meg til å lage JumpStar.

Målet mitt var å lage den første overmenneskelige AI-motoren for kinasjakk. En sterk datamotstander ville gjøre det mulig for mamma å fortsette å spille også når broren min og jeg ikke var i nærheten. En overmenneskelig AI-motor kan til og med avdekke vakre nye mønstre og strategier i spillet som ennå ikke er allment kjent.

Det er også derfor prosjektet ble offentlig. En sterk privat motor er interessant, men det er vanskelig for andre å vurdere eller forbedre den. Den offentlige benchmarken for kinasjakk-AI gjør arbeidet etterprøvbart: et regelsett, en protokoll, et sett med stillinger, referansemotorer, logger og en navngitt JumpStar-modell som andre systemer kan utfordre.

Det vakre med kinasjakk

Kinasjakk er et kappløp over et stjerneformet brett med seks spisser. Hver spiller starter med en gruppe på ti brikker i én trekant og prøver å være først til å flytte alle brikkene sine inn i trekanten på motsatt side. Spillet kan spilles av to, tre, fire eller seks spillere. Det finnes bare to bevegelser, steg og hopp, og ingen mulighet til å slå brikker. Det er en av grunnene til at brettet føles så levende: enkle bevegelsesregler skaper komplekse trafikkmønstre når spillerne prøver å bygge hoppkjeder og hindre motstanderne i å gjøre det samme.

Til tross for navnet oppstod ikke kinasjakk i Kina, og det er egentlig ikke et damspill. Spillet føres vanligvis tilbake til Stern-Halma, eller stjernehalma, en tysk variant av halma på stjernebrett utgitt i 1892. Det kjente engelske navnet, Chinese Checkers, kom senere gjennom amerikansk markedsføring, og spillet har siden blitt et brettspill som er populært over hele verden.

Slik spiller du kinasjakk

Når det er din tur, flytter du én av brikkene dine. En brikke kan ta et steg til et tomt nabohull, eller hoppe over et tilstøtende opptatt hull og ned i det tomme hullet bak. Hopp kan kjedes sammen, så ett enkelt trekk kan krysse en stor del av brettet hvis avstandene er riktige. Brikker man hopper over, blir stående på brettet. De blir ikke slått.

Målet er å flytte alle brikkene dine inn i trekanten rett overfor starttrekanten din. Godt spill handler ikke bare om å storme fremover. Du må bygge nyttige stiger, unngå å blokkere dine egne brikker, utnytte den trange midten godt og avgjøre når et trekk som ser tregt ut nå, vil gi en raskere rute senere.

Vil du ha et konsentrert oppslagsverk, kan du lese de fullstendige reglene for kinasjakk. Når du er klar til å bli bedre, kan du fortsette med JumpStars guide til strategi og taktikk.

Flytt brikkene dine til trekanten på motsatt side Det faktiske kinasjakkbrettet med 121 hull i startstillingen, der spiller 1 kappes fra den øverste trekanten til målet på motsatt side.
Kappløp over stjernen. Flytt alle brikkene dine inn i trekanten på motsatt side før motstanderen gjør det.
Et enkelt steg Et ekte lovlig første trekk på kinasjakkbrettet: spiller 1 tar et steg fra felt 6 til nabofeltet 15.
Steg til et nabohull. En brikke kan flytte én plass til et hvilket som helst tilstøtende tomt hull.
En hoppkjede Et ekte trekk med tre hopp fra et opprykksparti for Iter57: spiller 1 flytter fra felt 2 via felt 7 og 27 til felt 29.
Kjed sammen hopp. Hopp over opptatte hull, land bak dem, og fortsett å hoppe når geometrien stemmer.

Hvorfor AI for kinasjakk er interessant

Klassiske brettspill har stått sentralt i AI-forskningen i flere tiår. IBMs Deep Blue slo verdensmesteren i sjakk, Garry Kasparov, i 1997. AlphaGo slo Lee Sedol i 2016. Disse spillene ble milepæler fordi sterkt dataspill endret hvordan folk forsto dem.

Kinasjakk har ikke hatt det samme offentlige AI-økosystemet. Sammenlignet med sjakk og go finnes det langt færre motorer, benchmarks, ratinglister, offentlige partiarkiver og felles forskningsverktøy. Det er overraskende, for spillet har akkurat den strukturen AI-systemer liker å studere: fullstendig informasjon, ingen tilfeldighet, en klar vinnerbetingelse og et enormt antall mulige fremtider.

Selv den rolige startstillingen forgrener seg raskt. I JumpStars regelsett for to spillere har startbrettet 14 lovlige førstetrekk. Etter at hver side har flyttet én gang, finnes det 196 mulige sekvenser på to halvtrekk. På dybde tre finnes det 4 760 mulige trekksekvenser fra startstillingen. Senere i partiet gjør hoppkjeder og trange korridorer valgene langt mindre opplagte enn reglene antyder.

Hva JumpStar er

JumpStar er en kinasjakkmotor trent gjennom selvspill, bygd på en kompakt kjerne for regler og søk i C++20, en nevral policy/value-modell og Monte Carlo-tresøk (MCTS). Det sterkeste offentlige sjekkpunktet, JumpStar_60, er nåværende mester i benchmarken CCERL-2P10-v2. Det overraskende er effektiviteten. Alle JumpStar-modellene ble trent på en MacBook M4, ikke på de store TPU/GPU-klyngene man forbinder med banebrytende systemer for go og sjakk.

Ambisjonen er overmenneskelig spill, men den offentlige påstanden er bevisst etterprøvbar: JumpStar ser ut til å være overmenneskelig eller nesten overmenneskelig under regelprofilen for to spillere, og CCERL finnes slik at fremtidige motorer kan utfordre det resultatet.

Systemet

JumpStar er ikke bare et modellsjekkpunkt. Det er en komplett motor- og benchmarkstakk: brettrepresentasjon, regler, søk, selvspill, treningsdata, dommerverktøy og offentlig dokumentasjon.

  • Regler og søk. JumpStar bruker en kompakt bitmap-lignende representasjon av stjernebrettet med 121 hull, strenge regler for to spillere, generering av lovlige steg og flerhoppstrekk, låsing av målet, sjekk av sluttstillinger, deterministisk hashing, enkle referanseboter og en innebygd kampkjører. Regelimplementasjonen er bevisst eksplisitt, fordi kinasjakkmotorer ellers kan utnytte grensetilfeller: å bli stående i hjemme- eller måltrekanter, lage kunstige blokader eller vinne på særheter i dommerprogrammet i stedet for gjennom bedre spill. JumpStars regelprofil skal belønne rent kappløp, sterk geometri og reproduserbart søk fremfor triks for å omgå blokkeringsregler.
  • Trening gjennom selvspill. Selvspill og reanalyse genererer brettstillinger, lovlige handlinger, MCTS-besøkstall, partiresultater og fremdriftsegenskaper. Disse dataene trener en policy/value-modell som styrer neste runde med søk. JumpStar_60 er en geometry_v1, 512x4 MLP med omtrent 10.36M parametere, trent på et reanalysert datasett med 1.8M eksempler. Det praktiske arbeidet besto i å gjøre denne løkken liten og rask nok til å kjøres gang på gang på lokal maskinvare.
  • Offentlig benchmarking. Fordi kinasjakk ikke allerede hadde en moden offentlig rangering av motorer, utviklet jeg CCERL-2P10-v2 parallelt med JumpStar. CCERL definerer regelsettet, motorprotokollen, et fast sett med stillinger, referansemotorer, utgivelsesartefakter og ratingmetodikk. Benchmarken bruker stillinger i par der sidene byttes, og publiserer logger slik at resultatene kan reproduseres i stedet for bare å bli påstått. Det betyr at fremtidige motorer kan utfordre JumpStar under samme dommer i stedet for å sammenligne vage påstander om styrke.

Slik spiller JumpStar kinasjakk

En av de mest interessante kvalitative observasjonene er at JumpStar ofte ikke spiller som en enkel kappløpsheuristikk. I stedet utvikler den sofistikerte strategier, som å bremse motstanderen, beholde nyttige blokkerende brikker og bygge kompakte, trekantlignende formasjoner som begrenser trafikken gjennom viktige korridorer.

Denne stilen er lett å overse hvis man bare ser på kinasjakk som et kappløp fremover. Fordi brikker aldri blir slått, kan en defensiv formasjon ha betydning i mange trekk: den kan sperre en hoppestige, tvinge motstanderen til å ta omveier rundt trengselen eller kjøpe nok tid til at modellens egne brikker kommer i mål. Noen av JumpStars sterkeste ideer handler derfor kanskje om å kontrollere geometrien, ikke bare om å komme raskere frem.

Vinnende åpningsmønster

Avspilling av vinnende åpning En åpningssekvens på åtte trekk der spiller 2s siste hopp er markert.
# Spiller Type Trekk
JumpStars defensive trekantformasjon En stilling fra et ekte parti der JumpStar danner en formasjon i midten som gjør hopp gjennom midten vanskelige og presser motstanderens brikker ut mot kantene.
Steng midten. JumpStar danner ofte to kompakte, trekantlignende fronter som gjør det vanskelig å hoppe gjennom de sentrale korridorene, og presser motstanderens brikker ut mot kantene.
JumpStars lange hoppkjede i sluttspillet En stilling fra et ekte parti der JumpStar plasserer brikkene slik at de danner en lang hoppkjede mot målet på motsatt side.
Avslutt med kjeder. Senere skaper den samme sansen for avstand lange stiger som effektivt får de bakerste brikkene hjem.

Søke- og treningsløkken

Overordnet følger JumpStar AlphaZero-mønsteret: selvspill gir MCTS-besøksmål, disse målene trener en policy/value-modell, og den sterkere modellen styrer neste runde med søk.

selvspill -> MCTS-besøksmål -> policy/value-trening -> sterkere søk -> selvspill

Den praktiske styrken kom av å gjøre denne løkken billig nok til å kjøres gang på gang: innebygde selvspillarbeidere i C++, effektiv trekkgenerering, batchvis evaluering av løvnoder, transposisjoner, gjenbruk av deltrær, kompakte data og utgivelsesbygg optimalisert for lokal Apple-maskinvare.

En stor del av denne komprimeringen kom av å bruke Codex med GPT-5.5 som partner for implementering og forskning. Codex hjalp til med å gå gjennom kodebasen, profilere flaskehalser, skrive om kritiske kodestier, analysere treningslogger, pakke benchmarkkjøringer og holde flere eksperimenttråder i gang samtidig. De viktigste gevinstene var praktiske: store hastighetsforbedringer i selvspill og evaluering, rundt 98 % lavere minnebruk i treningsløpet slik at arbeidet fikk plass på min lokale maskin, og nok automatisering til å fortsette å forbedre motoren mens jeg også hadde fulltidsjobben min som administrerende direktør i Edia.

Prosjektet gikk uvanlig raskt fordi løkken ikke bare var selvspill for modellen; den var også en iterativ ingeniørløkke for systemet rundt den. Codex gjorde det mulig å kjøre et eksperiment, undersøke hvordan det feilet, optimalisere koden, kjøre benchmarken på nytt, oppsummere resultatet og gjøre neste spørsmål om til en konkret kodeendring. Denne tilbakemeldingssyklusen komprimerte arbeid som ellers kunne ha tatt måneder med infrastruktur, verktøy, frontend, benchmark og skriving, til omtrent én uke fra brettet ble funnet til offentlig lansering.

Codex' lokale forbruksregistrering gir et grovt inntrykk av omfanget av samarbeidet. På tvers av prosjekttrådene som er synlige i Codex' lokale tilstandsdatabase, utgjorde registrert tokens_used til sammen omtrent 559.9M tokens. Tallene inkluderer kontekst, verktøyutdata, effekter av bufret kontekst, telling av resonnering og utdata samt overlappende arbeidstråder, så de bør leses som et prosessmål og ikke som en vitenskapelig måling av regnekraft.

CCERL og den offentlige benchmarken

Kinasjakk har ikke en moden offentlig rangering av motorer slik sjakk og go har, og det gjør det vanskelig å vurdere motorers styrke og fremgang. CCERL fyller dette tomrommet. CCERL er den første offentlige benchmarken for å måle styrken til AI-motorer for kinasjakk. Med utgangspunkt i lignende konsepter fra sjakk og go tilbyr CCERL faste regler, kontrollerte startstillinger, parvise sidebytter, nedlastbare partilogger og offentlige referansemotorer.

Basert på CCERL-benchmarkene ser JumpStar ut til å være verdens sterkeste offentlig tilgjengelige AI-motor for kinasjakk, med god margin.

Jeg mener at JumpStar har nådd nesten overmenneskelig styrke i kinasjakk under regelprofilen for to spillere, med regnekraft på MacBook-nivå. Enda viktigere er det at CCERL gir alle fremtidige bidragsytere et mål: endre JumpStar, bygg en ny modell, port en eksisterende motor mer nøyaktig, legg til bedre stillinger eller send inn en utfordrer under samme dommer.

Videre arbeid

JumpStar er ikke ment å være bare en privat bot. Prosjektet prøver å bli fire ting:

  • En sterk offentlig AI-modell. JumpStar har åpen lisens, og dette nettstedet er gratis. Alle kan spille mot JumpStar eller prøve å forbedre den selv. JumpStar ble trent utelukkende på en MacBook M4. Mer regnekraft vil garantert forbedre ytelsen.
  • Offentlig infrastruktur for benchmarking. Sjakk og go har miljøer der motorer kan testes, sammenlignes og forbedres. CCERL gir kinasjakk den samme infrastrukturen: klare regler, reproduserbare kamper, offentlige logger og en vei for andre til å bygge sine egne modeller.
  • Forskning på selve spillet. Sterk AI endrer hva vi kan se. Jeg vil forstå hvordan godt spill ser ut, hvordan åpninger utvikler seg, hvorfor fulle brett oppfører seg som de gjør, og hva som skjer i partier med tre, fire og seks spillere når midten av brettet blir en trafikkork av muligheter.
  • Varianter med flere spillere. Modellen for to spillere er bare begynnelsen. De villeste spørsmålene dukker opp når brettet blir mer folksomt: tre spillere, fire spillere, seks spillere, skiftende allianser, blokkerte veier og merkelige åpninger som oppstår av seg selv. Jeg vil finne ut hvordan sterkt spill ser ut der også, og på brett som er langt større enn standard. Kompleksiteten og mønstrene som dukker opp, kommer til å være fascinerende.

Jeg håper JumpStar får flere til å tenke på kinasjakk, spille det, studere det og bygge videre på det.