Files
Landon Curt Noll 2ba12ecc3c restore *.orig.c to each entry
Under each yyyy/dir there is a file of the form '*.orig.c'
containing the original source code, or as close as we can
get to the original source code.
2023-07-06 21:49:38 -07:00

221 lines
3.5 KiB
C

#include <stdlib.h>
#include <stdio.h>
#define JF 0
#define JG 1
#define JH 2
#define JI 3
#define a(p,q,r,s) s=(p<r)?s:(p=q,s+1)
#define b(p,q,r,s,t,u,v) a(p,q,r,s),a(s,t,u,v)
#define c(p,q,r) for(p=q; p<r; p++)
#define d(p,q,r,s,t,u) for(p=q,s=t; s<u; p++,a(p,q,r,s))
#define e(p,q,r,s,t,u,v,w,x) for(p=q,s=t,v=w; (v<x); p++,b(p,q,r,s,t,u,v))
#define f
#define g(p) ,p
#define h(p) j(p,f,f)
#define i(p,q) j(p,q r,g(r))
#define j(p,q,r) p* N##p(q) { p* s=(p*)malloc(sizeof(p)); s->M=L[J##p]; ((p##0)s->M[0])(s r); U s; }
#define k(p, q) C struct { K* M; q } p
#define l(p) printf(O+p
#define m(p, q) (_->P+(q<<4&0360))[017&p]
#define n void
#define o int
#define A char
#define B const
#define C typedef
#define D C n
#define E C o
#define U return
#define V(p) (p<3)?0:(p<6)?3:6
#define W(p,q,r) ((p)q->M[r])(q)
B A* B O = " %c%s\0\n0 1 2 3 4 5 6 7 8\n\n\0%s\n\0you win\0you: \0%1s\0%d %d\0you lose\0cpu: %c %d %d\n\0 \0";
D (*K)(n);
k(F, o P[00400]; );
k(G, F* Q; B A* R; );
k(H, F* Q; B A* R; );
k(I, F* Q; B A* R; );
D (*F0)(F*);
E (*F1)(F*);
D (*F2)(F*, o, o, o);
E (*F3)(F*, o, o, o);
D (*F4)(F*);
D (*G0)(G*, F*);
E (*G1)(G*);
E (*G2)(G*, o*, o*, o*);
E (*G3)(G*);
D (*H0)(H*, F*);
D (*I0)(I*, F*);
n OOOO(F* _) {
o p;
c(p, 0, 0xFF) _->P[p] = 0;
}
o OOOl(F* _) {
o p, q, r;
e(p, 0, 9, q, 0, 9, r, 1, 10) if(((F3)_->M[3])(_, p, q, r)) U 1;
U 0;
}
n OOlO(F* _, o p, o q, o r) {
m(p,q) = r;
}
o OOll(F* _, o r, o s, o t) {
o u = 0;
if(t > 0 && t < 10 && r >= 0 && r < 9 && s >= 0 && s < 9 && m(r,s) == 0) {
o p, q;
o w = V(r);
o x = V(s);
c(p, 0, 9) if(m(p,s) == t || m(r,p) == t) goto v;
d(p, w, w+3, q, x, x+3) if(m(p,q) == t) goto v;
u = 1;
v: U u;
}
goto v;
}
n OlOO(F* _) {
o p, q;
for(q = 0, l(28)), p = 0; q < 9; p++, q = (p < 9)?q:(p=0,l(0), q+'a', O+((q == 2 || q == 5) ? 27 : 28)),q+1)) {
l(2), m(p,q) == 0 ? '.' : '0' + m(p,q), O+((p == 2 || p==5) ? 82 : 83));
}
l(7));
}
n lOll(G* _, F* p) {
_->Q = p;
_->R = O+6;
}
o OlOl(G* _) {
o p, q, r;
if(((G2)_->M[2])(_, &p, &q, &r)) {
((F2)_->Q->M[2])(_->Q, p, q, r);
U 1;
}
U 0;
}
n OllO(G* _) {
l(30), _->R);
}
n Olll(H* _, F *p) {
lOll((G*)_, p);
_->R = O+34;
}
o lOOO(H* _, o* p, o* q, o* r) {
do {
A s[3];
l(42));
fflush(stdout);
scanf(O+48, s);
if(*s == 'q') U 0; else *q = (*s >= 'a' && *s <= 'i') ? *s - 'a' : 9;
scanf(O+52, p, r);
} while(!((F3)_->Q->M[3])(_->Q, *p, *q, *r));
U 1;
}
n lOOl(I* _, F* p) {
lOll((G*)_, p);
_->R = O+58;
}
o lOlO(I* _, o* p, o* q, o* r) {
o s, t, u;
o v = 0;
o w[01331];
e(s, 0, 9, t, 0, 9, u, 1, 10) if(((F3)_->Q->M[3])(_->Q, s, t, u)) w[v++] = s | (t << 5) | (u << 10);
s = rand() % v;
*p = w[s] & 0x1f;
*q = (w[s] & 0x3e0) >> 5;
*r = (w[s] & 0x7c00) >> 10;
l(67), *q + 'a', *p, *r);
U 1;
}
K M[17] = {
(K)OOOO,
(K)OOOl,
(K)OOlO,
(K)OOll,
(K)OlOO,
(K)0000,
(K)OlOl,
(K)0000,
(K)OllO,
(K)Olll,
(K)OlOl,
(K)lOOO,
(K)OllO,
(K)lOOl,
(K)OlOl,
(K)lOlO,
(K)OllO
} ;
K* L[4] = {
M+0x0,
M+0x5,
M+0x9,
M+0xD
} ;
h(F)
i(G, F*)
i(I, F*)
i(H, F*)
o main(o s, A** t) {
o p = 42;
F* q = 0;
G* r[2] = { 0, 0} ;
if(s-- > 1) {
srand(atoi(t[s]));
U main(s, t);
}
q = NF();
r[0] = (G*)NH(q);
r[1] = (G*)NI(q);
for(p&=1; !(p&4); p&=5) {
W(F4,q,4);
if(W(G1,r[p],1)) {
if(!W(F1,q,1)) {
W(F4,q,4);
W(G3,r[p],3);
p = 4;
}
} else {
p = 4;
}
p++;
}
free((n*)q);
free((n*)r[0]);
free((n*)r[1]);
U 0;
}