// 100X100 square represents a constricted space
// the tiny-moving-square has a certain scale and speed
// with which it traverses its environment:
// movement type represents constriction
// with its transformation into the bigger space of 200X200,
// scale remaining the same, the tiny-moving-square has to
// increase its speed to traverse its environment: represents freedom
//the grey line represents the remnants of 100X100 environment
load dbngraphics.dbn
command 100moveLR y
{
repeat a 10 100
{
repeat b 0 1
{
field 10 (y-10) 20 (y+10) 50
field a y (a+10) (y+10) 100
pen 50
line a y a (y+10)
}
}
}
command 100moveRL y
{
repeat a 100 10
{
Same? a 10
{
100moveLR (y+10)
}
NotSame? a 10
{
repeat b 0 2
{
field 100 (y-10) 110 (y+10) 50
field a y (a+10) (y+10) 100
pen 50
line (a+10) y (a+10) (y+10)
}
}
}
}
Command speed100
{
field 10 30 110 130 50
repeat a 4 10
{
set b (a*10)
100moveRL b
}
}
Command transition
{
repeat a 110 0
{
repeat b 0 5
{
field 100 a 110 (a+10) 100
NotSmaller? a 10
{
field 100 a 110 (a+10) 50
}
Smaller? a 10
{
field 100 (a+10) 110 (a+20) 0
}
}
}
// move the square
repeat d 0 100
{
field (100+d) 0 (110+d) 10 100
field (100+d) 0 (110+d+10) 10 0
}
}
// bigger screen
paper 0
command 200moveLR y2
{
repeat a 0 200
{
field 0 (y2-10) 10 (y2+10) 0
field a y2 (a+10) (y2+10) 100
pen 0
line a y2 a (y2+10)
}
}
|
Command 200moveRL y2
{
repeat a 200 0
{
Same? a 0
{
200moveLR (y2+10)
}
NotSame? a 0
{
repeat b 0 1
{
field 190 (y2-10) 200 (y2+10) 0
field a y2 (a+10) (y2+10) 100
pen 0
line (a+10) y2 (a+10) (y2+10)
}
}
}
}
Command speed200
{
repeat c 0 7
{
set d (c*25)
200moveRL d
}
}
Command temporal
{
speed100
repeat a 0 50
{
repeat c 0 20
{
set b (a*2)
field (10-b) (30-b) (110+b) (130+b) (50-a)
field 100 110 110 120 100
}
}
transition
speed200
}
temporal
|