00000000: 00 20 54 4F 20 49 4E 49 54 49 41 4C 49 5A 45 2E |. TO INITIALIZE.|
00000010: 4B 4E 4F 57 4C 45 44 47 45 0D 20 4D 41 4B 45 20 |KNOWLEDGE. MAKE |
00000020: 22 4B 4E 4F 57 4C 45 44 47 45 20 22 46 49 53 48 |"KNOWLEDGE "FISH|
00000030: 0D 45 4E 44 0D 0D 54 4F 20 41 44 44 2E 41 2E 4F |.END..TO ADD.A.O|
00000040: 52 2E 41 4E 20 3A 57 4F 52 44 0D 20 54 45 53 54 |R.AN :WORD. TEST|
00000050: 20 4D 45 4D 42 45 52 3F 20 28 20 46 49 52 53 54 | MEMBER? ( FIRST|
00000060: 20 3A 57 4F 52 44 20 29 20 5B 41 20 45 20 49 20 | :WORD ) [A E I |
00000070: 4F 20 55 5D 0D 20 49 46 54 52 55 45 20 4F 55 54 |O U]. IFTRUE OUT|
00000080: 50 55 54 20 53 45 4E 54 45 4E 43 45 20 22 41 4E |PUT SENTENCE "AN|
00000090: 20 3A 57 4F 52 44 0D 20 49 46 46 41 4C 53 45 20 | :WORD. IFFALSE |
000000A0: 4F 55 54 50 55 54 20 53 45 4E 54 45 4E 43 45 20 |OUTPUT SENTENCE |
000000B0: 22 41 20 3A 57 4F 52 44 0D 45 4E 44 0D 0D 54 4F |"A :WORD.END..TO|
000000C0: 20 47 45 54 2E 53 4D 41 52 54 45 52 20 3A 57 52 | GET.SMARTER :WR|
000000D0: 4F 4E 47 2E 41 4E 53 57 45 52 0D 20 50 52 49 4E |ONG.ANSWER. PRIN|
000000E0: 54 20 5B 4F 48 20 57 45 4C 4C 2C 20 49 20 57 41 |T [OH WELL, I WA|
000000F0: 53 20 57 52 4F 4E 47 2E 20 57 48 41 54 20 57 41 |S WRONG. WHAT WA|
00000100: 53 20 49 54 3F 5D 0D 20 4D 41 4B 45 20 22 52 49 |S IT?]. MAKE "RI|
00000110: 47 48 54 2E 41 4E 53 57 45 52 20 28 20 4C 41 53 |GHT.ANSWER ( LAS|
00000120: 54 20 52 45 51 55 45 53 54 20 29 0D 20 50 52 49 |T REQUEST ). PRI|
00000130: 4E 54 20 5B 50 4C 45 41 53 45 20 54 59 50 45 20 |NT [PLEASE TYPE |
00000140: 49 4E 20 41 20 51 55 45 53 54 49 4F 4E 20 57 48 |IN A QUESTION WH|
00000150: 4F 53 45 20 41 4E 53 57 45 52 5D 0D 20 50 52 49 |OSE ANSWER]. PRI|
00000160: 4E 54 20 28 20 53 45 20 5B 49 53 20 22 59 45 53 |NT ( SE [IS "YES|
00000170: 22 20 46 4F 52 5D 20 41 44 44 2E 41 2E 4F 52 2E |" FOR] ADD.A.OR.|
00000180: 41 4E 20 3A 52 49 47 48 54 2E 41 4E 53 57 45 52 |AN :RIGHT.ANSWER|
00000190: 20 5B 41 4E 44 5D 20 29 0D 20 50 52 49 4E 54 20 | [AND] ). PRINT |
000001A0: 28 20 53 45 20 5B 22 4E 4F 22 20 46 4F 52 5D 20 |( SE ["NO" FOR] |
000001B0: 41 44 44 2E 41 2E 4F 52 2E 41 4E 20 3A 57 52 4F |ADD.A.OR.AN :WRO|
000001C0: 4E 47 2E 41 4E 53 57 45 52 20 29 0D 20 4D 41 4B |NG.ANSWER ). MAK|
000001D0: 45 20 22 51 55 45 53 54 49 4F 4E 20 52 45 51 55 |E "QUESTION REQU|
000001E0: 45 53 54 0D 20 45 58 50 41 4E 44 2E 4B 4E 4F 57 |EST. EXPAND.KNOW|
000001F0: 4C 45 44 47 45 20 3A 51 55 45 53 54 49 4F 4E 20 |LEDGE :QUESTION |
00000200: 3A 52 49 47 48 54 2E 41 4E 53 57 45 52 20 3A 57 |:RIGHT.ANSWER :W|
00000210: 52 4F 4E 47 2E 41 4E 53 57 45 52 0D 45 4E 44 0D |RONG.ANSWER.END.|
00000220: 0D 54 4F 20 45 58 50 41 4E 44 2E 4B 4E 4F 57 4C |.TO EXPAND.KNOWL|
00000230: 45 44 47 45 20 3A 4E 45 57 2E 51 55 45 53 54 49 |EDGE :NEW.QUESTI|
00000240: 4F 4E 20 3A 59 45 53 2E 41 4E 53 57 45 52 20 3A |ON :YES.ANSWER :|
00000250: 4E 4F 2E 41 4E 53 57 45 52 0D 20 4D 41 4B 45 20 |NO.ANSWER. MAKE |
00000260: 22 4B 4E 4F 57 4C 45 44 47 45 20 52 45 50 4C 41 |"KNOWLEDGE REPLA|
00000270: 43 45 20 3A 4B 4E 4F 57 4C 45 44 47 45 20 3A 57 |CE :KNOWLEDGE :W|
00000280: 52 4F 4E 47 2E 41 4E 53 57 45 52 20 28 20 4C 49 |RONG.ANSWER ( LI|
00000290: 53 54 20 3A 4E 45 57 2E 51 55 45 53 54 49 4F 4E |ST :NEW.QUESTION|
000002A0: 20 3A 52 49 47 48 54 2E 41 4E 53 57 45 52 20 3A | :RIGHT.ANSWER :|
000002B0: 57 52 4F 4E 47 2E 41 4E 53 57 45 52 20 29 0D 45 |WRONG.ANSWER ).E|
000002C0: 4E 44 0D 0D 54 4F 20 52 45 50 4C 41 43 45 20 3A |ND..TO REPLACE :|
000002D0: 44 41 54 41 20 3A 57 4F 52 44 20 3A 4E 45 57 2E |DATA :WORD :NEW.|
000002E0: 42 52 41 4E 43 48 0D 20 49 46 20 3A 44 41 54 41 |BRANCH. IF :DATA|
000002F0: 20 3D 20 3A 57 4F 52 44 20 4F 50 20 3A 4E 45 57 | = :WORD OP :NEW|
00000300: 2E 42 52 41 4E 43 48 0D 20 49 46 20 57 4F 52 44 |.BRANCH. IF WORD|
00000310: 3F 20 3A 44 41 54 41 20 4F 50 20 3A 44 41 54 41 |? :DATA OP :DATA|
00000320: 0D 20 4F 50 20 28 20 4C 49 53 54 20 51 55 45 53 |. OP ( LIST QUES|
00000330: 54 49 4F 4E 20 3A 44 41 54 41 20 52 45 50 4C 41 |TION :DATA REPLA|
00000340: 43 45 20 59 45 53 2E 42 52 41 4E 43 48 20 3A 44 |CE YES.BRANCH :D|
00000350: 41 54 41 20 3A 57 4F 52 44 20 3A 4E 45 57 2E 42 |ATA :WORD :NEW.B|
00000360: 52 41 4E 43 48 20 52 45 50 4C 41 43 45 20 4E 4F |RANCH REPLACE NO|
00000370: 2E 42 52 41 4E 43 48 20 3A 44 41 54 41 20 3A 57 |.BRANCH :DATA :W|
00000380: 4F 52 44 20 3A 4E 45 57 2E 42 52 41 4E 43 48 20 |ORD :NEW.BRANCH |
00000390: 29 0D 45 4E 44 0D 0D 54 4F 20 57 41 49 54 20 3A |).END..TO WAIT :|
000003A0: 4E 0D 20 52 45 50 45 41 54 20 3A 4E 20 5B 5D 0D |N. REPEAT :N [].|
000003B0: 45 4E 44 0D 0D 54 4F 20 4E 4F 2E 42 52 41 4E 43 |END..TO NO.BRANC|
000003C0: 48 20 3A 54 52 45 45 0D 20 4F 55 54 50 55 54 20 |H :TREE. OUTPUT |
000003D0: 4C 41 53 54 20 3A 54 52 45 45 0D 45 4E 44 0D 0D |LAST :TREE.END..|
000003E0: 54 4F 20 59 45 53 2E 42 52 41 4E 43 48 20 3A 54 |TO YES.BRANCH :T|
000003F0: 52 45 45 0D 20 4F 55 54 50 55 54 20 46 49 52 53 |REE. OUTPUT FIRS|
00000400: 54 20 42 55 54 46 49 52 53 54 20 3A 54 52 45 45 |T BUTFIRST :TREE|
00000410: 0D 45 4E 44 0D 0D 54 4F 20 51 55 45 53 54 49 4F |.END..TO QUESTIO|
00000420: 4E 20 3A 54 52 45 45 0D 20 4F 55 54 50 55 54 20 |N :TREE. OUTPUT |
00000430: 46 49 52 53 54 20 3A 54 52 45 45 0D 45 4E 44 0D |FIRST :TREE.END.|
00000440: 0D 54 4F 20 41 53 4B 2E 59 45 53 2E 4F 52 2E 4E |.TO ASK.YES.OR.N|
00000450: 4F 20 3A 51 55 45 53 54 49 4F 4E 0D 20 4C 4F 43 |O :QUESTION. LOC|
00000460: 41 4C 20 22 41 4E 53 57 45 52 0D 20 50 52 49 4E |AL "ANSWER. PRIN|
00000470: 54 31 20 3A 51 55 45 53 54 49 4F 4E 0D 20 49 46 |T1 :QUESTION. IF|
00000480: 20 22 3F 20 3D 20 4C 41 53 54 20 4C 41 53 54 20 | "? = LAST LAST |
00000490: 3A 51 55 45 53 54 49 4F 4E 20 50 52 49 4E 54 20 |:QUESTION PRINT |
000004A0: 5B 5D 20 45 4C 53 45 20 50 52 49 4E 54 20 22 3F |[] ELSE PRINT "?|
000004B0: 0D 20 4D 41 4B 45 20 22 41 4E 53 57 45 52 20 52 |. MAKE "ANSWER R|
000004C0: 45 51 55 45 53 54 0D 20 49 46 20 3A 41 4E 53 57 |EQUEST. IF :ANSW|
000004D0: 45 52 20 3D 20 5B 59 45 53 5D 20 4F 55 54 50 55 |ER = [YES] OUTPU|
000004E0: 54 20 5B 59 45 53 5D 0D 20 49 46 20 3A 41 4E 53 |T [YES]. IF :ANS|
000004F0: 57 45 52 20 3D 20 5B 4E 4F 5D 20 4F 55 54 50 55 |WER = [NO] OUTPU|
00000500: 54 20 5B 4E 4F 5D 0D 20 50 52 49 4E 54 20 5B 50 |T [NO]. PRINT [P|
00000510: 4C 45 41 53 45 20 54 59 50 45 20 22 59 45 53 22 |LEASE TYPE "YES"|
00000520: 20 4F 52 20 22 4E 4F 22 5D 0D 20 4F 55 54 50 55 | OR "NO"]. OUTPU|
00000530: 54 20 41 53 4B 2E 59 45 53 2E 4F 52 2E 4E 4F 20 |T ASK.YES.OR.NO |
00000540: 3A 51 55 45 53 54 49 4F 4E 0D 45 4E 44 0D 0D 54 |:QUESTION.END..T|
00000550: 4F 20 46 49 4E 41 4C 2E 47 55 45 53 53 20 3A 43 |O FINAL.GUESS :C|
00000560: 48 4F 49 43 45 0D 20 4C 4F 43 41 4C 20 22 46 49 |HOICE. LOCAL "FI|
00000570: 4E 41 4C 2E 51 55 45 53 54 49 4F 4E 0D 20 4C 4F |NAL.QUESTION. LO|
00000580: 43 41 4C 20 22 52 45 53 50 4F 4E 53 45 0D 20 4D |CAL "RESPONSE. M|
00000590: 41 4B 45 20 22 46 49 4E 41 4C 2E 51 55 45 53 54 |AKE "FINAL.QUEST|
000005A0: 49 4F 4E 20 28 20 53 45 20 5B 49 53 20 49 54 5D |ION ( SE [IS IT]|
000005B0: 20 41 44 44 2E 41 2E 4F 52 2E 41 4E 20 3A 43 48 | ADD.A.OR.AN :CH|
000005C0: 4F 49 43 45 20 5B 3F 5D 20 29 0D 20 4D 41 4B 45 |OICE [?] ). MAKE|
000005D0: 20 22 52 45 53 50 4F 4E 53 45 20 41 53 4B 2E 59 | "RESPONSE ASK.Y|
000005E0: 45 53 2E 4F 52 2E 4E 4F 20 3A 46 49 4E 41 4C 2E |ES.OR.NO :FINAL.|
000005F0: 51 55 45 53 54 49 4F 4E 0D 20 49 46 20 3A 52 45 |QUESTION. IF :RE|
00000600: 53 50 4F 4E 53 45 20 3D 20 5B 59 45 53 5D 20 50 |SPONSE = [YES] P|
00000610: 52 49 4E 54 20 5B 4C 4F 4F 4B 20 48 4F 57 20 53 |RINT [LOOK HOW S|
00000620: 4D 41 52 54 20 49 20 41 4D 21 5D 20 53 54 4F 50 |MART I AM!] STOP|
00000630: 0D 20 47 45 54 2E 53 4D 41 52 54 45 52 20 3A 43 |. GET.SMARTER :C|
00000640: 48 4F 49 43 45 0D 45 4E 44 0D 0D 54 4F 20 47 55 |HOICE.END..TO GU|
00000650: 45 53 53 20 3A 43 48 4F 49 43 45 53 0D 20 49 46 |ESS :CHOICES. IF|
00000660: 20 28 20 57 4F 52 44 3F 20 3A 43 48 4F 49 43 45 | ( WORD? :CHOICE|
00000670: 53 20 29 20 46 49 4E 41 4C 2E 47 55 45 53 53 20 |S ) FINAL.GUESS |
00000680: 3A 43 48 4F 49 43 45 53 20 53 54 4F 50 0D 20 4C |:CHOICES STOP. L|
00000690: 4F 43 41 4C 20 22 52 45 53 50 4F 4E 53 45 0D 20 |OCAL "RESPONSE. |
000006A0: 4D 41 4B 45 20 22 52 45 53 50 4F 4E 53 45 20 41 |MAKE "RESPONSE A|
000006B0: 53 4B 2E 59 45 53 2E 4F 52 2E 4E 4F 20 28 20 51 |SK.YES.OR.NO ( Q|
000006C0: 55 45 53 54 49 4F 4E 20 3A 43 48 4F 49 43 45 53 |UESTION :CHOICES|
000006D0: 20 29 0D 20 49 46 20 3A 52 45 53 50 4F 4E 53 45 | ). IF :RESPONSE|
000006E0: 20 3D 20 5B 59 45 53 5D 20 47 55 45 53 53 20 59 | = [YES] GUESS Y|
000006F0: 45 53 2E 42 52 41 4E 43 48 20 3A 43 48 4F 49 43 |ES.BRANCH :CHOIC|
00000700: 45 53 20 53 54 4F 50 0D 20 47 55 45 53 53 20 4E |ES STOP. GUESS N|
00000710: 4F 2E 42 52 41 4E 43 48 20 3A 43 48 4F 49 43 45 |O.BRANCH :CHOICE|
00000720: 53 0D 45 4E 44 0D 0D 54 4F 20 41 4E 49 4D 41 4C |S.END..TO ANIMAL|
00000730: 0D 20 4E 44 0D 20 50 52 49 4E 54 20 5B 54 48 49 |. ND. PRINT [THI|
00000740: 4E 4B 20 4F 46 20 41 4E 20 41 4E 49 4D 41 4C 2E |NK OF AN ANIMAL.|
00000750: 20 49 20 57 49 4C 4C 5D 0D 20 50 52 49 4E 54 20 | I WILL]. PRINT |
00000760: 5B 54 52 59 20 54 4F 20 47 55 45 53 53 20 49 54 |[TRY TO GUESS IT|
00000770: 20 42 59 20 41 53 4B 49 4E 47 20 51 55 45 53 54 | BY ASKING QUEST|
00000780: 49 4F 4E 53 2E 5D 0D 20 50 52 49 4E 54 20 5B 5D |IONS.]. PRINT []|
00000790: 0D 20 47 55 45 53 53 20 3A 4B 4E 4F 57 4C 45 44 |. GUESS :KNOWLED|
000007A0: 47 45 0D 20 50 52 49 4E 54 20 5B 4C 45 54 27 53 |GE. PRINT [LET'S|
000007B0: 20 54 52 59 20 41 47 41 49 4E 5D 0D 20 57 41 49 | TRY AGAIN]. WAI|
000007C0: 54 20 31 30 30 30 0D 20 41 4E 49 4D 41 4C 0D 45 |T 1000. ANIMAL.E|
000007D0: 4E 44 0D 0D 4D 41 4B 45 20 22 4B 4E 4F 57 4C 45 |ND..MAKE "KNOWLE|
000007E0: 44 47 45 20 5B 5B 44 4F 45 53 20 49 54 20 48 41 |DGE [[DOES IT HA|
000007F0: 56 45 20 46 4F 55 52 20 4C 45 47 53 3F 5D 20 5B |VE FOUR LEGS?] [|
00000800: 5B 44 4F 45 53 20 49 54 20 47 4F 20 4D 4F 4F 3F |[DOES IT GO MOO?|
00000810: 5D 20 43 4F 57 20 5B 5B 44 4F 45 53 20 49 54 20 |] COW [[DOES IT |
00000820: 57 48 49 4E 4E 59 3F 5D 20 48 4F 52 53 45 20 50 |WHINNY?] HORSE P|
00000830: 49 47 5D 5D 20 5B 5B 44 4F 45 53 20 49 54 20 48 |IG]] [[DOES IT H|
00000840: 41 56 45 20 43 4C 41 57 53 3F 5D 20 4C 4F 42 53 |AVE CLAWS?] LOBS|
00000850: 54 45 52 20 5B 5B 43 41 4E 20 49 54 20 52 55 4E |TER [[CAN IT RUN|
00000860: 3F 5D 20 4F 53 54 52 49 43 48 20 46 49 53 48 5D |?] OSTRICH FISH]|
00000870: 5D 5D 0D 4D 41 4B 45 20 22 53 54 41 52 54 55 50 |]].MAKE "STARTUP|
00000880: 20 5B 41 4E 49 4D 41 4C 5D 0D | [ANIMAL]. |
. TO INITIALIZE.KNOWLEDGE. MAKE "KNOWLED
GE "FISH.END..TO ADD.A.OR.AN :WORD. TEST
MEMBER? ( FIRST :WORD ) [A E I O U]. IF
TRUE OUTPUT SENTENCE "AN :WORD. IFFALSE
OUTPUT SENTENCE "A :WORD.END..TO GET.SMA
RTER :WRONG.ANSWER. PRINT [OH WELL, I WA
S WRONG. WHAT WAS IT?]. MAKE "RIGHT.ANSW
ER ( LAST REQUEST ). PRINT [PLEASE TYPE
IN A QUESTION WHOSE ANSWER]. PRINT ( SE
[IS "YES" FOR] ADD.A.OR.AN :RIGHT.ANSWER
[AND] ). PRINT ( SE ["NO" FOR] ADD.A.OR
.AN :WRONG.ANSWER ). MAKE "QUESTION REQU
EST. EXPAND.KNOWLEDGE :QUESTION :RIGHT.A
NSWER :WRONG.ANSWER.END..TO EXPAND.KNOWL
EDGE :NEW.QUESTION :YES.ANSWER :NO.ANSWE
R. MAKE "KNOWLEDGE REPLACE :KNOWLEDGE :W
RONG.ANSWER ( LIST :NEW.QUESTION :RIGHT.
ANSWER :WRONG.ANSWER ).END..TO REPLACE :
DATA :WORD :NEW.BRANCH. IF :DATA = :WORD
OP :NEW.BRANCH. IF WORD? :DATA OP :DATA
. OP ( LIST QUESTION :DATA REPLACE YES.B
RANCH :DATA :WORD :NEW.BRANCH REPLACE NO
.BRANCH :DATA :WORD :NEW.BRANCH ).END..T
O WAIT :N. REPEAT :N [].END..TO NO.BRANC
H :TREE. OUTPUT LAST :TREE.END..TO YES.B
RANCH :TREE. OUTPUT FIRST BUTFIRST :TREE
.END..TO QUESTION :TREE. OUTPUT FIRST :T
REE.END..TO ASK.YES.OR.NO :QUESTION. LOC
AL "ANSWER. PRINT1 :QUESTION. IF "? = LA
ST LAST :QUESTION PRINT [] ELSE PRINT "?
. MAKE "ANSWER REQUEST. IF :ANSWER = [YE
S] OUTPUT [YES]. IF :ANSWER = [NO] OUTPU
T [NO]. PRINT [PLEASE TYPE "YES" OR "NO"
]. OUTPUT ASK.YES.OR.NO :QUESTION.END..T
O FINAL.GUESS :CHOICE. LOCAL "FINAL.QUES
TION. LOCAL "RESPONSE. MAKE "FINAL.QUEST
ION ( SE [IS IT] ADD.A.OR.AN :CHOICE [?]
). MAKE "RESPONSE ASK.YES.OR.NO :FINAL.
QUESTION. IF :RESPONSE = [YES] PRINT [LO
OK HOW SMART I AM!] STOP. GET.SMARTER :C
HOICE.END..TO GUESS :CHOICES. IF ( WORD?
:CHOICES ) FINAL.GUESS :CHOICES STOP. L
OCAL "RESPONSE. MAKE "RESPONSE ASK.YES.O
R.NO ( QUESTION :CHOICES ). IF :RESPONSE
= [YES] GUESS YES.BRANCH :CHOICES STOP.
GUESS NO.BRANCH :CHOICES.END..TO ANIMAL
. ND. PRINT [THINK OF AN ANIMAL. I WILL]
. PRINT [TRY TO GUESS IT BY ASKING QUEST
IONS.]. PRINT []. GUESS :KNOWLEDGE. PRIN
T [LET'S TRY AGAIN]. WAIT 1000. ANIMAL.E
ND..MAKE "KNOWLEDGE [[DOES IT HAVE FOUR
LEGS?] [[DOES IT GO MOO?] COW [[DOES IT
WHINNY?] HORSE PIG]] [[DOES IT HAVE CLAW
S?] LOBSTER [[CAN IT RUN?] OSTRICH FISH]
]].MAKE "STARTUP [ANIMAL].
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL