1
0
mirror of https://github.com/PDP-10/its.git synced 2026-04-04 05:09:34 +00:00

TWDEMO - scripted demonstration of SHRDLU.

This is a program that just replays the dialogue in SHRDLU; DEMO FLICK.
This commit is contained in:
Lars Brinkhoff
2019-08-14 13:19:43 +02:00
parent 55877e4cf9
commit 4ec85d9e9f
4 changed files with 308 additions and 2 deletions

305
src/shrdlu/demo.flick Normal file
View File

@@ -0,0 +1,305 @@
(SETQ ERRLIST '((VALRET ':TWDEMO/ )))
(IOC W)
(SETQ PCONSTANT 1)(SETQ PRANDOM 0)
(SETQ WAIT 100)
(SETQ MECONSTANT 1)(SETQ MERANDOM 0)
(SETQ YOUCONSTANT 1)(SETQ YOURANDOM 3)
(SETQ TEXTSIZE 2)
(DISME)(DISYOU)(DTHRU)
@ PICK UP A BIG RED BLOCK.@
(DISME)(FRAME WAIT)
(MOVETO 100 340 500)
(GRASP (QUOTE :B7))
(MOVETO 600 374 200)
(UNGRASP)
(MOVETO 100 440 300)
(GRASP (QUOTE :B6))
(MOVETO 100 440 1000)
(DTHRU)
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@GRASP THE PYRAMID.@
(DISME)(FRAME WAIT)(DTHRU)
@ I DON'T UNDERSTAND WHICH PYRAMID
YOU MEAN.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ FIND A BLOCK WHICH IS TALLER THAN THE ONE
YOU ARE HOLDING AND PUT IT INTO THE
BOX.@
(DISME)(FRAME WAIT)(DTHRU))
@BY "IT", I ASSUME YOU MEAN THE BLOCK
WHICH IS TALLER THAN THE ONE I AM
HOLDING.@
(MOVETO 140 600 300) (UNGRASP) (MOVETO 400 7
00 400) (GRASP (QUOTE :B10)) (MOVETO 700 1100
401) (UNGRASP)(DTHRU)
(DISME)(DTHRU)
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHAT DOES THE BOX CONTAIN?@
(DISME)(FRAME WAIT)(DTHRU)
@ THE BLUE PYRAMID AND THE BLUE BLOCK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHAT IS THE PYRAMID SUPPORTED BY?@
(DISME)(FRAME WAIT)(DTHRU)
@ THE BOX.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ HOW MANY BLOCKS ARE NOT IN THE BOX?@
(DISME)(FRAME WAIT)(DTHRU)
@ FOUR OF THEM.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ IS AT LEAST ONE OF THEM NARROWER THAN
THE ONE WHICH I TOLD YOU TO PICK UP?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES, THE RED CUBE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ IS IT SUPPORTED?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES, BY THE TABLE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ CAN THE TABLE PICK UP BLOCKS?@
(DISME)(FRAME WAIT)(DTHRU)
@ NO.@
(FRAME WAIT)(DISYOU)(DTHRU)
@CAN A PYRAMID BE SUPPORTED BY A BLOCK?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES.@
(FRAME WAIT)(DISYOU)(DTHRU)
@CAN A PYRAMID SUPPORT A PYRAMID?@
(DISME)(FRAME WAIT)(DTHRU)
@ I DON'T KNOW.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ STACK UP TWO PYRAMIDS.@
(DISME)(FRAME WAIT)(DTHRU)
@ I CAN'T.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WILL YOU PLEASE STACK UP BOTH OF THE
RED BLOCKS AND EITHER A GREEN CUBE OR
A PYRAMID?@
(DISME)(FRAME WAIT)
(MOVETO 140 600 300)
(GRASP (QUOTE :B6))
(MOVETO 274 1000 300)
(UNGRASP)
(MOVETO 600 374 200)
(GRASP (QUOTE :B7))
(MOVETO 274 1000 500)
(UNGRASP)
(MOVETO 150 140 200)
(GRASP (QUOTE :B2))
(MOVETO 1000 274 100)
(UNGRASP)
(MOVETO 150 140 100)
(GRASP (QUOTE :B1))
(MOVETO 274 1000 600)
(UNGRASP)
(DTHRU)
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHICH CUBE IS SITTING ON THE TABLE?@
(DISME)(FRAME WAIT)(DTHRU)
@ THE LARGE GREEN ONE WHICH SUPPORTS
THE RED PYRAMID.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ IS THERE A LARGE BLOCK BEHIND A
PYRAMID?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES, THREE OF THEM: A LARGE RED
ONE, A LARGE GREEN CUBE, AND THE
BLUE ONE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ PUT A SMALL ONE ONTO THE GREEN CUBE
WHICH SUPPORTS A PYRAMID.@
(DISME)(FRAME WAIT)
(GRASP (QUOTE :B1))
(MOVETO 477 40 300)
(UNGRASP)
(DTHRU)
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@PUT THE LITTLEST PYRAMID ON TOP OF IT.@
(DISME)(FRAME WAIT)
(MOVETO 1000 274 100)
(GRASP (QUOTE :B2))
(MOVETO 477 40 400)
(UNGRASP)
(DTHRU)
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ DOES THE SHORTEST THING THE TALLEST
PYRAMID'S SUPPORT SUPPORTS SUPPORT
ANYTHING GREEN?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES, THE GREEN PYRAMID.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHAT COLOR IS IT?@
(DISME)(FRAME WAIT)(DTHRU)
@BY "IT", I ASSUME YOU MEAN THE SHORTEST
THING THE TALLEST PYRAMID'S SUPPORT
SUPPORTS.@
(FRAME WAIT) (DISME)(DTHRU)
@ RED@
(FRAME WAIT)(DISYOU)(DTHRU)
@ HOW MANY THINGS ARE ON TOP OF GREEN
CUBES?@
(DISME)(FRAME WAIT)(DTHRU)
@ I'M NOT SURE WHAT YOU MEAN BY "ON TOP
OF "IN THE PHRASE "ON TOP OF GREEN
CUBES " .
DO YOU MEAN:
1 - DIRECTLY ON THE SURFACE
2 - ANWHERE ON TOP OF ?@
(FRAME WAIT)(DISAD 'YOU NIL '/ 2)(DISME)(DTHRU)
@ THREE OF THEM.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ HAD YOU TOUCHED ANY PYRAMID BEFORE
YOU PUT THE GREEN ONE ON THE LITTLE
CUBE?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES, THE GREEN ONE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHEN DID YOU PICK IT UP?@
(DISME)(FRAME WAIT)(DTHRU)
@ WHILE I WAS STACKING UP THE RED CUBE,
A LARGE RED BLOCK AND A LARGE GREEN
CUBE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHY?@
(DISME)(FRAME WAIT)(DTHRU)
@ TO GET RID OF IT.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHY DID YOU DO THAT?@
(DISME)(FRAME WAIT)(DTHRU)
@ TO CLEAN OFF THE RED CUBE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHY DID YOU CLEAR OFF THAT CUBE?@
(DISME)(FRAME WAIT)(DTHRU)
@ TO PUT IT ON A LARGE GREEN CUBE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHY DID YOU DO THAT?@
(DISME)(FRAME WAIT)(DTHRU)
@ TO STACK UP THE RED CUBE , A LARGE
RED BLOCK AND A LARGE GREEN CUBE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHY DID YOU DO THAT?@
(DISME)(FRAME WAIT)(DTHRU)
@ BECAUSE YOU ASKED ME TO.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ HOW DID YOU DO IT?@
(DISME)(FRAME WAIT)(DTHRU)
@ BY PUTTING A LARGE RED BLOCK ON THE
TABLE ; THEN LETTING GO OF IT ; THEN
PUTTING A LARGE GREEN CUBE ON IT ;
THEN LETTING GO OF THAT CUBE ; THEN
PUTTING THE RED CUBE ON THAT CUBE ;
THEN LETTING GO OF THAT CUBE.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ HOW MANY OBJECTS DID YOU TOUCH WHILE
YOU WERE DOING IT?@
(DISME)(FRAME WAIT)(DTHRU)
@ FOUR OF THEM.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHAT DID THE RED CUBE SUPPORT BEFORE
YOU STARTED TO CLEAN IT OFF?@
(DISME)(FRAME WAIT)(DTHRU)
@ THE GREEN PYRAMID.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ THERE WERE FIVE BLOCKS TO THE LEFT OF
THE BOX THEN.@
(DISME)(FRAME WAIT)(DTHRU)
@ NO, ONLY FOUR OF THEM: THE RED CUBE ,
TWO LARGE GREEN CUBES AND A LARGE RED
BLOCK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ PUT THE BLUE PYRAMID ON THE BLOCK IN
THE BOX.@
(UNGRASP)
(MOVETO 740 740 201)
(GRASP (QUOTE :B4))
(MOVETO 700 1100 601)
(DTHRU)
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ IS THERE ANYTHING WHICH IS BIGGER
THAN EVERY PYRAMID BUT IS NOT AS WIDE
AS THE THING THAT SUPPORTS IT?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES, THE BLUE BLOCK. @
(FRAME WAIT)(DISYOU)(DTHRU)
@ DOES A STEEPLE@
(DISME)(DTHRU)
@SORRY, I DON'T KNOW THE WORD "STEEPLE".
PLEASE TYPE TWO SPACES.@
LI(DISYOU)(DTHRU)
@ A "STEEPLE" IS A STACK WHICH CONTAINS
TWO GREEN CUBES AND A PYRAMID.@
(DISME)(FRAME WAIT)(DTHRU)
@ I UNDERSTAND.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ ARE THERE ANY STEEPLES NOW?@
(DISME)(FRAME WAIT)(DTHRU)
@ NO.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ BUILD ONE.@
(DISME)(FRAME WAIT)
(MOVETO 274 1000 500)
(GRASP (QUOTE :B7))
(MOVETO 200 320 200)
(UNGRASP)
(MOVETO 477 40 400)
(GRASP (QUOTE :B2))
(MOVETO 200 110 100)
(UNGRASP)
(MOVETO 477 40 300)
(GRASP (QUOTE :B1))
(MOVETO 1000 274 100)
(UNGRASP)
(MOVETO 540 140 500)
(GRASP (QUOTE :B5))
(MOVETO 40 500 300)
(UNGRASP)
(MOVETO 500 100 200)
(GRASP (QUOTE :B3))
(MOVETO 200 320 400)
(UNGRASP)
(MOVETO 40 500 300)
(GRASP (QUOTE :B5))
(MOVETO 200 320 700)
(UNGRASP)
(DTHRU)
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ CALL THE BIGGEST BLOCK "SUPERBLOCK".@
@ OK.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ HAVE YOU PICKED SUPERBLOCK UP SINCE
WE BEGAN?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ WHY DID YOU DROP IT?@
(DISME)(FRAME WAIT)(DTHRU)
@BY "IT", I ASSUME YOU MEAN THE
SUPERBLOCK.
I CAN'T EXPLAIN A NON-EXISTENT EVENT.@
(FRAME WAIT)(DISYOU)(DTHRU)
@ IS THERE ANYTHING TO THE RIGHT OF
THE RED PYRAMID?@
(DISME)(FRAME WAIT)(DTHRU)
@ YES, FOUR THINGS: THE BOX , THE RED
CUBE, THE BLUE PYRAMID AND THE BLOCK
NAMED SUPERBLOCK@
(FRAME WAIT)(DISYOU)(DTHRU)
@ THANK YOU.@
(DISME)(FRAME WAIT)(DTHRU)
@ YOU'RE WELCOME!@
(AND(READCH)(NOT ^A)(VALRET ':KILL/ ))