home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
games
/
volume15
/
reversi2
/
part02
/
move.c
< prev
next >
Wrap
Text File
|
1993-01-27
|
867b
|
60 lines
/*
* 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;
}