|
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 m
Length: 651 (0x28b) Types: TextFile Names: »makemove.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/Sun/Pyramid/makemove.c«
#include "pyramid.h" short table[32768]={ #include "pyramid.table" }; extern Panel_item panel_mes; extern char board[8][5][5]; extern int eofg,depth,nl; extern long seed; move() { int i,j,n,o; n=0;FOR_BOARD(i,j) n+=board[nl][i][j]; if(n==0) {panel_msg("Game is over. I win.");eofg=1;return;} if(n==1) {panel_msg("Game is over. You win!");eofg=1;return;} o=0; FOR_BOARD(i,j) o=2*o+board[nl][i][j]; if(n>depth||table[o]<=0){ n=random()%n; FOR_BOARD(i,j) if(board[nl][i][j]==1&&(n-- ==0))board[nl][i][j]=0; } else{ o=table[o]; for(i=BOARDSIZE-1;i>=0;--i)for(j=i;j>=0;--j){board[nl][i][j]=o%2;o/=2;} } }