diff options
Diffstat (limited to 'FICS')
-rw-r--r-- | FICS/board.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/FICS/board.c b/FICS/board.c index 01ffc03..d0c5913 100644 --- a/FICS/board.c +++ b/FICS/board.c @@ -30,6 +30,7 @@ #include "common.h" #include <err.h> +#include <limits.h> #include "board.h" #include "gamedb.h" @@ -83,6 +84,15 @@ PRIVATE int orient; PRIVATE int forPlayer; PRIVATE int myTurn; +PRIVATE int +brand(void) +{ +#if RAND_MAX < 32767 || RAND_MAX > INT_MAX +#error RAND_MAX unacceptable +#endif + return ((int) arc4random_uniform(RAND_MAX)); +} + PUBLIC int board_init(game_state_t *b, char *category, char *board) { @@ -1175,9 +1185,9 @@ place_piece(board_t b, int piece, int squareColor) while (!placed) { if (squareColor == ANY_SQUARE) { - f = (rand() % 8); + f = (brand() % 8); } else { - f = (rand() % 4) * 2; + f = (brand() % 4) * 2; if (SquareColor(f, r) != squareColor) f++; @@ -1208,14 +1218,14 @@ wild_update(int style) switch (style) { case 1: - if (rand() & 0x01) { + if (brand() & 0x01) { b[4][0] = W_KING; b[3][0] = W_QUEEN; } else { b[3][0] = W_KING; b[4][0] = W_QUEEN; } - if (rand() & 0x01) { + if (brand() & 0x01) { b[4][7] = B_KING; b[3][7] = B_QUEEN; } else { @@ -1262,7 +1272,7 @@ wild_update(int style) for (i = 0; i < 8; i++) { if (b[i][0] != W_KING) { - b[i][0] = (rand() % 4) + 2; + b[i][0] = (brand() % 4) + 2; } } @@ -1279,7 +1289,7 @@ wild_update(int style) for (i = 0; i < 8; i++) { if (b[i][0] != W_KING) - b[i][0] = (rand() % 4) + 2; + b[i][0] = (brand() % 4) + 2; } /* |