home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1995 August / NEBULA.mdf / Apps / Games / NeXTGo / Source / sethand.c < prev    next >
Encoding:
C/C++ Source or Header  |  1977-12-27  |  3.0 KB  |  122 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.   NeXT version by John Neil
  9.   */
  10. /*
  11.   This program is free software; you can redistribute it and/or modify
  12.   it under the terms of the GNU General Public License as published by
  13.   the Free Software Foundation - version 1.
  14.   
  15.   This program is distributed in the hope that it will be useful,
  16.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.   GNU General Public License in file COPYING for more details.
  19.   
  20.   You should have received a copy of the GNU General Public License
  21.   along with this program; if not, write to the Free Software
  22.   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.   
  24.   Please report any bug/fix, modification, suggestion to
  25.   
  26.   mail address:   Man L. Li
  27.   Dept. of Computer Science
  28.   University of Houston
  29.   4800 Calhoun Road
  30.   Houston, TX 77004
  31.   
  32.   e-mail address: manli@cs.uh.edu         (Internet)
  33.   coscgbn@uhvax1.bitnet   (BITNET)
  34.   70070,404               (CompuServe)
  35.  
  36. For the NeXT version, please report any bug/fix, modification, suggestion to
  37.  
  38. mail address:   John Neil
  39.                 Mathematics Department
  40.                 Portland State University
  41.                 PO Box 751
  42.                 Portland, OR  97207
  43.  
  44. e-mail address: neil@math.mth.pdx.edu  (Internet)
  45.                 neil@psuorvm.bitnet    (BITNET)
  46.   */
  47.  
  48. #define BLACKSTONE 2
  49.  
  50. extern unsigned char p[19][19];
  51. extern int MAXX, MAXY;
  52.  
  53. void sethand(int i)
  54.      /* set up handicap pieces */
  55. {
  56.   int half, q;
  57.   
  58.   half = (MAXX + 1)/2 - 1;
  59.   if (MAXX < 13)
  60.     q = 2;
  61.   else
  62.     q = 3;
  63.   
  64.   if (i > 0)
  65.     {
  66.       p[q][q] = BLACKSTONE;
  67.       if (i > 1)
  68.     {
  69.       p[MAXX - q - 1][MAXY - q - 1] = BLACKSTONE;
  70.       if (i > 2)
  71.         {
  72.           p[q][MAXY - q - 1] = BLACKSTONE;
  73.           if (i > 3)
  74.         {
  75.           p[MAXX - q - 1][q] = BLACKSTONE;
  76.           if (i == 5)
  77.             p[half][half] = BLACKSTONE;
  78.           else
  79.             if (i > 5)
  80.               {
  81.             p[half][MAXY - q - 1] = BLACKSTONE;
  82.             p[half][3] = BLACKSTONE;
  83.             if (i == 7)
  84.               p[half][half] = BLACKSTONE;
  85.             else
  86.               if (i > 7)
  87.                 {
  88.                   p[MAXX - q - 1][half] = BLACKSTONE;
  89.                   p[3][half] = BLACKSTONE;
  90.                   if (i > 8)
  91.                 p[half][half] = BLACKSTONE;
  92.                   if (i > 9)
  93.                 {p[q - 1][q - 1] = BLACKSTONE;
  94.                  if (i > 10)
  95.                    {p[MAXX - q][MAXY - q] = BLACKSTONE;
  96.                     if (i > 11)
  97.                       {p[q - 1][MAXY - q] = BLACKSTONE;
  98.                        if (i > 12)
  99.                      {p[MAXX - q][q - 1] = BLACKSTONE;
  100.                       if (i > 13)
  101.                         {p[(q + half)/2][(q + half)/2] = BLACKSTONE;
  102.                          if (i > 14)
  103.                            {p[(MAXX - q + half)/2][(MAXY - q + half)/2] = BLACKSTONE;
  104.                         if (i > 15)
  105.                           {p[(q + half)/2][(MAXY - q + half)/2] = BLACKSTONE;
  106.                            if (i > 16)
  107.                              p[(MAXX - q + half)/2][(q + half)/2] = BLACKSTONE;
  108.                          }
  109.                           }
  110.                        }
  111.                     }
  112.                      }
  113.                   }
  114.                    }
  115.                 }
  116.               }
  117.         }
  118.         }
  119.     }
  120.     }
  121. }  /* end sethand */
  122.