home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 2 / RISC_DISC_2.iso / pd_share / games / gnugo / c / getmove < prev    next >
Encoding:
Text File  |  1995-03-11  |  2.4 KB  |  95 lines

  1. /*
  2.                 GNU GO - the game of Go (Wei-Chi)
  3.                 Version 1.1   last revised 3-1-89
  4.            Copyright (C) Free Software Foundation, Inc.
  5.                       written by Man L. Li
  6.                       modified by Wayne Iba
  7.                     documented by Bob Webber
  8. */
  9. /*
  10. This program is free software; you can redistribute it and/or modify
  11. it under the terms of the GNU General Public License as published by
  12. the Free Software Foundation - version 1.
  13.  
  14. This program is distributed in the hope that it will be useful,
  15. but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. GNU General Public License in file COPYING for more details.
  18.  
  19. You should have received a copy of the GNU General Public License
  20. along with this program; if not, write to the Free Software
  21. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22.  
  23. Please report any bug/fix, modification, suggestion to
  24.  
  25. mail address:   Man L. Li
  26.                 Dept. of Computer Science
  27.                 University of Houston
  28.                 4800 Calhoun Road
  29.                 Houston, TX 77004
  30.  
  31. e-mail address: manli@cs.uh.edu         (Internet)
  32.                 coscgbn@uhvax1.bitnet   (BITNET)
  33.                 70070,404               (CompuServe)
  34. */
  35.  
  36. #include <stdio.h>
  37. #include "header.h"
  38.  
  39. int play;
  40.  
  41. void getmove(move, i, j)
  42. /* interpret response of human move to board position */
  43. char move[];
  44. int *i, *j;
  45.   {
  46.    FILE *fp;
  47.    int m, n;
  48.  
  49.    if (strcmp(move, "stop") == 0)
  50. /* stop game */
  51.       play = 0;
  52.    else
  53.      {
  54.       if (strcmp(move, "save") == 0)
  55. /* save data and stop game */
  56.     {
  57.      fp = fopen("gnugo.dat", "w");
  58. /* save board configuration */
  59.      for (m = 0; m < 19; m++)
  60.        for (n = 0; n < 19; n++)
  61.            fprintf(fp, "%c", p[m][n]);
  62. /* my color, pieces captured */
  63.          fprintf(fp, "%d %d %d ", mymove, mk, uk);
  64. /* opening pattern flags */
  65.          for (m = 0; m < 9; m++)
  66.            fprintf(fp, "%d ", opn[m]);
  67.  
  68.      fclose(fp);
  69.      play = -1;
  70.        }
  71.       else
  72.     {
  73.      if (strcmp(move, "pass") == 0)
  74. /* human pass */
  75.        {
  76.         pass++;
  77.         *i = -1;   /* signal pass */
  78.       }
  79.      else
  80.        {
  81.         pass = 0;
  82. /* move[0] from A to T, move[1] move[2] from 1 to 19 */
  83. /* convert move to coordinate */
  84.         if (!getij(move, i, j) || (p[*i][*j] != EMPTY) || suicide(*i, *j))
  85.           {
  86.            printf("illegal move !\n");
  87.            printf("your move? ");
  88.            scanf("%s", move);
  89.            getmove(move, i, j);
  90.          }
  91.      }
  92.        }
  93.     }
  94. }  /* end getmove */
  95.