1 REM **** HP BASIC PROGRAM LIBRARY ************************** 2 REM 4 REM 5 REM 36764 REV A -- 10/73 6 REM REV A-1 -- 3/75 BYARD 7 REM **** CONTRIBUTED PROGRAM ******************************* 9 REM SOUCE: BARRY P. JEFFERSON BABSON COLLEGE 20 PRINT " DO YOU WANT INSTRUCTIONS? 1=YES "; 30 INPUT C 40 IF C#1 THEN 280 50 GOTO 75 75 PRINT 80 PRINT "IF YOU LIKE BRAIN TEASER, THEN YOU'RE IN FOR SOME FUN!" 90 PRINT "THE OBJECT OF THIS PUZZLE IS TO SOLVE A 3 X 3 MATRIX" 100 PRINT "SUCH THAT 1'S APPEAR IN ALL POSITIONS EXCEPT IN THE" 110 PRINT "CENTER WHICH WILL REMAIN 0. THE POSITIONS ON THE " 120 PRINT MATRIX BOARD ARE REFERRED TO BY ROWS, THEN COLUMNS." 121 PRINT "FOR EXAMPLE, THE UPPER RIGHT HAND POSITION WOULD" 122 PRINT "BE REFERRED TO: 1,3. HERE ARE THE RULES AND CONDITIONS:" 123 PRINT 150 PRINT "YOU ARE NOT ALLOWED TO CHANGE A 0 TO A 1; YOU MUST " 160 PRINT "CHANGE 1'S TO 0'S!" 170 PRINT 180 PRINT "WHEN A 1 IS MADE 0, ITS IMMEDIATE NEIGHBORS CHANGE " 190 PRINT "STATE, THAT IS, 1'S BECOME 0'S AND VICE VERSA." 200 PRINT "FOR EXAMPLE, IF YOUR MOVE WAS TO CHANGE 1,1 BOTH 1,2" 210 PRINT "AND 2,1 WOULD CHANG STATE. IN ADDITION, CHANGING CORNER" 220 PRINT "POSITIONS ALSO CHANGES THE CENTER POSITION; CHANGING" 221 PRINT "CENTER POSITION ALSO CHANGES OUTSIDE MIDDLE POSITIONS." 230 PRINT "(1,2);(2,1);(2,3);AND(3,2)." 240 PRINT 250 PRINT "IF YOU ARE STILL UNSURE, TRY IT AND OBSERVE." 260 PRINT "WHAT HAPPENS ON THE BOARD." 270 PRINT " AFTER EACH MOVE THE NEW BOARD WILL BE PRINTED OUT." 280 PRINT 290 PRINT "PLEASE GIVE ME A RANDOM NUMBER TO START THE GAME OFF"; 300 INPUT X 310 DIM A[3,3] 320 FOR M=1 TO 3 330 FOR N=1 TO 3 340 LET A[M,N]=INT(RND(X)+.5) 350 NEXT N 360 NEXT M 370 FOR Q=1 TO 5 380 PRINT 390 NEXT Q 400 PRINT 410 GOTO 980 420 PRINT 430 MAT PRINT A; 440 PRINT "MAKE YOUR MOVE"; 450 INPUT M,N 460 PRINT 470 IF M#1 AND M#2 AND M#3 OR N#1 AND N#2 AND N#3 THEN 630 480 IF A[M,N]=0 THEN 600 490 LET A[M,N]=0 500 IF M=1 AND N=1 THEN 650 510 IF M=1 AND N=2 THEN 690 520 IF M=1 AND N=3 THEN 720 530 IF M=2 AND N=1 THEN 760 540 IF M=2 AND N=2 THEN 790 550 IF M=2 AND N=3 THEN 840 560 IF M=3 AND N=1 THEN 870 570 IF M=3 AND N=2 THEN 910 580 IF M=3 AND N=3 THEN 940 590 GOTO 40 600 PRINT "DON'T CHEAT! YOU MUST CHANGE 1'S TO 0'S." 610 PRINT "NOW, GIVE ME ANOTHER POSITION." 620 GOTO 450 630 PRINT "PLEASE GIVE ME PROPER DATA REFERRING TO BOARD." 640 GOTO 450 650 LET A[1,2]= NOT A[1,2] 660 LET A[2,1]= NOT A[2,1] 670 LET A[2,2]= NOT A[2,2] 680 GOTO 410 690 LET A[1,1]= NOT A[1,1] 700 LET A[1,3]= NOT A[1,3] 710 GOTO 410 720 LET A[1,2]= NOT A[1,2] 730 LET A[2,3]= NOT A[2,3] 740 LET A[2,2]= NOT A[2,2] 750 GOTO 410 760 LET A[1,1]= NOT A[1,1] 770 LET A[3,1]= NOT A[3,1] 780 GOTO 410 790 LET A[1,2]= NOT A[1,2] 800 LET A[2,1]= NOT A[2,1] 810 LET A[2,3]= NOT A[2,3] 820 LET A[3,2]= NOT A[3,2] 830 GOTO 410 840 LET A[1,3]= NOT A[1,3] 850 LET A[3,3]= NOT A[3,3] 860 GOTO 410 870 LET A[2,1]= NOT A[2,1] 880 LET A[3,2]= NOT A[3,2] 890 LET A[2,2]= NOT A[2,2] 900 GOTO 410 910 LET A[3,1]= NOT A[3,1] 920 LET A[3,3]= NOT A[3,3] 930 GOTO 410 940 LET A[2,3]= NOT A[2,3] 950 LET A[3,2]= NOT A[3,2] 960 LET A[2,2]= NOT A[2,2] 970 GOTO 410 980 IF A[1,1] AND A[1,2] AND A[1,3] AND A[2,1] THEN 1000 990 GOTO 1060 1000 IF A[2,3] AND A[3,1] AND A[3,2] AND A[3,3] THEN 1020 1010 GOTO 1060 1020 PRINT "*****CONLATIONS - YOU SOLVED THE GREAPUZZLE*****" 1030 PRINT 1040 MAT PRINTA; 1050 STOP 1060 IF NOT A[1,1] AND NOT A[1,2] AND NOT A[1,3] THEN 180 1061 IF NOT A[2,1] AND NOT A[2,2] THEN 1080 1070 GOTO 420 1080 IF NOT A[3,1] AND NOT A[3,2] THEN 1100 1081 IF NOT A[3,3] THEN 1100 1090 GOTO 420 1100 PRINT "*****SORRY - NO WAY YOU'LL WIN NOW!!****110 PNT 1120 MAT PRIN ; 1130 114 END