10 ' * TO MAKE IT SO PEGS CAN BE ENTERED FROM THE OUTSIDE ADD LINE 780 BELOW 20 ' * 780 IF S(A,B) = 0 THEN 600 30 ' *** DEFINE VARIABLES *** 40 DIM S(11,11) : COLOR 7,0,1 50 BLACK=0:BLUE=1:GREEN=2:CYAN=3:RED=4:MAGENTA=5:YELLOW=6:WHITE=7:BLINK=16 60 PEGCOL=RED : BORCOL=WHITE : CURCOL=YELLOW + BLINK 70 B$=CHR$(0) : NP$=CHR$(176) 80 '*** START *** 90 KEY OFF:CLS:COLOR WHITE:PRINT:PRINT:PRINT 100 PRINT " ÉÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍ»" 110 PRINT " ÌÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎ͹" 120 PRINT " º º º º" 130 PRINT " º º º º" 140 PRINT " º º WELCOME TO HI-Q! º º" 150 PRINT " º º º º" 160 PRINT " º º PROGRAM WRITTEN BY DAN BUCK º º" 170 PRINT " º º º º" 180 PRINT " º º º º" 190 PRINT " ÌÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎ͹" 200 PRINT " ÈÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊͼ" 210 PRINT:PRINT:PRINT 220 PRINT " CHOOSE THE NUMBER OF THE CHARACTER YOU WOULD LIKE" 230 PRINT " YOUR HI-Q PEGS TO LOOK LIKE (1-7)" 240 PRINT:PRINT " "; 250 FOR X=1 TO 6 : PRINT X;"-";CHR$(X);" ";:NEXT X 260 I$=INKEY$:IF I$=""THEN 260 270 IF I$="C" THEN LOCATE 23,18:INPUT"ASCII CHARACTER #";I:P$=CHR$(I):GOTO 300 280 I=ASC(I$)-48 : IF I<1 OR I>6 THEN 260 ELSE P$=CHR$(I) 290 ' *** SET UP BOARD *** 300 CLS : COLOR BORCOL : PRINT : PRINT : PRINT : PRINT 310 PRINT" ÚÄÄÄÂÄÄÄÂÄÄÄ¿ BE SURE THAT NUM LOCK IS DOWN" 340 PRINT" ³ ³ ³ ³" 350 PRINT" ÃÄÄÄÅÄÄÄÅÄÄÄ´ CONTROL KEYS" 360 PRINT" ³ ³ ³ ³" 370 PRINT" ÚÄÄÄÂÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÂÄÄÄ¿" 380 PRINT" ³ ³ ³ ³ ³ ³ ³ ³ R - REPLACE PEG TO ITS" 390 PRINT" ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄ´ ORIGINAL POSITION" 400 PRINT" ³ ³ ³ ³ ³ ³ ³ ³ Q - QUIT / GIVE UP 410 PRINT" ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄ´" 420 PRINT" ³ ³ ³ ³ ³ ³ ³ ³" 430 PRINT" ÀÄÄÄÁÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÁÄÄÄÙ 8-UP" 440 PRINT" ³ ³ ³ ³" 450 PRINT" ÃÄÄÄÅÄÄÄÅÄÄÄ´ 4-LEFT 5-SELECT 6-RIGHT" 460 PRINT" ³ ³ ³ ³" 490 PRINT" ÀÄÄÄÁÄÄÄÁÄÄÄÙ 2-DOWN" 500 COLOR PEGCOL 510 FOR A=1 TO 7 520 FOR B=1 TO 7 530 IF (A<3 OR A>5) AND (B<3 OR B>5) THEN S(A,B)=9:GOTO 550 540 GOSUB 990 : PRINT P$; : S(A,B)=1 550 NEXT B 560 NEXT A 570 T=32:P=0 : CR$=NP$:R$=B$ : A=4:B=4:S(A,B)=0 : ST=TIMER 580 COLOR CURCOL : GOSUB 990 : PRINT CR$; 590 ' *** PLAY THE GAME*** 600 I$=INKEY$ 610 IF I$=""THEN 600 620 IF I$="2" THEN IF B<>7 THEN B=B+1 : GOSUB 740 630 IF I$="4" THEN IF A<>1 THEN A=A-1 : GOSUB 740 640 IF I$="8" THEN IF B<>1 THEN B=B-1 : GOSUB 740 650 IF I$="6" THEN IF A<>7 THEN A=A+1 : GOSUB 740 660 IF I$="5" THEN IF P=1 THEN GOSUB 850 ELSE GOSUB 790 670 IF I$="Q" OR I$="q" THEN 1010 680 IF (I$="R" OR I$="r") AND P=1 THEN GOSUB 990: COLOR PEGCOL: PRINT R$: A=PA: B=PB: GOSUB 950 690 IF I$="C" OR I$="c" THEN LOCATE 23,15:INPUT I:P$=CHR$(I):GOTO 600 700 IF I$="T" OR I$="t" THEN LOCATE 23,15: PRINT T;"PEGS LEFT.":GOTO 600 710 IF I$="D" OR I$="d" THEN S(A,B)=1:R$=P$:T=T+1:GOTO 600 715 IF I$="S" OR I$="s" THEN LOCATE 23,13 : PRINT TIMER-ST;"SECONDS"; 720 GOTO 600 730 ' *** MOVE CURSOR *** 740 LOCATE Y,X : COLOR PEGCOL : PRINT R$ 750 GOSUB 990 : COLOR CURCOL : PRINT CR$ 760 IF S(A,B)=1 THEN R$=P$ ELSE R$=B$ 770 RETURN 780 ' *** SELECT *** 790 IF S(A,B) <> 1 THEN 600 800 CR$=P$:R$=B$:S(A,B)=0:P=1 810 GOSUB 990:COLOR CURCOL:PRINT CR$; 820 PA=A:PB=B 830 RETURN 840 ' *** DROP *** 850 IF S(A,B)<>0 THEN BEEP:RETURN 860 NA=A:NB=B 870 IF A=PA AND B=PB THEN 950 880 IF (A=PA-2 AND B=PB) AND S(PA-1,PB)=1 THEN A=A+1:GOTO 930 890 IF (A=PA+2 AND B=PB) AND S(PA+1,PB)=1 THEN A=A-1:GOTO 930 900 IF (A=PA AND B=PB+2) AND S(PA,PB+1)=1 THEN B=B-1:GOTO 930 910 IF (A=PA AND B=PB-2) AND S(PA,PB-1)=1 THEN B=B+1:GOTO 930 920 BEEP:RETURN 930 GOSUB 990 : PRINT B$; 940 S(A,B)=0 : T=T-1 : A=NA : B=NB 950 S(A,B)=1:R$=P$:CR$=NP$:P=0 960 GOSUB 990:COLOR PEGCOL+BLINK:PRINT R$; 970 RETURN 980 '*** CONVERT A & B TO X & Y COORDINATES *** 990 X=A*4+5 : Y=B*2+4 : LOCATE Y,X 1000 RETURN 1010 ' *** QUIT *** 1020 COLOR YELLOW: LOCATE 23,8:PRINT T;"PEGS LEFT."; 1030 IF T>5 THEN T=5 1040 FOR X=1 TO T:READ M$:NEXT X 1050 DATA A GENIUS!,EXCELLENT!,VERY GOOD!,NOT BAD.,KEEP TRYING. 1060 PRINT " ";M$: RESTORE 1070 LOCATE 23,46:INPUT"PLAY AGAIN (Y/N)";I$ 1080 IF I$="N" OR I$="n" THEN CHAIN"MENU" ELSE 80