The Museum of HP Calculators


Queen Board for the HP-19C/HP-29C

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.

Overview

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.

Reference:

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.

Instructions

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      

Example

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).

The Program

       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

Register Use

R0  Indirect
R1  Used
R2  Used

Go back to the software library
Go back to the main exhibit hall