home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / games / chess / stat.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-05-05  |  1.3 KB  |  106 lines

  1. #include "old.h"
  2.  
  3. statl()
  4. {
  5.     int *p1, *p2, *p3;
  6.  
  7.     p1 = p2 = lmp;
  8.     stage();
  9.     mantom? bagen(): wagen();
  10.     if(lmp == p1+1)
  11.         return(p1);
  12.     while(p2 != lmp) {
  13.         p3 = p2++;
  14.         if(mantom) {
  15.             bmove(*p2++);
  16.             *p3 = bstatic(0);
  17.             bremove();
  18.         } else {
  19.             wmove(*p2++);
  20.             *p3 = wstatic(0);
  21.             wremove();
  22.         }
  23.     }
  24.     qsort(p1, lmp);
  25.     return(p1);
  26. }
  27.  
  28. wstatic(f)
  29. {
  30.     int i, j, h, (*p)();
  31.  
  32.     h = i = 0;
  33.     while(p = wheur[h++]) {
  34.         j = (*p)();
  35.         if(f)
  36.             printf("%4d ", j);
  37.         i =+ j;
  38.     }
  39.     if(f)
  40.         printf("=%4d ", i);
  41.     return(-i);
  42. }
  43.  
  44. bstatic(f)
  45. {
  46.     int i, j, h, (*p)();
  47.  
  48.     h = i = 0;
  49.     while(p = bheur[h++]) {
  50.         j = (*p)();
  51.         if(f)
  52.             printf("%4d ", j);
  53.         i =+ j;
  54.     }
  55.     if(f)
  56.         printf("=%4d ", i);
  57.     return(-i);
  58. }
  59.  
  60. xheur(ploc)
  61. int ploc;
  62. {
  63.     int *p1, *p2, from, to, pie;
  64.  
  65.     pie = board[ploc];
  66.     p1 = lmp;
  67.     p2 = p1;
  68.     mantom? wgen(): bgen();
  69.     while(p2 != lmp) {
  70.         p2++;
  71.         to = *p2++ & 0377;
  72.         if(to == ploc) {
  73.             from = p2[-1] >> 8;
  74.             if(abs(board[from]) < abs(pie)) {
  75.                 lmp = p1;
  76.                 return((pval+6)[pie]/60);
  77.             }
  78.         }
  79.     }
  80.     lmp = p1;
  81.     return(0);
  82. }
  83.  
  84. srnd(p)
  85. int p;
  86. {
  87.  
  88.     srnd1(p, uleft, -9);
  89.     srnd1(p, uright, -7);
  90.     srnd1(p, dleft, 7);
  91.     srnd1(p, dright, 9);
  92.     srnd1(p, up, -8);
  93.     srnd1(p, left, -1);
  94.     srnd1(p, right, 1);
  95.     srnd1(p, down, 8);
  96.     srnd1(p, 0, 0);
  97. }
  98.  
  99. srnd1(p, m, o)
  100. int p, m, o;
  101. {
  102.  
  103.     if((dir[p]&m) == 0)
  104.         control[p+o] =+ 10;
  105. }
  106.