10 GOSUB60100:CLR:PRINT"[147]"CHR$(142) 100 DIM TR(999,2),Q$(999) 117 GOSUB 9000 140 GOTO600 500 PRINT"[147]IS THERE A FILE OF ANIMALS TO USE? (Y/N)" 510 GET A$:IF A$="" THEN 510 520 IF A$="N" THEN 570 525 IF A$<>"Y" THEN 510 530 PRINT"[147] INSERT DISK AND PRESS ANY KEY" 535 GET A$:IF A$="" THEN 535 540 OPEN 3,8,3,"0:ANIMALS,S,R" 545 INPUT#3,NX 550 FOR I=1TONX 555 INPUT#3,Q$(I),TR(I,1),TR(I,2) 560 NEXT:CLOSE3 570 IF P$="Y" THEN RETURN 595 REM ** MAIN MENU ** 600 PRINT"[147]":PRINTTAB(13)"A N I M A L S" 602 PRINT:PRINTTAB(16)"M E N U" 605 PRINT:PRINT" 1) READ FILE OF ANIMALS" 610 PRINT:PRINT" 2) GUESS AN ANIMAL" 615 PRINT:PRINT" 3) DELETE AN ANIMAL" 620 PRINT:PRINT" 4) SAVE CURRENT FILE OF ANIMALS" 625 PRINT:PRINT" 5) LIST KNOWN ANIMALS" 630 PRINT:PRINT" 6) LIST QUESTIONS/POINTERS" 640 PRINT:PRINT" 7) END PROGRAM" 650 GET A$:IF A$="" THEN 650 655 IF A$>"0" AND A$<"8" THEN MM=1 660 ON VAL(A$) GOSUB 530,1000,5000,3020,6000,4000,700 662 IF (MM) THEN MM=. : GOTO600 665 GOTO 650 700 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 710 IFER<>63THENEND 720 LOAD"HELLO CONNECT",8 990 REM ** GUESS ** 1000 X=1:PRINT"[147]":PRINT 1003 PRINT"THINK OF AN ANIMAL":PRINT "AND I WILL TRY TO GUESS IT":PRINT 1005 PRINT"PRESS ANY KEY WHEN YOU'RE READY":PRINT 1010 GET A$:IF A$="" THEN 1010 1020 IF TR(X,1)<0 THEN PRINT "IS IT A ";Q$(X);"(Y/N)? ";:GOTO 1030 1025 PRINT Q$(X);"(Y/N)? "; 1030 GET AN$:IF AN$="" THEN 1030 1035 IF AN$<>"Y" AND AN$<>"N" THEN 1030 1040 PRINT AN$ 1045 IF AN$="Y" AND TR(X,1) <0 THEN GOSUB9300:GOTO2100 1050 IF AN$="N" AND TR(X,2)=0 THEN 2000:REM ADD TO TREE 1055 IF AN$="Y" THEN X=TR(X,1):GOTO 1020 1060 IF AN$="N" THEN X=TR(X,2):GOTO 1020 1065 GOTO 1020 1995 REM ** LEARN ** 2000 PRINT"I GIVE UP. WHAT IS YOUR ANIMAL?" 2002 LE=38:AL=1:NU=1:GOSUB60500:A$=C$ 2005 PRINT:PRINT "WHAT QUESTION SHOULD I ASK TO " 2007 PRINT"DIFFERENTIATE BETWEEN A ";Q$(X):PRINT"AND A ";A$"?" 2008 LE=78:GOSUB60500:NQ$=C$ 2010 PRINT:PRINT"WHAT SHOULD THE ANSWER BE FOR YOUR ":PRINT"ANIMAL (Y/N)?" 2012 GETAN$:IFAN$<>"Y"ANDAN$<>"N"THEN2012 2015 IF AN$="N" THEN 2030 2020 Q$(NX)=A$:TR(NX,1)=-1:Q$(NX+1)=Q$(X):TR(NX+1,1)=-1 2025 Q$(X)=NQ$:TR(X,1)=NX:TR(X,2)=NX+1:NX=NX+2:GOTO 2100 2030 Q$(NX)=Q$(X):TR(NX,1)=-1:Q$(NX+1)=A$:TR(NX+1,1)=-1 2040 Q$(X)=NQ$:TR(X,1)=NX:TR(X,2)=NX+1:NX=NX+2 2100 PRINT:PRINT"PLAY AGAIN (Y/N)?" 2105 GET A$:IF A$="" THEN 2105 2110 IF A$="Y" THEN 1000 2115 IF A$="N" THEN RETURN 2120 GOTO 2105 2995 REM ** SAVE FILE ** 3000 PRINT"WANT TO SAVE WHAT I'VE LEARNED?(Y/N)" 3005 GET A$:IF A$="" THEN 3005 3010 IF A$="N" THEN 3090 3015 IF A$<>"Y" THEN 3005 3020 S$=",":PRINT "[147]INSERT DISK, PRESS ANY KEY WHEN READY" 3025 GET A$:IF A$="" THEN 3025 3030 OPEN 3,8,3,"@0:ANIMALS,S,W" 3040 PRINT#3,NX 3050 FORI=1TONX 3060 PRINT#3,Q$(I)S$TR(I,1)S$TR(I,2) 3070 NEXT 3080 CLOSE3 3090 RETURN 3990 REM ** LIST QUESTIONS/PTRS ** 4000 PRINT"[147]":FORI=1TONX 4010 IF Q$(I) <>"" THEN PRINT I;Q$(I);TR(I,1);TR(I,2) 4020 NEXT 4050 PRINT:PRINT"PRESS ANY KEY TO CONTINUE" 4055 GET A$:IF A$="" THEN 4055 4060 RETURN 4990 REM ** DELETE ANIMAL ** 5000 D=0:PRINT"[147]":PRINT:INPUT"ANIMAL TO DELETE";AD$ 5010 FORI=1TONX 5015 IF Q$(I)=AD$ THEN D=I:I=NX 5020 NEXT 5025 IF D<>0 THEN 5050 5030 PRINT"DOESN'T EXIST":PRINT"PRESS ANY KEY TO CONTINUE" 5035 GET A$:IF A$="" THEN 5035 5040 RETURN 5050 O=0:DP=0:SP=0:PQ=0:FORI=1TONX 5055 IF TR(I,1)=D OR TR(I,2)=D THEN PQ=I:I=NX 5060 NEXT 5100 IF TR(PQ,1)=D THEN DP=1:SP=2:GOTO 5110 5105 SP=1:DP=2 5110 O=TR(PQ,SP) 5115 Q$(D)="":TR(D,1)=0:TR(D,2)=0 5120 Q$(PQ)=Q$(O):TR(PQ,1)=TR(O,1):TR(PQ,2)=TR(O,2) 5130 Q$(O)="":TR(O,1)=0:TR(O,2)=0 5150 PRINT:PRINT AD$;" DELETED":PRINT"PRESS ANY KEY TO CONTINUE" 5155 GET A$:IF A$="" THEN 5155 5160 RETURN 5990 REM ** LIST ANIMALS ** 6000 PRINT"[147]":FORI=1TONX 6010 IF Q$(I) <>"" AND TR(I,1)=-1 THEN PRINT Q$(I) 6020 NEXT 6050 PRINT:PRINT"PRESS ANY KEY TO CONTINUE" 6055 GET A$:IF A$="" THEN 6055 6060 RETURN 8990 REM INITIAL 'KNOWLEDGE' 9000 Q$(1)="DOES IT HAVE WINGS":TR(1,1)=2:TR(1,2)=3:Q$(3)="DOES IT SWIM" 9050 TR(3,1)=4:TR(3,2)=5:Q$(5)="DOES IT HAVE LEGS":TR(5,1)=6:TR(5,2)=7 9105 Q$(2)="DUCK":TR(2,1)=-1 9110 Q$(4)="GUPPY":TR(4,1)=-1 9115 Q$(6)="BEAR":TR(6,1)=-1 9120 Q$(7)="WORM":TR(7,1)=-1 9200 NX=8:RETURN 9300 PRINT"I GUESSED YOUR ANIMAL!":RETURN 60100 POKE53280, 6:POKE53281,14:PRINT"[147]"; 60101 PRINT"loadstarpresents:" 60102 PRINT" " 60103 PRINT" [193]NIMALS  " 60104 PRINT"  " 60105 PRINT" bY m. pOULTONAVAGE  " 60106 PRINT"  " 60107 PRINT" (c)OPYRIGHT 1988  " 60108 PRINT"  " 60109 PRINT" " 60110 PRINT"pRESSspaceTOCONTINUE" 60111 IFPEEK(203)<>60THEN60111 60112 RETURN 60500 C$="":POKE198,.:PRINT"[164]"; 60510 FORA=1TOLE+1 60520 GETZ$:IFZ$=""THEN60520 60530 IFZ$=CHR$(13)THENPRINT"[157] ":RETURN 60540 IFZ$=CHR$(20)ANDA>1THENPRINT"[157][157] [157][157][164]";:A=A-1:C$=LEFT$(C$,A-1):GOTO60520 60550 IF(A=LE+1)THEN60520 60560 IF(NU)AND((Z$>="0")AND(Z$<="9"))THEN60595 60570 IF(AL)AND((Z$>=" "ANDZ$<="/")OR(Z$>=":"ANDZ$<="Z"))THEN60595 60580 IF(AL)THENIF(Z$>="[193]"ANDZ$<="[218]")THEN60595 60590 GOTO60520 60595 PRINT"[157]"Z$;:POKE212,.:PRINT"[164]";:C$=C$+Z$:NEXT