Programma

Create-program()->self

Execute-step(robot)->errormessage

Load(fromport)->self

Save(outport)->self

Print(printfunc)->self

User-input(??)->self

 

Robot

Create-robot(unieke-name)->self

Draw()->self

User-input(??)->self

Command(bericht)->error-message

Load, save & print

 

Componenten

Create-component(name, parent)->self

Draw()->self

Command(bericht)->graph-set

Load, save & print

 


De nuggets

Legende
og                 open of gesloten?
go                 grafisch object

Points
constructor        Make-point
fields                 X, Y
methods            Draw-point, Point?, Save-point, Load-point
intersect            Intersect-p-p

Lines
constructor       
Make-line
fields                
From, To, X1, X2, Y1, Y2, fromc, toc, from-og, to-og
methods            Save-line, load-line, Draw-Line, Line?
intersect            Intersect-p-l, intersect-l-l

Circles
constructor        Make-circle
fields                 from-angle, to-angle, from-of, to-og, radius, center
methods            Circle?, Draw-circle, Save-Circle, Load-circle
intersect            Intersect-p-c, intersect-l-c, intersect-c-c

Graph-set
constructor        Make-graph-set,
methods            foreach, delete, add, draw-set, save, load, print
intersect            intersect-p-s, intersect-l-s, intersect-c-s, intersect-s-s, go-in-set?

Algemene ongetypeerde procs
Draw, Save, Load, Print, Intersect


- User-interface zorgt dat de gebruiker 2 programma's laadt.

- De user-interface werkt deze twee programma's stap per stap af.

- Het Programma zorgt dat bij elke stap de robot wordt verplaatst, indien mogelijk.

- De robot probeert zichzelf te verplaatsen door aan de juiste component het juiste bericht te sturen

- De component geeft een bewegins-pad weer. (zie figuur)

- De robot controleert nu of dit sleeppad nergens tegenaan botst.

- Indien dit het geval is wordt er gewoon niets verplaatst. Indien dit niet het geval is wordt de robot verplaatst en wordt de wereld aangepast.

- Hop, controle weer naar de user-interface.