@r^[gOtBbNXgpqxgȐ`XNvgłB
@s恄http://vivi.dyndns.org/mv/hilbert.swf.html
@"hilbert.vvs":
#include "turtle.vvs"
function hilbert(tur, n, right)
{
if( n == 0 ) return;
tur.turn(right);
hilbert(tur, n - 1, -right);
tur.forward(1);
tur.turn(-right);
hilbert(tur, n - 1, right);
tur.forward(1);
hilbert(tur, n - 1, right);
tur.turn(-right);
tur.forward(1);
hilbert(tur, n - 1, -right);
tur.turn(right);
}
function main()
{
newDocument();
var tur = newTurtle();
hilbert(tur, 5, 1);
}
@"turtle.vvs":
function forward(step)
{
var i;
if( step < 1 ) step = 1;
if( this.dir == 0 ) { // E
for(i = 0; i<step; ++i)
vicmd("33153#c");
} else if( this.dir == 1 ) { //
for(i = 0; i<step; ++i)
vicmd("33155#c");
} else if( this.dir == 2 ) { //
for(i = 0; i<step; ++i)
vicmd("33152#c");
} else if( this.dir == 3 ) { //
for(i = 0; i<step; ++i)
vicmd("33154#c");
}
}
function turn(d)
{
this.dir += d;
while( this.dir < 0 )
this.dir += 4;
this.dir %= 4;
}
function newTurtle()
{
var obj;
obj.dir = 0; // 0:right, 1:down, 2:left, 3:up
obj.pen = 1; // 0:up, 1:down
obj.forward = forward;
obj.turn = turn;
return obj;
}
@s:
(߁)!!!!!