Thread View: gnu.chess
1 messages
1 total messages
Started by Longshot
Fri, 05 Apr 1991 22:56
Minor changes to 3.1
Author: Longshot
Date: Fri, 05 Apr 1991 22:56
Date: Fri, 05 Apr 1991 22:56
346 lines
9432 bytes
9432 bytes
I have made a few changes to the display-oriented files in gnuchess 3.1.
A summary and patch'able diffs follows.
Randy
SUMMARY
+ Fixed bug in ListGame() that listed White's first move on
a line by itself, with incorrect indention, followed by lines
of Black move in left column and White in right column. This
was giving Black's nth move on the same lines as White's
(n+1)th.
+ Added functionality to name of list file, as per encouragement
of fellow enthusiast. A call to ListGame() now confirms player's
desire to produce a listing, then asks for a file name, allowing
chess.lst as a default. This allows more friendly interface to
having several listings lying around, and removes the chance that
a "quit" command will accidentally overwrite a desired existing
chess.lst.
+ Added a call to refresh() in the quit sequence. The program was
moving the cursor to the bottom left corner of the screen, but
with out the call to refresh(), it was not actually being carried
out on-screen. Personally, quitting the game with the cursor
in the middle of the board, halfway up my screen, was darn
annoying.
These changes do not affect the game's skill or play. It is up to the
authors as to whether they are included in the next release.
Feed the following to "patch -p0" in the directory where your source
resides:
---CUT------CUT------CUT------CUT------CUT------CUT------CUT------CUT---
*** nondsp.c~ Fri Apr 5 16:34:12 1991
--- nondsp.c Fri Apr 5 16:20:09 1991
***************
*** 691,705 ****
f = GameList[i].gmove >> 8;
t = (GameList[i].gmove & 0xFF);
algbr (f, t, false);
if ((i % 2) == 0)
fprintf (fd, " ");
else
fprintf (fd, "\n");
- fprintf (fd, "%5s %5d %2d %7ld %5d", mvstr[0],
- GameList[i].score, GameList[i].depth,
- GameList[i].nodes, GameList[i].time);
}
- fprintf (fd, "\n\n");
fclose (fd);
}
--- 691,704 ----
f = GameList[i].gmove >> 8;
t = (GameList[i].gmove & 0xFF);
algbr (f, t, false);
+ fprintf (fd, "%5s %5d %2d %7ld %5d", mvstr[0],
+ GameList[i].score, GameList[i].depth,
+ GameList[i].nodes, GameList[i].time);
if ((i % 2) == 0)
fprintf (fd, " ");
else
fprintf (fd, "\n");
}
fclose (fd);
}
*** nuxdsp.c~ Fri Apr 5 16:34:03 1991
--- nuxdsp.c Fri Apr 5 16:27:58 1991
***************
*** 128,137 ****
--- 128,138 ----
{
ListGame ();
gotoXY (1, 24);
#ifndef MSDOS
nocrmode ();
+ refresh();
endwin ();
#endif /* MSDOS */
exit (0);
}
***************
*** 1133,1176 ****
void
ListGame (void)
{
FILE *fd;
char fname[256];
! char *tmp;
short i, f, t;
if (tmp = getenv ("HOME"))
strcpy (fname, tmp);
else
fname[0] = '\0';
strcat (fname, "/chess.lst");
if (fd = fopen (fname, "w"))
ShowMessage ("Writing ~/chess.lst");
else
{
ShowMessage ("Cannot write ~/chess.lst");
return;
}
fprintf (fd, "\n");
fprintf (fd, " score depth nodes time ");
fprintf (fd, " score depth nodes time\n");
for (i = 1; i <= GameCnt; i++)
{
f = GameList[i].gmove >> 8;
t = (GameList[i].gmove & 0xFF);
algbr (f, t, false);
if ((i % 2) == 0)
fprintf (fd, "\n");
else
fprintf (fd, " ");
- fprintf (fd, "%5s %5d %2d %7ld %5d", mvstr[0],
- GameList[i].score, GameList[i].depth,
- GameList[i].nodes, GameList[i].time);
}
- fprintf (fd, "\n\n");
fclose (fd);
ShowMessage ("~/chess.lst written");
}
void
--- 1134,1206 ----
void
ListGame (void)
{
FILE *fd;
char fname[256];
! char *tmp,y_or_n_p,tmp2[256];
short i, f, t;
+ ShowMessage("List game? (y or n) ");
+ y_or_n_p = getchar();
+ ShowMessage(" ");
+ if ((y_or_n_p == 'n') || (y_or_n_p == 'N')) return;
+
+ bzero(tmp2,256);
+ ShowMessage("As: (~/chess.lst) ");
+ scanz("%s",tmp2);
+
+ if (strlen(tmp2) == 0)
+ {
if (tmp = getenv ("HOME"))
strcpy (fname, tmp);
else
fname[0] = '\0';
strcat (fname, "/chess.lst");
+ tmp = (char *)malloc(256);
+ sprintf(tmp,"~/chess.lst written");
if (fd = fopen (fname, "w"))
ShowMessage ("Writing ~/chess.lst");
else
{
ShowMessage ("Cannot write ~/chess.lst");
return;
}
+ }
+ else
+ {
+ tmp = (char *)malloc(256);
+ if (fd = fopen(tmp2,"w"))
+ {
+ sprintf(tmp,"Writing %s",tmp2);
+ ShowMessage(tmp);
+ sprintf(tmp,"%s written",tmp2);
+ }
+ else
+ {
+ sprintf(tmp,"Cannot write %s",tmp2);
+ ShowMessage(tmp);
+ return;
+ }
+ }
fprintf (fd, "\n");
fprintf (fd, " score depth nodes time ");
fprintf (fd, " score depth nodes time\n");
for (i = 1; i <= GameCnt; i++)
{
f = GameList[i].gmove >> 8;
t = (GameList[i].gmove & 0xFF);
algbr (f, t, false);
+ fprintf (fd, "%5s %5d %2d %7ld %5d", mvstr[0],
+ GameList[i].score, GameList[i].depth,
+ GameList[i].nodes, GameList[i].time);
if ((i % 2) == 0)
fprintf (fd, "\n");
else
fprintf (fd, " ");
}
fclose (fd);
ShowMessage ("~/chess.lst written");
}
void
*** uxdsp.c~ Fri Apr 5 16:33:52 1991
--- uxdsp.c Fri Apr 5 15:49:43 1991
***************
*** 92,101 ****
--- 92,102 ----
{
ListGame ();
gotoXY (1, 24);
#ifndef MSDOS
nocrmode ();
+ refresh();
endwin ();
#endif /* MSDOS */
exit (0);
}
***************
*** 967,1012 ****
void
ListGame (void)
{
FILE *fd;
char fname[256];
! char *tmp;
short i, f, t;
if (tmp = getenv ("HOME"))
strcpy (fname, tmp);
else
fname[0] = '\0';
strcat (fname, "/chess.lst");
if (fd = fopen (fname, "w"))
ShowMessage ("Writing ~/chess.lst");
else
{
ShowMessage ("Cannot write ~/chess.lst");
return;
}
fprintf (fd, "\n");
fprintf (fd, " score depth nodes time ");
fprintf (fd, " score depth nodes time\n");
for (i = 1; i <= GameCnt; i++)
{
f = GameList[i].gmove >> 8;
t = (GameList[i].gmove & 0xFF);
algbr (f, t, false);
if ((i % 2) == 0)
fprintf (fd, "\n");
else
fprintf (fd, " ");
- fprintf (fd, "%5s %5d %2d %7ld %5d", mvstr[0],
- GameList[i].score, GameList[i].depth,
- GameList[i].nodes, GameList[i].time);
}
- fprintf (fd, "\n\n");
fclose (fd);
! ShowMessage ("~/chess.lst written");
}
void
Undo (void)
--- 968,1042 ----
void
ListGame (void)
{
FILE *fd;
char fname[256];
! char *tmp,y_or_n_p,tmp2[256];
short i, f, t;
+ ShowMessage("List game? (y or n) ");
+ y_or_n_p = getchar();
+ ShowMessage(" ");
+ if ((y_or_n_p == 'n') || (y_or_n_p == 'N')) return;
+
+ bzero(tmp2,256);
+ ShowMessage("As: (~/chess.lst) ");
+ scanz("%s",tmp2);
+
+ if (strlen(tmp2) == 0)
+ {
if (tmp = getenv ("HOME"))
strcpy (fname, tmp);
else
fname[0] = '\0';
strcat (fname, "/chess.lst");
+ tmp = (char *)malloc(256);
+ sprintf(tmp,"~/chess.lst written");
if (fd = fopen (fname, "w"))
ShowMessage ("Writing ~/chess.lst");
else
{
ShowMessage ("Cannot write ~/chess.lst");
return;
}
+ }
+ else
+ {
+ tmp = (char *)malloc(256);
+ if (fd = fopen(tmp2,"w"))
+ {
+ sprintf(tmp,"Writing %s",tmp2);
+ ShowMessage(tmp);
+ sprintf(tmp,"%s written",tmp2);
+ }
+ else
+ {
+ sprintf(tmp,"Cannot write %s",tmp2);
+ ShowMessage(tmp);
+ return;
+ }
+ }
fprintf (fd, "\n");
fprintf (fd, " score depth nodes time ");
fprintf (fd, " score depth nodes time\n");
for (i = 1; i <= GameCnt; i++)
{
f = GameList[i].gmove >> 8;
t = (GameList[i].gmove & 0xFF);
algbr (f, t, false);
+ fprintf (fd, "%5s %5d %2d %7ld %5d", mvstr[0],
+ GameList[i].score, GameList[i].depth,
+ GameList[i].nodes, GameList[i].time);
if ((i % 2) == 0)
fprintf (fd, "\n");
else
fprintf (fd, " ");
}
fclose (fd);
! ShowMessage (tmp);
}
void
Undo (void)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads