1 static char sccsid[] = " board.c 4.1 82/05/11 "; 2 3 #include "back.h" 4 5 static int i, j, k; 6 static char ln[60]; 7 8 wrboard () { 9 register int l; 10 static char bl[] = 11 "| | | |\n"; 12 static char sv[] = 13 "| | | | \n"; 14 15 fixtty (noech); 16 clear(); 17 18 if (tflag) { 19 fboard(); 20 goto lastline; 21 } 22 23 writel ("_____________________________________________________\n"); 24 writel (bl); 25 strcpy (ln,bl); 26 for (j = 1; j < 50; j += 4) { 27 k = j/4+(j > 24? 12: 13); 28 ln[j+1] = k%10+'0'; 29 ln[j] = k/10+'0'; 30 if (j == 21) 31 j += 4; 32 } 33 writel (ln); 34 for (i = 0; i < 5; i++) { 35 strcpy (ln,sv); 36 for (j = 1; j < 50; j += 4) { 37 k = j/4+(j > 24? 12: 13); 38 wrbsub (); 39 if (j == 21) 40 j += 4; 41 } 42 if (-board[25] > i) 43 ln[26] = 'w'; 44 if (-board[25] > i+5) 45 ln[25] = 'w'; 46 if (-board[25] > i+10) 47 ln[27] = 'w'; 48 l = 53; 49 if (off[1] > i || (off[1] < 0 && off[1]+15 > i)) { 50 ln[54] = 'r'; 51 l = 55; 52 } 53 if (off[1] > i+5 || (off[1] < 0 && off[1]+15 > i+5)) { 54 ln[55] = 'r'; 55 l = 56; 56 } 57 if (off[1] > i+10 || (off[1] < 0 && off[1]+15 > i+10)) { 58 ln[56] = 'r'; 59 l = 57; 60 } 61 ln[l++] = '\n'; 62 ln[l] = '\0'; 63 writel (ln); 64 } 65 strcpy (ln,bl); 66 ln[25] = 'B'; 67 ln[26] = 'A'; 68 ln[27] = 'R'; 69 writel (ln); 70 strcpy (ln,sv); 71 for (i = 4; i > -1; i--) { 72 for (j = 1; j < 50; j += 4) { 73 k = ((j > 24? 53: 49)-j)/4; 74 wrbsub(); 75 if (j == 21) 76 j += 4; 77 } 78 if (board[0] > i) 79 ln[26] = 'r'; 80 if (board[0] > i+5) 81 ln[25] = 'r'; 82 if (board[0] > i+10) 83 ln[27] = 'r'; 84 l = 53; 85 if (off[0] > i || (off[0] < 0 && off[0]+15 > i)) { 86 ln[54] = 'w'; 87 l = 55; 88 } 89 if (off[0] > i+5 || (off[0] < 0 && off[0]+15 > i+5)) { 90 ln[55] = 'w'; 91 l = 56; 92 } 93 if (off[0] > i+10 || (off[0] < 0 && off[0]+15 > i+10)) { 94 ln[56] = 'w'; 95 l = 57; 96 } 97 ln[l++] = '\n'; 98 ln[l] = '\0'; 99 writel (ln); 100 } 101 strcpy (ln,bl); 102 for (j = 1; j < 50; j += 4) { 103 k = ((j > 24? 53: 49)-j)/4; 104 ln[j+1] = k%10+'0'; 105 if (k > 9) 106 ln[j] = k/10+'0'; 107 if (j == 21) 108 j += 4; 109 } 110 writel (ln); 111 writel ("|_______________________|___|_______________________|\n"); 112 113 lastline: 114 gwrite (); 115 if (tflag) 116 curmove (18,0); 117 else { 118 writec ('\n'); 119 writec ('\n'); 120 } 121 fixtty(raw); 122 } 123 124 wrbsub () { 125 register int m; 126 register char d; 127 128 if (board[k] > 0) { 129 m = board[k]; 130 d = 'r'; 131 } else { 132 m = -board[k]; 133 d = 'w'; 134 } 135 if (m>i) 136 ln[j+1] = d; 137 if (m>i+5) 138 ln[j] = d; 139 if (m>i+10) 140 ln[j+2] = d; 141 } 142