The Museum of HP Calculators

# Wari for the HP-41C/CV/CX

This program is Copyright © HP and is used here by permission. It was originally printed in the Games Solution Book. This program was entered and uploaded by Tony Duell. The documentation was entered by Dave Hicks. The Barcode for this program was provided by Brian Ward.

This program is supplied without representation or warranty of any kind. Tony Duell, Hewlett Packard and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.

## Overview

Wari* is a board game which has been played for at least several centuries in various forms throughout Africa. The game is played on a board containing (generally) twelve small pits or bins, and two large pits. Forty-eight beads, seeds, or other counters are moved and captured according to certain rules.

The Wari board shown here is set up to begin a game.

Each player in turn removes all the counters from one bin on his side and distributes them one-at-a-time into successive bins moving counterclockwise, skipping the two bins which are for storing captured counters. If the last counter drops into an opponent's hole containing one or two counters, the contents of that hole are captured and placed in the player's scoring pit. Counters in an unbroken sequence of two- and three-counter bins on the opponent's side clockwise from the captured bin are also captured. If a bin contains twelve counters or more, that bin is skipped when the counters from that bin are distributed.

The above rules are implemented in the calculator program. Special rules, such as prohibiting moves which remove all of the opponent's counters, were deemed to be variations of the basic game and were not programmed. It is possible to come to a situation where a few counters will circulate forever. In this case each player claims the counters on his side.

To make a play on the calculator Wari board, the player specifies the bin he wants to move by keying in a number from 1 to 6 and then pushing either [A] or [B] (for player A or B). The machine then moves the counters from the specified bin according to the rules. To play against the calculator, signal to the calculator to move by pressing [C]. The calculator will then move player B's counters.

When one of the sites of the board is displayed, as designated by leading A or B, it is as if you moved around to that side of the board. In other words, bin 1 for either players side is always to the left and counterclockwise always to the right. If you are looking at side A, [R/S] will get you side B. If you are looking at side B, [R/S] will get you the score. If you are looking at the score, [R/S] will get you side A.

*Also known as Man-Kalah, Awari, and many other names.

Note: Requires 1 Memory Module on HP-41C

## Instructions

 Step Instructions Input Data/Units Keys Output Data/Units 1 Enter program 2 Initialize [XEQ] WARI SEED? 3 Key in number between 0 and 1 seed [R/S] A 4,4,4,4,4,4 4 To see the other side of the board and/or the score, press [R/S]. This can be done as often as desired. [R/S] A (board) or B (board) or A= or B= 5 Players A, B or the 41C moving B's counters can move in any order with anyone starting the game. Player A bin # [A] A (board) Player A bin # [B] A (board) HP-41C (moving for B) [C] A (board) 6 Go to step 4 or 5 as desired. 7 To start a new game press [E] and go to step 4 or 5 as desired. [E] A 4,4,4,4,4,4

## Example

```   Keystrokes:          Display:
[XEQ] [ALPHA]
SIZE [ALPHA] 018
[XEQ] [ALPHA]
WARI [ALPHA]            SEED?
.9977663333 [R/S]       A 4,4,4,4,4,4
[R/S]                   B 4,4,4,4,4,4
[R/S]                   A=0, B=0
[C]                     A 5,5,4,4,4,4
[R/S]                   B 4,4,4,0,5,5
6 [A]                   A 5,5,4,4,4,0
[R/S]                   B 5,5,5,1,5,5
[C]                     A 6,6,4,4,4,0
[R/S]                   B 5,5,0,2,6,6
2 [A]                   A 6,0,5,5,5,1
[R/S]                   B 6,6,0,2,6,6
[C]                     A 7,1,6,6,6,0
[R/S]                   B 6,6,0,2,6,0
[R/S]                   A=0, B=2
.                          .
.                          .
.                          .
```

How to get this Program to your Calculator (via HP-IL, disk, wand, and fingers)
Display the Program Barcode (.pdf) for printing and scanning

## Program Listing

