home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
games
/
volume15
/
scrabble2
/
patch1
/
patches01
Wrap
Text File
|
1993-01-27
|
23KB
|
827 lines
*** cmove.c.orig Sun Jul 26 11:20:23 1992
--- cmove.c Mon Oct 26 08:17:37 1992
***************
*** 231,237 ****
--- 231,241 ----
tile++;
if( blank > oldbl && tile > 0 ) {
oldbl = blank;
+ #ifdef DBLSIZE_BOARD
+ move( BOARD_UY + sy - 1, BOARD_LX + sx * 2 - 2 );
+ #else
move( BOARD_UY + sy - 1, BOARD_LX + sx - 1 );
+ #endif
refresh();
try_tiles( sx, sy, blank, dir );
}
*** misc.c.orig Tue Sep 22 11:21:51 1992
--- misc.c Mon Oct 26 08:17:38 1992
***************
*** 61,68 ****
}
}
if( rlen > tlen ) {
tlen = rlen;
- wlen[tlen] = wr;
}
strcpy( &words[pt], inp );
wptr[wr++] = pt;
--- 61,68 ----
}
}
if( rlen > tlen ) {
+ for( i = tlen + 1; i <= rlen; i++ ) wlen[i] = wr;
tlen = rlen;
}
strcpy( &words[pt], inp );
wptr[wr++] = pt;
***************
*** 69,76 ****
pt += rlen + 1;
strcpy( tinp, inp );
}
dict_size = pt;
! wlen[16] = wr;
fclose( fp );
}
--- 69,78 ----
pt += rlen + 1;
strcpy( tinp, inp );
}
+ words[pt] = '\0';
+ wptr[wr] = pt;
dict_size = pt;
! for( i = tlen + 1; i < 17; i++ ) wlen[i] = wr;
fclose( fp );
}
***************
*** 111,119 ****
print_board() {
int i, j;
for( i = 1; i < 16; i++ ) {
- move( BOARD_UY + i - 1, BOARD_LX );
for( j = 1; j < 16; j++ ) {
if( board[i][j] >= 'A' ) standout();
if( ( i == b1y && j == b1x ) || ( i == b2y && j == b2x ) )
addch( board[i][j] - 'A' + 'a' );
--- 113,126 ----
print_board() {
int i, j;
+ clear_rect( BOARD_UY, BOARD_LX, BOARD_LY, BOARD_RX );
for( i = 1; i < 16; i++ ) {
for( j = 1; j < 16; j++ ) {
+ #ifdef DBLSIZE_BOARD
+ move( BOARD_UY + i - 1, BOARD_LX + j * 2 - 2 );
+ #else
+ move( BOARD_UY + i - 1, BOARD_LX + j - 1 );
+ #endif
if( board[i][j] >= 'A' ) standout();
if( ( i == b1y && j == b1x ) || ( i == b2y && j == b2x ) )
addch( board[i][j] - 'A' + 'a' );
***************
*** 129,143 ****
int i, j;
clear_rect( TILE_RACKS_Y, TILE_RACKS_X,
! TILE_RACKS_Y + 7, TILE_RACKS_X + 24 );
for( i = 0; i < players; i++ ) {
move( TILE_RACKS_Y + i * 3, TILE_RACKS_X - 4 );
if( plr_skills[i] != 0 ) printw( "(%d)", plr_skills[i] );
! move( TILE_RACKS_Y + i * 3, TILE_RACKS_X );
if( i == human_player )
! printw( "Your tiles:" );
else
! printw( "%s tiles:", you[i] );
for( j = 0; j < 7; j++ ) {
addch( ' ' );
if( plr_tiles[i][j] > 0 ) {
--- 136,150 ----
int i, j;
clear_rect( TILE_RACKS_Y, TILE_RACKS_X,
! TILE_RACKS_Y + 7, TILE_RACKS_X + 19 );
for( i = 0; i < players; i++ ) {
move( TILE_RACKS_Y + i * 3, TILE_RACKS_X - 4 );
if( plr_skills[i] != 0 ) printw( "(%d)", plr_skills[i] );
! move( TILE_RACKS_Y + i * 3, TILE_RACKS_X + 1 );
if( i == human_player )
! printw( " You:" );
else
! printw( "%s:", you[i] );
for( j = 0; j < 7; j++ ) {
addch( ' ' );
if( plr_tiles[i][j] > 0 ) {
***************
*** 150,156 ****
#endif
} else addch( ' ' );
}
! move( TILE_RACKS_Y + i * 3 + 1, TILE_RACKS_X + 5 );
printw( "Score: %3d", plr_scores[i] );
}
move( TILE_RACKS_Y + 12, TILE_RACKS_X - 2 );
--- 157,163 ----
#endif
} else addch( ' ' );
}
! move( TILE_RACKS_Y + i * 3 + 1, TILE_RACKS_X );
printw( "Score: %3d", plr_scores[i] );
}
move( TILE_RACKS_Y + 12, TILE_RACKS_X - 2 );
***************
*** 157,169 ****
i = 0;
if( b1x != 0 ) i++;
if( b2x != 0 ) i++;
! printw( "Blank tiles placed so far: %d", i );
if( b1x != 0 ) {
! move( TILE_RACKS_Y + 13, TILE_RACKS_X + 3 );
printw( "Row %2d, Column %2d (%c)", b1y, b1x, board[b1y][b1x] );
}
if( b2x != 0 ) {
! move( TILE_RACKS_Y + 14, TILE_RACKS_X + 3 );
printw( "Row %2d, Column %2d (%c)", b2y, b2x, board[b2y][b2x] );
}
move( TILE_RACKS_Y + human_player * 3, TILE_RACKS_X - 1 );
--- 164,176 ----
i = 0;
if( b1x != 0 ) i++;
if( b2x != 0 ) i++;
! printw( "Blank tiles placed: %d", i );
if( b1x != 0 ) {
! move( TILE_RACKS_Y + 13, TILE_RACKS_X - 1 );
printw( "Row %2d, Column %2d (%c)", b1y, b1x, board[b1y][b1x] );
}
if( b2x != 0 ) {
! move( TILE_RACKS_Y + 14, TILE_RACKS_X - 1 );
printw( "Row %2d, Column %2d (%c)", b2y, b2x, board[b2y][b2x] );
}
move( TILE_RACKS_Y + human_player * 3, TILE_RACKS_X - 1 );
***************
*** 187,201 ****
break;
}
tiles_left[i]--;
! print_tiles_left( tleft - 1 );
return( i == 26 ? CH_BL : i + 'A' );
}
! print_tiles_left( t )
! int t;
! {
move( TILES_LEFT_Y, TILES_LEFT_X );
! printw( "Tiles left to draw: %3d", t );
}
char get_key() {
--- 194,241 ----
break;
}
tiles_left[i]--;
! print_tiles_left();
return( i == 26 ? CH_BL : i + 'A' );
}
! print_tiles_left() {
! int i, tleft;
!
! tleft = 0;
! for( i = 0; i < 27; i++ )
! tleft += tiles_left[i];
!
move( TILES_LEFT_Y, TILES_LEFT_X );
! printw( "Tiles left to draw: %3d", tleft );
! }
!
! print_passed_turns() {
! if( game_done == 0 ) clear_rect( 1, 50, 1, 79 );
! else {
! move( 1, 63 );
! printw( "Passed turns: %d", game_done );
! }
! refresh();
! }
!
! print_whos_move( plr ) {
! clear_turn();
! printw( "*** %s turn to play ", your[plr] );
! }
!
! print_version() {
! clear();
! printw( "*** SCRABBLE 1.30 ***\n\n" );
! }
!
! screen_redraw() {
! print_version();
! print_info();
! print_board();
! print_tiles_left( tiles_left );
! print_passed_turns();
! print_tiles();
! print_whos_move( human_player );
}
char get_key() {
*** pmove.c.orig Wed Aug 19 11:58:07 1992
--- pmove.c Mon Oct 26 08:17:39 1992
***************
*** 12,22 ****
char c;
int xpos, ypos, done;
! xpos = BOARD_LX;
! ypos = BOARD_UY;
for( ;; ) {
clear_prompt();
! printw( " Use the 'hjkl' keys to move the cursor.\n" );
printw( " Press <RETURN> on an empty square to start placing tiles on the board.\n" );
printw( " Press <SPACE> to rearrange your tiles.\n" );
printw( " Press '.' to use your turn to draw new tiles.\n" );
--- 12,22 ----
char c;
int xpos, ypos, done;
! xpos = 1;
! ypos = 1;
for( ;; ) {
clear_prompt();
! printw( " Use the 'hjkl' keys to move the cursor, and control-L to refresh the screen.\n" );
printw( " Press <RETURN> on an empty square to start placing tiles on the board.\n" );
printw( " Press <SPACE> to rearrange your tiles.\n" );
printw( " Press '.' to use your turn to draw new tiles.\n" );
***************
*** 23,47 ****
refresh();
done = 0;
do {
! move( ypos, xpos );
refresh();
c = get_key();
switch( c ) {
case 'H':
! if( xpos > BOARD_LX ) xpos--;
break;
case 'L':
! if( xpos < BOARD_RX ) xpos++;
break;
case 'J':
! if( ypos < BOARD_LY ) ypos++;
break;
case 'K':
! if( ypos > BOARD_UY ) ypos--;
break;
case '\n':
! if( board[ypos - BOARD_UY + 1][xpos - BOARD_LX + 1] < 'A' )
! done = place_tiles( xpos, ypos );
break;
case ' ':
done = rearrange_tiles();
--- 23,50 ----
refresh();
done = 0;
do {
! #ifdef DBLSIZE_BOARD
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos * 2 - 2 );
! #else
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos - 1 );
! #endif
refresh();
c = get_key();
switch( c ) {
case 'H':
! if( xpos > 1 ) xpos--;
break;
case 'L':
! if( xpos < 15 ) xpos++;
break;
case 'J':
! if( ypos < 15 ) ypos++;
break;
case 'K':
! if( ypos > 1 ) ypos--;
break;
case '\n':
! if( board[ypos][xpos] < 'A' ) done = place_tiles( xpos, ypos );
break;
case ' ':
done = rearrange_tiles();
***************
*** 49,54 ****
--- 52,61 ----
case '.':
done = draw_new_tiles();
break;
+ case '':
+ screen_redraw();
+ done = -1;
+ break;
}
} while( done == 0 );
if( done == 1 ) break;
***************
*** 83,89 ****
show_instructions();
placed = 0;
for( ;; ) {
! move( ypos, xpos );
refresh();
c = get_key();
if( c == '-' || c == 127 || c == 8 ) {
--- 90,100 ----
show_instructions();
placed = 0;
for( ;; ) {
! #ifdef DBLSIZE_BOARD
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos * 2 - 2 );
! #else
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos - 1 );
! #endif
refresh();
c = get_key();
if( c == '-' || c == 127 || c == 8 ) {
***************
*** 92,99 ****
do {
xpos -= xinc;
ypos -= yinc;
! } while( board[ypos - BOARD_UY + 1][xpos - BOARD_LX + 1] >= 'A' );
! move( ypos, xpos );
addch( newlet[placed].oldlet );
plr_tiles[human_player][newlet[placed].tilepos]
= newlet[placed].letter;
--- 103,114 ----
do {
xpos -= xinc;
ypos -= yinc;
! } while( board[ypos][xpos] >= 'A' );
! #ifdef DBLSIZE_BOARD
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos * 2 - 2 );
! #else
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos - 1 );
! #endif
addch( newlet[placed].oldlet );
plr_tiles[human_player][newlet[placed].tilepos]
= newlet[placed].letter;
***************
*** 103,110 ****
do {
xpos -= xinc;
ypos -= yinc;
! } while( board[ypos - BOARD_UY + 1][xpos - BOARD_LX + 1] >= 'A' );
! move( ypos, xpos );
addch( newlet[placed].oldlet );
plr_tiles[human_player][newlet[placed].tilepos]
= newlet[placed].letter;
--- 118,129 ----
do {
xpos -= xinc;
ypos -= yinc;
! } while( board[ypos][xpos] >= 'A' );
! #ifdef DBLSIZE_BOARD
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos * 2 - 2 );
! #else
! move( BOARD_UY + ypos - 1, BOARD_LX + xpos - 1 );
! #endif
addch( newlet[placed].oldlet );
plr_tiles[human_player][newlet[placed].tilepos]
= newlet[placed].letter;
***************
*** 191,197 ****
} else press_return();
show_instructions();
} else {
! if( xpos > BOARD_RX || ypos > BOARD_LY ) continue;
tile = -1;
for( i = 0; i < 7; i++ ) {
if( c == plr_tiles[human_player][i] ) tile = i;
--- 210,216 ----
} else press_return();
show_instructions();
} else {
! if( xpos > 15 || ypos > 15 ) continue;
tile = -1;
for( i = 0; i < 7; i++ ) {
if( c == plr_tiles[human_player][i] ) tile = i;
***************
*** 203,212 ****
newlet[placed].blankchar = c;
newlet[placed].letter = plr_tiles[human_player][tile];
plr_tiles[human_player][tile] = 0;
! newlet[placed].x = xpos - BOARD_LX + 1;
! newlet[placed].y = ypos - BOARD_UY + 1;
! newlet[placed].oldlet =
! board[ypos - BOARD_UY + 1][xpos - BOARD_LX + 1];
if( newlet[placed].oldlet == CH_DW ) newlet[placed].oldlet = 'o';
newlet[placed].tilepos = tile;
addch( newlet[placed].letter );
--- 222,230 ----
newlet[placed].blankchar = c;
newlet[placed].letter = plr_tiles[human_player][tile];
plr_tiles[human_player][tile] = 0;
! newlet[placed].x = xpos;
! newlet[placed].y = ypos;
! newlet[placed].oldlet = board[ypos][xpos];
if( newlet[placed].oldlet == CH_DW ) newlet[placed].oldlet = 'o';
newlet[placed].tilepos = tile;
addch( newlet[placed].letter );
***************
*** 213,220 ****
do {
xpos += xinc;
ypos += yinc;
! } while( board[ypos - BOARD_UY + 1][xpos - BOARD_LX + 1] >= 'A'
! && xpos <= BOARD_RX && ypos <= BOARD_LY );
print_tiles();
placed++;
}
--- 231,237 ----
do {
xpos += xinc;
ypos += yinc;
! } while( board[ypos][xpos] >= 'A' && xpos <= 15 && ypos <= 15 );
print_tiles();
placed++;
}
*** score.c.orig Tue Aug 4 11:26:00 1992
--- score.c Mon Oct 26 08:17:42 1992
***************
*** 98,103 ****
--- 98,104 ----
f = wlen[strlen( word )];
l = wlen[strlen( word ) + 1] - 1;
+ if( f > l ) return( 0 );
found = 0;
do {
m = ( f + l ) / 2;
***************
*** 143,148 ****
--- 144,150 ----
}
printw( "%s ", word );
score += new_words[i].score;
+ xloc += strlen( word ) + 2;
if( bin_search( word ) == 0 ) {
ind[illword++] = i;
}
***************
*** 156,163 ****
}
for( i = 0; i < illword; i++ ) {
clear_rect( 21, 0, 22, 79 );
printw( " %s is not in the computer's dictionary.\n",
! &(new_words[i].letters[0]) );
printw( " Is it a valid Scrabble word (y/n)? " );
refresh();
do {
--- 158,166 ----
}
for( i = 0; i < illword; i++ ) {
clear_rect( 21, 0, 22, 79 );
+ j = ind[i];
printw( " %s is not in the computer's dictionary.\n",
! &(new_words[j].letters[0]) );
printw( " Is it a valid Scrabble word (y/n)? " );
refresh();
do {
***************
*** 166,174 ****
if( c == 'N' ) break;
clear_rect( 21, 0, 22, 79 );
printw( " Inserting %s into the dictionary...",
! &(new_words[i].letters[0]) );
refresh();
! add_dict( &(new_words[i].letters[0]) );
dict_changed = 1;
}
clear_rect( 21, 0, 22, 79 );
--- 169,177 ----
if( c == 'N' ) break;
clear_rect( 21, 0, 22, 79 );
printw( " Inserting %s into the dictionary...",
! &(new_words[j].letters[0]) );
refresh();
! add_dict( &(new_words[j].letters[0]) );
dict_changed = 1;
}
clear_rect( 21, 0, 22, 79 );
***************
*** 246,258 ****
for( p1 = wlen[l];
p1 < wlen[l + 1] && strcmp( word, &(words[wptr[p1]]) ) > 0;
p1++ );
! for( p2 = dict_size - 1; p2 >= wptr[p1]; p2-- ) words[p2 + l + 1] = words[p2];
! for( p2 = wlen[16]; p2 > p1; p2-- ) wptr[p2] = wptr[p2 - 1] + l + 1;
for( i = l + 1; i < 17; i++ ) wlen[i]++;
strcpy( &(words[wptr[p1]]), word );
dict_size += l + 1;
/* printw( "\n " );
! for( p2 = p1 - 2; p2 < p1 + 3; p2++ )
printw( "%s ", &(words[wptr[p2]]) );
printw( "%s %s", &(words[wptr[wlen[8]]]), &(words[wptr[wlen[16] - 1]]) );
press_return(); */
--- 249,261 ----
for( p1 = wlen[l];
p1 < wlen[l + 1] && strcmp( word, &(words[wptr[p1]]) ) > 0;
p1++ );
! for( p2 = dict_size; p2 >= wptr[p1]; p2-- ) words[p2 + l + 1] = words[p2];
! for( p2 = wlen[16] + 1; p2 > p1; p2-- ) wptr[p2] = wptr[p2 - 1] + l + 1;
for( i = l + 1; i < 17; i++ ) wlen[i]++;
strcpy( &(words[wptr[p1]]), word );
dict_size += l + 1;
/* printw( "\n " );
! for( p2 = ( p1 - 2 >= 0 ? p1 - 2 : 0 ); p2 < p1 + 3 && p2 <= wlen[16]; p2++ )
printw( "%s ", &(words[wptr[p2]]) );
printw( "%s %s", &(words[wptr[wlen[8]]]), &(words[wptr[wlen[16] - 1]]) );
press_return(); */
*** scrab.h.orig Tue Sep 15 13:42:33 1992
--- scrab.h Mon Oct 26 08:17:45 1992
***************
*** 19,35 ****
#define CH_BL '*'
#define CH_IT '_'
- #define BOARD_UY 2
- #define BOARD_LY 16
- #define BOARD_LX 34
- #define BOARD_RX 48
#define INFO_Y 2
#define INFO_X 0
#define TILE_RACKS_Y 2
! #define TILE_RACKS_X 54
#define TILES_LEFT_Y 0
#define TILES_LEFT_X 57
/* #define PRINT_CPU_TILES */
#define DICT_FILE "scrabbledict"
--- 19,45 ----
#define CH_BL '*'
#define CH_IT '_'
#define INFO_Y 2
#define INFO_X 0
#define TILE_RACKS_Y 2
! #define TILE_RACKS_X 59
#define TILES_LEFT_Y 0
#define TILES_LEFT_X 57
+
/* #define PRINT_CPU_TILES */
+ /* #define DBLSIZE_BOARD */
+
+ #ifdef DBLSIZE_BOARD
+ #define BOARD_UY 2
+ #define BOARD_LY 16
+ #define BOARD_LX 25
+ #define BOARD_RX 53
+ #else
+ #define BOARD_UY 2
+ #define BOARD_LY 16
+ #define BOARD_LX 32
+ #define BOARD_RX 46
+ #endif
#define DICT_FILE "scrabbledict"
*** scrabble.6.orig Wed Sep 16 12:46:16 1992
--- scrabble.6 Mon Oct 26 08:17:46 1992
***************
*** 1,5 ****
! .\" @(#)scrabble.6 1.02 92/09/16 JAC
! .TH SCRABBLE 6 "16 September 1992"
.SH NAME
scrabble \- play the Scrabble(TM) board game
.SH SYNOPSIS
--- 1,5 ----
! .\" @(#)scrabble.6 1.03 92/09/16 JAC
! .TH SCRABBLE 6 "5 October 1992"
.SH NAME
scrabble \- play the Scrabble(TM) board game
.SH SYNOPSIS
***************
*** 7,13 ****
.SH DESCRIPTION
.LP
.B scrabble
! is a computer version of the Selchow & Righter board game, Scrabble.
Only one human player plays; the user may select the number of
computer opponents, from one to three.
.SH BASIC SCRABBLE RULES
--- 7,13 ----
.SH DESCRIPTION
.LP
.B scrabble
! is a computer version of the Milton Bradley board game, Scrabble.
Only one human player plays; the user may select the number of
computer opponents, from one to three.
.SH BASIC SCRABBLE RULES
***************
*** 241,246 ****
--- 241,250 ----
l
Moves the cursor right. If the cursor is on the right edge
of the board, this key has no effect.
+ .TP
+ ^L
+ Redraws the screen. This is provided in case the screen
+ should somehow become corrupted.
.TP
RETURN
Starts placing tiles on the board. If the cursor is over
*** smain.c.orig Tue Sep 15 13:45:37 1992
--- smain.c Mon Oct 26 08:17:43 1992
***************
*** 76,96 ****
move( INFO_Y + 5, INFO_X + 2 );
printw( "%c: Blank tile", CH_BL );
move( INFO_Y + 7, INFO_X );
! printw( "Tile values & distributions:" );
move( INFO_Y + 8, INFO_X + 2 );
! printw( "A-1, 9 H-4, 2 O-1, 8 V-4, 2" );
move( INFO_Y + 9, INFO_X + 2 );
! printw( "B-3, 2 I-1, 9 P-3, 2 W-4, 2" );
move( INFO_Y +10, INFO_X + 2 );
! printw( "C-3, 2 J-8, 1 Q10, 1 X-8, 1" );
move( INFO_Y +11, INFO_X + 2 );
! printw( "D-2, 4 K-5, 1 R-1, 6 Y-4, 2" );
! move( INFO_Y +12, INFO_X + 2 );
! printw( "E-1,12 L-1, 4 S-1, 4 Z10, 1" );
move( INFO_Y +13, INFO_X + 2 );
! printw( "F-4, 2 M-3, 2 T-1, 6 %c-0, 2", CH_BL );
move( INFO_Y +14, INFO_X + 2 );
! printw( "G-2, 3 N-1, 6 U-1, 4" );
refresh();
}
--- 76,96 ----
move( INFO_Y + 5, INFO_X + 2 );
printw( "%c: Blank tile", CH_BL );
move( INFO_Y + 7, INFO_X );
! printw( "Tile distribs & values:" );
move( INFO_Y + 8, INFO_X + 2 );
! printw( "9A1 2H4 8O1 2V4" );
move( INFO_Y + 9, INFO_X + 2 );
! printw( "2B3 9I1 2P3 2W4" );
move( INFO_Y +10, INFO_X + 2 );
! printw( "2C3 1J8 1Q10 1X8" );
move( INFO_Y +11, INFO_X + 2 );
! printw( "4D2 1K5 6R1 2Y4" );
! move( INFO_Y +12, INFO_X + 1 );
! printw( "12E1 4L1 4S1 1Z10" );
move( INFO_Y +13, INFO_X + 2 );
! printw( "2F4 2M3 6T1 2%c0", CH_BL );
move( INFO_Y +14, INFO_X + 2 );
! printw( "3G2 6N1 4U1" );
refresh();
}
***************
*** 144,150 ****
if( j == 4 ) strcpy( cs, "fourth" );
printw( "\n You will play %s.", cs );
human_player = j - 1;
! print_tiles_left( 100 );
press_return();
clear_prompt();
refresh();
--- 144,150 ----
if( j == 4 ) strcpy( cs, "fourth" );
printw( "\n You will play %s.", cs );
human_player = j - 1;
! print_tiles_left();
press_return();
clear_prompt();
refresh();
***************
*** 300,313 ****
int i;
set_up_window();
! clear();
! printw( "*** SCRABBLE 1.21 ***\n\n" );
read_words();
dict_changed = 0;
! clear();
! printw( "*** SCRABBLE 1.21 ***\n\n" );
init_board();
seed_random();
--- 300,311 ----
int i;
set_up_window();
! print_version();
read_words();
dict_changed = 0;
! print_version();
init_board();
seed_random();
***************
*** 319,326 ****
abort = 0;
do {
for( plr = 0; plr < players; plr++ ) {
! clear_turn();
! printw( "*** %s turn to play ", your[plr] );
if( plr == human_player ) {
player_move();
} else {
--- 317,323 ----
abort = 0;
do {
for( plr = 0; plr < players; plr++ ) {
! print_whos_move( plr );
if( plr == human_player ) {
player_move();
} else {
***************
*** 327,338 ****
computer_move( plr );
}
if( abort != 0 ) break;
! if( game_done == 0 ) clear_rect( 1, 50, 1, 79 );
! else {
! move( 1, 64 );
! printw( "Passed turns: %d", game_done );
! }
! refresh();
if( game_done == players ) break;
for( i = 0; i < 7; i++ )
if( plr_tiles[plr][i] != 0 ) break;
--- 324,330 ----
computer_move( plr );
}
if( abort != 0 ) break;
! print_passed_turns();
if( game_done == players ) break;
for( i = 0; i < 7; i++ )
if( plr_tiles[plr][i] != 0 ) break;
*** /dev/null Mon Oct 26 08:10:12 1992
--- CHANGES Mon Oct 26 08:19:02 1992
***************
*** 0 ****
--- 1,53 ----
+ Here is a list of people who suggested changes to scrabble, followed by my
+ responses to them
+
+
+ 1. alainc%tollys.UUCP%bnrmtl.UUCP@Larry.McRCIM.McGill.EDU (Alain Caron)
+ was trying to get scrabble to work with a french dictionary, and there were
+ bugs in the dictionary insertion routine. They have now been fixed.
+ These bugs were quite serious.
+
+ 2. "Bradley D. Keister" <keister@poincare.phys.cmu.edu> noticed some problems
+ once with how scrabble was displayed on his screen. As well, Nick Sayer
+ <mrapple@quack.sac.ca.us> recommended that a redraw screen key be added.
+
+ Now, the screen may be redrawn by pressing ctrl-L when it is the human
+ player's turn. It may only be used when moving around the board with the
+ 'hjkl' keys; if you are placing tiles or anything else, you must press ESC
+ before pressing ctrl-L. As well, it cannot be redrawn when the computer
+ players are playing. The justification for this is that, the computer play-
+ ers don't actually care about the screen layout when they're playing a move
+ whereas the human player does. Thus, it seemed acceptable that only during
+ the human player's turn may the screen be redrawn.
+
+ 3. wixer!cb@cs.utexas.edu (Cyberspace Buddha) recommended the use of the
+ Official Scrabble Players' Dictionary with scrabble. He tells me a copy
+ may be obtained from
+
+ Christopher Hall
+ P.O. Box 26025
+ Austin, Tx 78755-0025
+
+ FidoNet : 1:382/29.4
+ CompuServe : 72150,752
+
+ 4. Nick Sayer <mrapple@quack.sac.ca.us> recommended that the board width be
+ doubled, partly to make the board look more square, and partly to allow
+ reverse-video to be displayed on "magic-cookie" type terminals.
+
+ Now, the file scrab.h has a preprocessor directive which may be uncommented:
+
+ /* #define DBLSIZE_BOARD */
+
+ If this directive is uncommented, the board width doubles. Otherwise, it
+ remains as narrow as in V1.21. I prefer the narrow board, myself.
+
+ 5. sthomas@serene.clipper.ingr.com (Steve Thomas) points out that, in fact,
+ Selchow and Righter no longer own the rights to scrabble. Depending on the
+ country, the rights are now owned by Milton Bradley or JW Spear & Sons.
+
+ As well, Steve had a number of good suggestions for improving the computer
+ players' speed. He recommended a form of rack management, and he directed
+ me to an article by Appel & Jacobson about how to improve the computer. I
+ have not implemented his suggestions yet. Maybe later...
+