#include "gnushogi.h"
-unsigned short MV[MAXDEPTH];
-int MSCORE;
-
-int mycnt1, mycnt2;
-char *DRAW;
-extern char *InPtr;
-extern short pscore[];
-
/****************************************
* forward declarations
****************************************/
-void Raw_UpdateDisplay(short f, short t, short redraw, short isspec);
+static void Raw_UpdateDisplay(short f, short t, short redraw, short isspec);
/****************************************
* Trivial output functions.
****************************************/
-void
+static void
Raw_ClearScreen(void)
{
if (!XSHOGI)
}
-void
+static void
Raw_ShowPrompt(void)
{
if (!XSHOGI)
}
-void
+static void
Raw_ShowCurrentMove(short pnt, short f, short t)
{
}
-void
+static void
Raw_ShowDepth(char ch)
{
if (!XSHOGI)
}
-void
+static void
Raw_ShowGameType(void)
{
if (flag.post)
}
-void
+static void
Raw_ShowLine(unsigned short *bstline)
{
int i;
}
-void
+static void
Raw_ShowMessage(char *s)
{
if (!XSHOGI)
}
-void
+static void
Raw_AlwaysShowMessage(const char *format, ...)
{
va_list ap;
}
-void
+static void
Raw_Printf(const char *format, ...)
{
va_list ap;
}
-void
+static void
Raw_doRequestInputString(const char* fmt, char* buffer)
{
scanf(fmt, buffer);
}
-int
+static int
Raw_GetString(char* sx)
{
int eof = 0;
}
-void
+static void
Raw_ShowNodeCnt(long NodeCnt)
{
printf("Nodes = %ld Nodes/sec = %ld\n",
}
-void
+static void
Raw_ShowPatternCount(short side, short n)
{
if (flag.post)
- printf("%s matches %d pattern(s)\n", ColorStr[side], n);
+ printf("%s%s matches %d pattern(s)\n", xboard ? "# " : "" , ColorStr[side], n);
}
-void
+static void
Raw_ShowResponseTime(void)
{
}
-void
+static void
Raw_ShowResults(short score, unsigned short *bstline, char ch)
{
- if (flag.post && !XSHOGI)
+ if (flag.post && (xboard || !XSHOGI))
{
ElapsedTime(2);
printf("%2d%c %6d %4ld %8ld ",
}
-void
+static void
Raw_ShowSidetoMove(void)
{
}
-void
+static void
Raw_ShowStage(void)
{
printf("stage = %d\n", stage);
* End of trivial output routines.
****************************************/
-void
+static void
Raw_Initialize(void)
{
mycnt1 = mycnt2 = 0;
}
-void
+static void
Raw_ExitShogi(void)
{
/* CHECKME: what purpose does this next statement serve? */
}
-void
-Raw_Die(int sig)
-{
- char s[80];
-
- Raw_ShowMessage("Abort? ");
- scanf("%s", s);
-
- if (strcmp(s, "yes") == 0)
- Raw_ExitShogi();
-}
-
-
-void
+static void
Raw_TerminateSearch(int sig)
{
#ifdef INTERRUPT_TEST
}
-void
+static void
Raw_help(void)
{
Raw_ClearScreen();
* Set up a board position. Pieces are entered by typing the piece followed
* by the location. For example, Nf3 will place a knight on square f3.
*/
-void
+static void
Raw_EditBoard(void)
{
short a, r, c, sq, i, found;
Book = BOOKFAIL;
Raw_ClearScreen();
Raw_UpdateDisplay(0, 0, 1, 0);
- fputs(". Exit to main\n", stdout);
- fputs("# Clear board\n", stdout);
- fputs("c Change sides\n", stdout);
- fputs("enter piece & location: \n", stdout);
+ printf(". Exit to main\n");
+ printf("# Clear board\n");
+ printf("c Change sides\n");
+ printf("enter piece & location:\n");
a = black;
- do
+ while(1)
{
scanf("%s", s);
found = 0;
+ if (s[0] == '.')
+ break;
+
if (s[0] == '#')
{
for (sq = 0; sq < NO_SQUARES; sq++)
}
ClearCaptured();
+ continue;
}
- if (s[0] == 'c')
+ if (s[0] == 'c') {
a = otherside[a];
+ continue;
+ }
if (s[1] == '*')
{
break;
}
}
-
- c = -1;
- r = -1;
+ if (!found)
+ printf("# Invalid piece type '%c'\n", s[0]);
+ continue;
}
- else
- {
- c = COL_NAME(s[1]);
- r = ROW_NAME(s[2]);
+
+ c = COL_NUM(s[1]);
+ r = ROW_NUM(s[2]);
+
+ if ((c < 0) || (c >= NO_COLS) || (r < 0) || (r >= NO_ROWS)) {
+ printf("# Out-of-board position '%c%c'\n", s[1], s[2]);
+ continue;
}
- if ((c >= 0) && (c < NO_COLS) && (r >= 0) && (r < NO_ROWS))
- {
- sq = locn(r, c);
- color[sq] = a;
- board[sq] = no_piece;
+ sq = locn(r, c);
- for (i = no_piece; i <= king; i++)
+ for (i = no_piece; i <= king; i++)
+ {
+ if ((s[0] == pxx[i]) || (s[0] == qxx[i]))
{
- if ((s[0] == pxx[i]) || (s[0] == qxx[i]))
- {
- if (s[3] == '+')
- board[sq] = promoted[i];
- else
- board[sq] = i;
+ color[sq] = a;
+ if (s[3] == '+')
+ board[sq] = promoted[i];
+ else
+ board[sq] = i;
- found = 1;
- break;
- }
+ found = 1;
+ break;
}
-
- if (found == 0)
- color[sq] = neutral;
}
+
+ if (!found)
+ printf("# Invalid piece type '%c'\n", s[0]);
}
- while (s[0] != '.');
for (sq = 0; sq < NO_SQUARES; sq++)
Mvboard[sq] = ((board[sq] != Stboard[sq]) ? 10 : 0);
* Nine lines of nine characters are used to setup the board. 9a-1a is the
* first line. White pieces are represented by uppercase characters.
*/
-void
+static void
Raw_SetupBoard(void)
{
short r, c, sq, i;
}
-void
+static void
Raw_SearchStartStuff(short side)
{
if (flag.post)
}
-void
+static void
Raw_OutputMove(void)
{
if (flag.illegal)
printf("%s mates!\n", ColorStr[computer]);
#ifdef VERYBUGGY
else if (!XSHOGI && (root->score < -SCORE_LIMIT))
- printf("%s has a forced mate in %d moves!\n",
+ printf("%s%s has a forced mate in %d moves!\n", xboard ? "# " : "",
ColorStr[opponent], SCORE_LIMIT + 999 + root->score - 1);
else if (!XSHOGI && (root->score > SCORE_LIMIT))
- printf("%s has a forced mate in %d moves!\n",
+ printf("%s%s has a forced mate in %d moves!\n", xboard ? "# " : "",
ColorStr[computer], SCORE_LIMIT + 998 - root->score - 1);
#endif /* VERYBUGGY */
}
-void
+static void
Raw_UpdateClocks(void)
{
}
-void
+static void
Raw_UpdateDisplay(short f, short t, short redraw, short isspec)
{
}
-void
+static void
Raw_ChangeAlphaWindow(void)
{
printf("WAwindow: ");
}
-void
+static void
Raw_ChangeBetaWindow(void)
{
printf("WBwindow: ");
}
-void
+static void
Raw_GiveHint(void)
{
if (hint)
}
-void
+static void
Raw_SelectLevel(char *sx)
{
/* FIXME: NO_SQUARES is nonsense here */
}
-void
+static void
Raw_ChangeSearchDepth(char *sx)
{
char buf[80+1];
}
-void
+static void
Raw_ChangeHashDepth(void)
{
printf("hashdepth = ");
}
-void
+static void
Raw_SetContempt(void)
{
printf("contempt = ");
}
-void
+static void
Raw_ChangeXwindow(void)
{
printf("xwndw = ");
* Raw_ShowPostnValue(short sq)
* must have called ExaminePosition() first
*/
-void
+static void
Raw_ShowPostnValue(short sq)
{
(void) ScorePosition(color[sq]);
}
-void
+static void
Raw_DoDebug(void)
{
short c, p, sq, tp, tc, tsq, score, j, k;
}
-void
+static void
Raw_DoTable(short table[NO_SQUARES])
{
short sq, j, k;
}
-void
+static void
Raw_ShowPostnValues(void)
{
short sq, score, j, k;
}
-void
+static void
Raw_PollForInput(void)
{
#ifdef WIN32