```LINE  KEYS
01 LBL "WARI"
02 SF 27
03 CF 29
04 FIX 00
05 "SEED?"
06 PROMPT
07 STO 00
08 LBL E
09 1.012
10 CLRG
11 4
12 LBL 06
13 STO IND Y
14 ISG Y
15 GTO 06
16 GTO 50
17 LBL C
18 CF 05
19 0
20 STO 17
21 STO 15
22 2
23 XEQ 51
24 CF 06
25 X=0?
26 SF 06
27 CF 07
28 7.012
29 STO 16
30 LBL 05
31 RCL 16
32 INT
33 RCL IND 16
34 X=0?
35 GTO 00
36 RCL X
37 12
38 /
39 INT
40 STO T
41 +
42 +
43 12
44 MOD
45 X=0?
46 X<> L
47 7
48 X<=Y?
49 GTO 00
50 X<>Y
51 R^
52 CHS
53 RCL IND Y
54 X<=Y?
55 GTO 00
56 X<>Y
57 3
58 +
59 X<=Y?
60 GTO 00
61 SF 07
62 RCL Z
63 RCL 17
64 X>Y?
65 GTO 00
66 X#Y?
67 GTO 01
68 FS? 06
69 GTO 00
70 LBL 01
71 RDN
72 STO 17
73 RCL 16
74 STO 15
75 LBL 00
76 ISG 16
77 GTO 05
78 FC?C 07
79 GTO 00
80 RCL 15
81 INT
82 GTO A
83 LBL 00
84 6
85 STO 16
86 0
87 STO 15
88 LBL 04
89 RCL 16
90 RCL IND 16
91 X=0?
92 GTO 00
93 RCL X
94 12
95 /
96 INT
97 X>0?
98 GTO 00
99 RDN
100 +
101 12
102 MOD
103 X=0?
104 LASTX
105 7
106 X>Y?
107 GTO 00
108 RCL IND Y
109 X=0?
110 GTO 00
111 3
112 X<=Y?
113 GTO 00
114 SF 07
115 R^
116 RCL 15
117 X<=Y?
118 X<>Y
119 STO 15
120 LBL 00
121 DSE 16
122 GTO 04
123 FC?C 07
124 GTO 00
125 RCL 15
126 GTO A
127 LBL 00
128 6
129 XEQ 51
130 1
131 +
132 STO 15
133 STO 16
134 LBL 03
135 6
136 +
137 RCL IND X
138 X#0?
139 GTO 00
140 RCL 15
141 1
142 -
143 6
144 MOD
145 X=0?
146 LASTX
147 RCL 16
148 X=Y?
149 GTO 01
150 RDN
151 STO 15
152 GTO 03
153 LBL 01
154 SF 05
155 "NO MOVE"
156 AVIEW
157 STOP
158 GTO 50
159 LBL 00
160 RCL 15
161 LBL B
162 6
163 +
164 CF 05
165 LBL A
166 STO 15
167 STO 17
168 RCL IND 15
169 X=0?
170 GTO 50
171 STO 16
172 ST- IND 15
173 LBL 08
174 RCL 17
175 1
176 +
177 12
178 MOD
179 X=0?
180 LASTX
181 STO 17
182 RCL 15
183 X=Y?
184 GTO 08
185 1
186 ST+ IND 17
187 DSE 16
188 GTO 08
189 LBL 07
190 RCL 17
191 7
192 FS? 05
193 GTO 01
194 X<=Y?
195 GTO 50
196 GTO 00
197 LBL 01
198 X>Y?
199 GTO 50
200 LBL 00
201 RCL IND 17
202 2
203 X>Y?
204 GTO 50
205 RDN
206 4
207 X<=Y?
208 GTO 50
209 RDN
210 FS? 05
211 ST+ 13
212 FC? 05
213 ST+ 14
214 ST- IND 17
215 RCL 17
216 1
217 -
218 12
219 MOD
220 X=0?
221 LASTX
222 STO 17
223 GTO 07
224 LBL 50
225 SF 05
226 "A "
227 1.006
228 XEQ 00
229 PROMPT
230 "B "
231 7.012
232 XEQ 00
233 PROMPT
234 "A="
235 ARCL 13
236 ",   B="
237 ARCL 14
238 PROMPT
239 GTO 50
240 LBL 09
241 ","
242 LBL 00
243 ARCL IND X
244 ISG X
245 GTO 09
246 RTN
247 LBL 51
248 RCL 00
249 9821
250 *
251 .211327
252 +
253 FRC
254 STO 00
255 *
256 INT
257 RTN
258 END
```