The Museum of HP Calculators

# Sphynx for the HP-41

This program is Copyright © 2007 by Jean-Marc Baillard and is used here by permission.

This program is supplied without representation or warranty of any kind. Jean-Marc Baillard 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

-"Sphynx" is a number guessing game.
-You have to find a mystery-number X
-After you've keyed in a guess N, the HP-41 displays  "N / d"  where  d = the sum of the digits of | X - N |

-For example, with N = 456789 and X = 259191, the HP-41 displays  "456789 / 39"  because | 259191 - 456789 | = 197598 and 1+9+7+5+9+8 = 39

-Exception:   if  d = 0 ( i-e  if  X = N ) , the calculator displays   "X // G"    where  G is the number of your guesses.

-In the following program, X is always a 6-digit number.
-It uses ATOX , ALENG and the CX-Function GETKEYX

-The program only stops when you've found the solution!
-After keying in your guess, press any key ( for instance ENTER^ ) except the numeric keys, CHS and the decimal point.

Program Listing

Data Registers:           •  R00 = r     ( random numbers )                        ( Register R00 is to be initialized before executing "SPHYNX" )
R01 = X    R02 = 0 , 1 , 2 , .... , G
Flags: /
Subroutines: /

01  LBL "SPHYNX"
02  RCL 00
03  R-D
04  FRC
05  STO 00
06  9 E5
07  *
08  INT
09   E5
10  +
11  STO 01
12  0
13  STO 02
14  FIX 0
15  CF 29
16  LBL 01
17  X<> Z
18  ISG 02
19  CLX
20  ENTER^
21  CLA
22  RCL 01
23  -
24  ABS
25  ARCL X
26  CLX
27  ALENG
28  CHS
29  48
30  *
31  ENTER^
32  LBL 02
33  STO Y
34  ATOX
35  +
36  X#Y?
37  GTO 02
38  " "                        one space
39  ARCL Z
40  "~/"                      append  /
41  X=0?
42  GTO 04
43  ARCL X
44  AVIEW
45  CLX
46  LBL 03
47  48                        you have at most 48 seconds to press a key
48  GETKEYX
49  X=0?
50  GTO 01
51  X<>Y
52  X<> L
53  -
54  X<>Y
55  10
56  *
57  +
58  GTO 03               SST this line in RUN mode to compile this GTO 03 before the first execution
59  LBL 04
60  "~/"                      append  /
61  ARCL 02
62  FIX 4
63  SF 29
64  AVIEW
65  END

( 106 bytes / SIZE 003 )

Example      1  STO 00

1st guess    123456  XEQ "SPHYNX"     "123456 / 24"        meaning  the sum of the digits of  | 123456 - X |  = 24
2nd guess    4 3 7 2 1 8       ENTER^        "437218 / 21"        -------------------------------   | 437218 - X |  = 21
3rd guess     3 6 6 2 0 1       ENTER^        "366201 // 3"        the program stops:  you've found the solution in 3 guesses

-Do not press the different digit keys too quickly.
-I let you find a good strategy, but much more than 3 guesses are usually necessary...
-"Sphynx" is probably not so interesting as the Mastermind, but it makes a little change.