|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T a
Length: 1573 (0x625)
Types: TextFile
Names: »autom.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Gomoku/autom.c«
# include "def.h"
/* Scans the tabel who defines the finite automat */
autom(){
register int state, i, way;
short int who, j;
unsigned char *atm;
char (*p)[17], (*t)[17];
unsigned char *newpts;
char *oldpts;
unsigned char *newtht;
char *oldtht;
char max;
for(way = 0; way < 4; way++){
state = 0;
atm = automat[0];
p = tmppts[way];
t = tmptht[way];
for(i = 0; i < 17; i++){
p[0][i] = 0;
p[1][i] = 0;
t[0][i] = 0;
t[1][i] = 0;
}
for(i = 0; i < 17; i++){
switch(hvlr[way][i]){
case ' ':
state = atm[0];
break;
case 'o':
state = atm[1];
who = 0;
break;
case 'x':
state = atm[2];
who = 1;
break;
default:
state = 0;
}
atm = automat[state];
if(atm[3]){
max = 3 * atm[3] + 4;
for(j = 4; j < max; j += 3){
oldpts = &p[who][i - atm[j]];
newpts = &atm[j + 2];
oldtht = &t[who][i - atm[j]];
newtht = &atm[j + 1];
if(*newtht > *oldtht)
*oldtht = *newtht;
if(*newpts > *oldpts)
*oldpts = *newpts;
}
}
}
}
}