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