* Common display routines for GNU Shogi.
*
* ----------------------------------------------------------------------
- *
- * Copyright (c) 2012 Free Software Foundation
+ * Copyright (c) 1993, 1994, 1995 Matthias Mutz
+ * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
*
* GNU SHOGI is based on GNU CHESS
*
+ * Copyright (c) 1988, 1989, 1990 John Stanback
+ * Copyright (c) 1992 Free Software Foundation
+ *
* This file is part of GNU SHOGI.
*
* GNU Shogi is free software; you can redistribute it and/or modify it
/*
* Generate move strings in different formats.
+ *
+ * INPUT:
+ * - f piece to be moved
+ * - 0 < f < NO_SQUARES source square
+ * - NO_SQUARES <= f NO_SQUARES + 2*NO_PIECES dropped piece modulo NO_PIECES
+ * - t & 0x7f target square
+ * - t & 0x80 promotion flag
+ * - flag FIXME: must be zero ?
+ *
+ * OUTPUT:
+ * - GLOBAL mvstr
*/
void
if ((f == t) && ((f != 0) || (t != 0)))
{
- if (!barebones)
- {
- if (NOT_CURSES)
- printf("error in algbr: FROM=TO=%d, flag=0x%4x\n", t, flag);
- else
- printw("error in algbr: FROM=TO=%d, flag=0x%4x\n", t, flag);
+ if (!barebones) {
+ Printf("error in algbr: FROM=TO=%d, flag=0x%4x\n", t, flag);
}
mvstr[0][0] = mvstr[1][0] = mvstr[2][0] = mvstr[3][0] = '\0';
if (f[1] == '*' || f[1] == '\'')
{
- c2 = '9' - f[2];
- r2 = 'i' - f[3];
+ c2 = COL_NAME(f[2]);
+ r2 = ROW_NAME(f[3]);
return ((NO_SQUARES + *fpiece) << 8) | locn(r2, c2);
}
else
{
- c1 = '9' - f[1];
- r1 = 'i' - f[2];
- c2 = '9' - f[3];
- r2 = 'i' - f[4];
+ c1 = COL_NAME(f[1]);
+ r1 = ROW_NAME(f[2]);
+ c2 = COL_NAME(f[3]);
+ r2 = ROW_NAME(f[4]);
p = (f[5] == '+') ? 0x80 : 0;
return (locn(r1, c1) << 8) | locn(r2, c2) | p;
short sq;
short side, isp;
- if (savefile[0])
- {
+ if (savefile[0]) {
strcpy(fname, savefile);
- }
- else
- {
+ } else {
/* Enter file name */
ShowMessage(CP[63]);
-
- if (NOT_CURSES)
- {
- scanf("%s", fname);
- }
- else
- {
- fflush(stdout);
- scanw("%s", fname);
- }
+ RequestInputString(fname);
}
/* shogi.000 */
short side, piece;
char empty[2] = "\n";
- if (savefile[0])
- {
+ if (savefile[0]) {
strcpy(fname, savefile);
- }
- else
- {
+ } else {
/* Enter file name */
ShowMessage(CP[63]);
-
- if (NOT_CURSES)
- {
- scanf("%s", fname);
- }
- else
- {
- fflush(stdout);
- scanw("%s", fname);
- }
+ RequestInputString(fname);
}
if (fname[0] == '\0') /* shogi.000 */
for (i = NO_ROWS - 1; i > -1; i--)
{
- fprintf(fd, "%c ", 'i' - i);
+ fprintf(fd, "%c ", ROW_NAME(i));
for (c = 0; c < NO_COLS; c++)
{
}
fputs(empty, fd);
- fprintf(fd, " 9 8 7 6 5 4 3 2 1\n");
+ fprintf(fd, " 9 8 7 6 5 4 3 2 1\n"); /* FIXME */
fputs(empty, fd);
fprintf(fd, " p l n s g b r k\n");
/* Enter file name */
ShowMessage(CP[63]);
-
- if (NOT_CURSES)
- {
- scanf("%s", fname);
- }
- else
- {
- fflush(stdout);
- scanw("%s", fname);
- }
+ RequestInputString(fname);
if (fname[0] == '\0') /* XSHOGI.position.read */
strcpy(fname, CP[205]);
/* Enter file name */
ShowMessage(CP[63]);
-
- if (NOT_CURSES)
- {
- scanf("%s", fname);
- }
- else
- {
- fflush(stdout);
- scanw("%s", fname);
- }
+ RequestInputString(fname);
if (fname[0] == '\0') /* XSHOGI.position.read */
strcpy(fname, CP[205]);
char fname[256], sflags[4];
short i, j, f, t;
- if (savefile[0])
- {
+ if (savefile[0]) {
strcpy(fname, savefile);
- }
- else
- {
+ } else {
/* Enter file name */
ShowMessage(CP[63]);
-
- if (NOT_CURSES)
- {
- scanf("%s", fname);
- }
- else
- {
- fflush(stdout);
- scanw("%s", fname);
- }
+ RequestInputString(fname);
}
if (fname[0] == '\0')
{
s[0] = sx[0] = '\0';
- while(!sx[0])
- (void)fgets(sx, 80, stdin);
+ while(!eof && !sx[0])
+ eof = (fgets(sx, 80, stdin) == NULL);
}
else
{
printf("\n");
#endif
}
-
- signal(SIGUSR1, TerminateSearch);
}