|
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: 867 (0x363) Types: TextFile Names: »move.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Othello/move.c«
/* * move.c * * move player to x,y in board */ # include "reversi.h" int offsets[] = { -11, -10, -9, -1, 1, 9, 10, 11, 0 }; move (player, x, y, board) register int player; int x, y; boardT board; { register char *b, *m; register int *o, i; b = & board[x][y]; *b = player; player = -player; for (o = offsets; i = *o++;) { if (b[i] == player) { m = b+i; while (*m == player) m += i; if (*m == -player) { while (m != b) { *m = -player; m -= i; } } } } } legal (player, x, y, board) register int player; int x, y; boardT board; { register char *b, *m; register int *o, i; b = & board[x][y]; player = -player; if (*b == EMPTY) { for (o = offsets; i = *o++;) { if (b[i] == player) { m = b+i; while (*m == player) m += i; if (*m == -player) return 1; } } } return 0; }