This program is Copyright © 1977 by Hewlett-Packard and is used here by permission. This program was originally published in "HP-19C/HP-29C Applications Book", pages 52 through 54. This program was transcribed by Mark Lynch
This program is supplied without representation or warranty of any kind. Hewlett-Packard Company 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.
This game is based on the moves of a chess queen. A queen will be allowed to move only to the left, down, or diagonally to the left. The object of the game is to be the first player to move the queen to the lower left-hand corner of the chess board (square 158), by alternating moves between you and the calculator. You start by placing the queen on any square on the top row or right hand column. This is your first move. The play then alternates.
The playing board is numbered as follows:
81 | 71 | 61 | 51 | 41 | 31 | 21 | 11 |
92 | 82 | 72 | 62 | 52 | 42 | 32 | 22 |
103 | 93 | 83 | 73 | 63 | 53 | 43 | 33 |
114 | 104 | 94 | 84 | 74 | 64 | 54 | 44 |
125 | 115 | 105 | 95 | 85 | 75 | 65 | 55 |
136 | 126 | 116 | 106 | 96 | 86 | 76 | 66 |
147 | 137 | 127 | 117 | 107 | 97 | 87 | 77 |
158 | 148 | 138 | 128 | 118 | 108 | 98 | 88 |
You tell the calculator your moves by keying in the number of the square you start on or move to. Press GSB 1 and the calculator responds with the square it moves to. Square 158 is the winning square.
The program does not check for illegal moves. If you win (by moving to square 158), the program will respond with 168 (the calculator acknowledges the loss by displaying a nonexistent square).
The program is in FIX 0 mode, for integer display.
This program is based on an HP-65 Users' Library program by Jacob R. Jacobs.
Some interesting comments on the theory of "Queen Board" may be found in: Gardner, M. "Mathematical Games", Scientific American, vol 236, no3., p. 134, March 1977.
Step | Instructions | Input Data/Units | Keys | Output Data/Units |
1 | Key in the program. | |||
2 | Key in your starting position (first move). | Move | GSB 1 | Calc's Move |
3 | Repeat step 2 until someone wins. | |||
Display of 158: calculator wins | ||||
Display of 168: you win | ||||
4 | To begin new game, repeat step 2 with new starting | |||
position |
Keystrokes: Outputs: 55 GSB 1 → 75. (You start on 55, and the calculator, after deep and careful thought, moves to 75). 97 GSB 1 → 127. (You respond with 97, and the calculator, showing no mercy moves to 127). 148 GSB 1 → 158. (You try 148, hoping the calculator's batteries run down before it can respond, but no luck -- it wins by moving to 158).
19C 29C LINE CODE CODE KEYS COMMENTS 00 01 25 14 01 15 13 01 g LBL 1 02 16 13 00 14 11 00 f FIX 0 03 45 01 23 01 STO 1 Current position R1 04 13 00 12 00 GSB 0 05 01 01 1 06 16 61 14 71 f x=y 07 14 08 13 08 GTO 8 08 07 07 7 09 45 00 23 00 STO 0 7 → R0 10 25 14 09 15 13 09 g LBL 9 11 55 01 24 01 RCL 1 12 55 00 24 00 RCL 0 13 23 33 EEX 14 01 01 1 15 51 61 x 16 41 51 + 10K + R1 → R2 17 45 02 23 02 STO 2 Position good? 18 13 00 12 00 GSB 0 19 01 01 1 20 16 61 14 71 f x=y Yes, recall R2 21 14 07 13 07 GTO 7 22 55 00 24 00 RCL 0 K + R2 → R2 23 45 41 02 23 51 02 STO + 2 Position good? 24 55 02 24 02 RCL 2 25 13 00 12 00 GSB 0 26 01 01 1 27 16 61 14 71 f x=y Yes, recall R2 28 14 07 13 07 GTO 7 29 55 00 24 00 RCL 0 30 23 33 EEX 31 01 01 1 32 51 61 x 10K + R2 → R2 33 45 41 02 23 51 02 STO + 2 34 55 02 24 02 RCL 2 Position good? 35 13 00 12 00 GSB 0 36 01 01 1 37 16 61 14 71 f x=y Yes, recall R2 38 14 07 13 07 GTO 7 39 25 45 15 23 g DSZ 40 14 09 13 09 GTO 9 41 55 01 24 01 RCL 1 42 25 14 08 15 13 08 g LBL 8 43 23 33 EEX Default move 44 01 01 1 10 + R1 → R1 45 45 41 01 23 51 01 STO + 1 46 55 01 24 01 RCL 1 47 25 13 15 12 g RTN 48 25 14 07 15 13 07 g LBL 7 49 55 02 24 02 RCL 2 Test for good position 50 25 13 15 12 g RTN 51 25 14 00 15 13 00 g LBL 0 52 01 01 1 53 05 05 5 54 08 08 8 158 = R2 ? 55 16 61 14 71 f x=y 56 14 06 13 06 GTO 6 57 03 03 3 58 01 01 1 59 31 41 - 127 = R2 ? 60 16 61 14 71 f x=y 61 14 06 13 06 GTO 6 62 01 01 1 63 31 41 - 126 = R2 ? 64 16 61 14 71 f x=y 65 14 06 13 06 GTO 6 66 05 05 5 67 01 01 1 68 31 41 - 75 = R2 ? 69 16 61 14 71 f x=y 70 14 06 13 06 GTO 6 71 02 02 2 72 31 41 - 73 = R2 ? 73 16 61 14 71 f x=y 74 14 06 13 06 GTO 6 75 02 02 2 76 09 09 9 77 31 41 - 44 = R2 ? 78 16 61 14 71 f x=y 79 14 06 13 06 GTO 6 80 03 03 3 81 31 41 - 41 = R2 ? 82 16 61 14 71 f x=y 83 14 06 13 06 GTO 6 84 25 13 15 12 g RTN 85 25 14 06 15 13 06 g LBL 6 86 01 01 1 87 25 13 15 12 g RTN
R0 Indirect R1 Used R2 Used
Go back to the software library
Go back to the main exhibit hall