/***************************************************** * The original Triangle Puzzle incarnation I wrote * during my summer vacation when I was 14 years old * on a TRS-80 Model III, * * DISCLAIMER: I do NOT code like this anymore! * * Copyright (c) 2000 by Mohan Embar. * All Rights Reserved. ****************************************************/ 10 CLS:DEFINTA-Z:DIMA(25),B(30,13),C(13):C=-1:A(0)=-1 20 FORR=1TO25STEP5:C=C+1 30 FORQ=RTOR+C:A(Q)=1:NEXT:IFC=4THEN60 40 FORQ=R+C+1TOR+5:A(Q)=-1:NEXTQ,R 50 Z=X/5:Y=X-(Z*(9-Z))/2:RETURN 60 INPUT"ENTER PEG TO REMOVE";A:A(A)=0:B=1:CLS 70 GOSUB180:IFN=0THEN100ELSEC(B)=N:PRINT@64*B,B; 80 K=C(B):GOSUB240 90 IFB<13THENB=B+1:GOTO70ELSE140 100 B=B-1:IFB=0THEN130 105 GOSUB260:C(B)=C(B)-1 110 IFC(B)=0THEN100 120 GOTO80 130 PRINT"SOLUTION NOT FOUND, BEST SEQUENCE :":GOTO150 140 PRINT:PRINT"SOLUTION FOUND:" 150 FORB=1TO13:L=B(C(B),B):PRINTSTR$(B)")"; 160 M=L/256:N=L-M*256:GOTO300 170 NEXT:END 180 N=1:FORR=1TO25:IFA(R)<>1THEN200 190 L=2:GOSUB210:L=10:GOSUB210:L=12:GOSUB210 200 NEXT:N=N-1:RETURN 210 FORQ=-1TO1STEP2:P=R+Q*L:O=Q*L/2 220 IFP<0ORP>25THEN230ELSEIFA(P)=0ANDA(R+O)=1THENB(N,B)=R*256+P:N=N+1 230 NEXT:RETURN 240 L=B(K,B):M=L/256:N=L-M*256:O=(N-M)/2 250 A(N)=A(M):A(M)=0:A(M+O)=0:X=M:GOSUB50:PRINT@64*B+5,Y"-";:X=N:GOSUB50:PRINTY;:RETURN 260 L=B(C(B),B):M=L/256:N=L-M*256:O=(N-M)/2 270 A(M)=A(N):A(N)=0:A(M+O)=1:RETURN 280 FORR=1TON:L=B(R,B) 290 M=L/256:N=L-M*256 300 X=M:GOSUB50:PRINTY"-";:X=N:GOSUB50:PRINTY 310 NEXT