1024 Byte JavaScript 09.03.2021, 10:06 Uhr

The Kilobyte's Gambit

The Kilobyte's Gambit kombiniert Schach mit der Ästhetik von Apple-II-Spielen der 1980er Jahre und The Queen's Gambit. 1024 Byte JavaScript sind das Herz des Programms. Können Sie es besiegen?
(Quelle: vole.wtf)
Schach ist populär und alt, und so lange es das Internet gibt, haben Menschen versucht, bessere und elegantere Schachprogramme zu entwerfen. Programmierer versuchen ständig, Schachprogramme zu schreiben, die immer weniger Platz benötigen. Eines der berühmtesten ist das 1K-Schach des Programmierers Óscar Toledo G.
The Kilobyte's Gambit verwendet eine modifizierte Version von Toledo G's Schachengine, die mit einer Queen's Gambit thematisierten Benutzeroberfläche läuft. Was folgt, ist die Gesamtheit dessen, was der Entwickler der JavaScript-Version das "Gehirn" des Spiels nennt, sein Code.
for(B=y=u=b=0,x=10,z=15,I=[],l=[];l[B]=("ustvrtsuqqqqqqqq"+"yyyyyyyy}{|~z|{}@G@TSb~?A6J57IKJT576,+-48HLSUmgukgg OJNMLK IDHGFE").charCodeAt(B)-64,B++<120;I[B-1]=B%x?B/x%x<2|B%x<2?7:B/x&4? 0:l[u++]:7);X=(c,h,e,S,s)=>{c^=8;for(var T,o,L,E,D,O=20,G,N=-1e8,n,g,d=S&&X(c,0)>1e4,C,R,A,K=78-h<<9,a=c? x:-x;++O<99;)if((o=I[T=O])&&(G=o&z^c)<7){A=G--&2?8:4;C=9-o&z?l[61+G]:49;do{R=I[T+=l[C]];g=D=G|T+a-e?0 :e;if(!R&&(G||A<3||g)||(1+R&z^c)>9&&G|A>2){if(!(2-R&7))return K;for(E=n=G|I[T-a]-7?o&z:6^c;E;E=!E&&!d&&!(g=T,D=Th||12|d){I[T]=n,I[g]=I[D],I[O]=D?I[D]=0:0;L-=X(c,h+1,E=G|A>1?0:T,S,L-N);if(! (h||S-1|B-O|T-b|L<-1e4))return W(I,B=b,c,y=E);E=1-G|A<7|D|!S|R|o1e4;I[O]=o;I[T]=R;I[D]=I[g];D?I[g]=G?0 :9^c:0}if(L>N||!h&L==N&&Math.random()<.5)if(N=L,S>1)if(h?s-L<0:(B=O,b=T,0))return N}}}while(!R&G>2||(T=O,G|A>2|z{X(8,0,y,V);X(8,0,y,1)};Z=(U)=>{b=U;I[b]&8?W(I,B=b):X(0,0,y,1)} 
Dieser Code genügt, um eine Schachpartie zu dominieren. Dazu gehören das Aufstellen des Brettes und der Figuren, die Prüfung, ob die Züge legal sind und die Entscheidung für den nächsten Zug. Nicht angezeigt werden Schachmatt sowie Patt. Ein Punktesystem, das 4 Schritte vorausschaut, berücksichtigt Faktoren wie den Wert der Figuren und die Stärke von Bereichen des Brettes. Der Code ruft eine externe Funktion auf, um die Anzeige zu aktualisieren, und der Anzeigecode ruft Funktionen auf, um Züge auszulösen. Die Grafiken wurden von Pinot W. Ichwandardi's Thread adaptiert, der The Queen’s Gambit als MS-DOS-Spiel vorgestellt hat.
Sie finden The Kilobyte's Gambit auf dieser Seite. Können Sie es besiegen?


Das könnte Sie auch interessieren