The Museum of HP Calculators

HP Forum Archive 20

 Re: a challenge related to the 15 puzzleMessage #1 Posted by Allen on 17 Jan 2011, 6:03 p.m. Here's a quick RPL program based on the article you posted above. It uses a flag for parity tracking, and indrect addressing from the stack to scroll through the loops. Here are the program 41c barcodes (including 2 programs to input 2 test matrices.) Credit Note: Program was written using Free42, output to RAW and converted to barcodes using HP41UC program. ```Inputs: Register 00 - 1 (a pointer to first cell) Register 01 - First number of grid ... Register 15 - Last number of grid Register 16 - 00 (assumes the space is in location 16) Outputs: Clear stack except for 1 in ST X if solution exists, 0 otherwise 00 { 53-Byte Prgm } 01>LBL "AQ" 02 CF 01 ' clears the parity flag 03 CLST ' clear stack 04 RCL 00 ' 05>LBL 01 ' Loop for checking results 06 RCL IND ST X 07 X<0? ' Check the pointer to see if it's neg 08 GTO 02 ' if so, go to next loop 09 -1 10 STOŚ IND ST Z ' Otherwise negate and recall next value 11 RCL IND ST Z 12 +/- 13 GTO 01 ' repeat loop 14>LBL 02 ' Flip the parity flag- (starts even) 15 FS? 01 16 FC?C 01 17 SF 01 18>LBL 03 ' begin counting through the values 19 RCL IND 00 20 X=0? ' until you find a positive one to loop on 21 GTO 04 ' 00 value indicates end of matrix 22 X>0? 23 GTO 01 ' new loop found, go to main loop 24 ISG 00 ' increment reg 00 counter 25 CLX ' NOP 26 GTO 03 ' counter to check for the first pos. number 27>LBL 04 ' end program 28 CLST ' cleanup the stack 29 FS? 01 30 1 ' return parity based on Flag 1 31 END ``` Note: edited to add inputs/outputs section Edited: 18 Jan 2011, 9:16 a.m.

 Re: a challenge related to the 15 puzzleMessage #2 Posted by Don Shepherd on 18 Jan 2011, 5:42 p.m.,in response to message #1 by Allen Great program Allen, thanks. Can you implement this unique algorithm in RPL on the 50g? Don

Go back to the main exhibit hall