62 lines
2 KiB
Text
62 lines
2 KiB
Text
###sysinclude standard.uh
|
|
###sysinclude system.uh
|
|
###sysinclude str.uh
|
|
###sysinclude X.uh
|
|
#g
|
|
$ff0000 sto szin1
|
|
$ffffff sto szin2
|
|
10 sto pausetime
|
|
//maxypixel 100 - sto YRES
|
|
//maxypixel 20 - sto YRES
|
|
//maxypixel 7 - sto YRES
|
|
//maxypixel 13 - sto YRES
|
|
maxypixel 20 - sto YRES
|
|
maxxpixel sto XRES
|
|
zero ant
|
|
// Az ant iránykódjai:
|
|
// 0 : fel
|
|
// 1 : le
|
|
// 2 : jobbra
|
|
// 3 : balra
|
|
@XRES 2 / sto antx // Az ant kezdeti koordinátái
|
|
@YRES 2 / sto anty
|
|
myscreen "Furor monitor" @YRES @XRES graphic // Create the graphic screen
|
|
."Kilépés: ESC\n"
|
|
|
|
{.. // infinite loop begins
|
|
myscreen @anty @antx getpixel // A pixel színe amin az ant ül épp
|
|
@szin2 == {
|
|
myscreen @anty @antx @szin1 setpixel // másik színre átállítjuk a pixelt
|
|
2 // Jobbra fog fordulni
|
|
}{
|
|
myscreen @anty @antx @szin2 setpixel // másik színre átállítjuk a pixelt
|
|
3 // Balra fog fordulni
|
|
}
|
|
// Elvégezzük az új koordináta beállítását:
|
|
sto direction
|
|
@ant 0 == @direction 2 == & { ++() antx @antx @XRES == { zero antx } 2 sto ant goto §beolvas }
|
|
@ant 0 == @direction 3 == & { @antx inv { @XRES -- sto antx }{ --() antx } 3 sto ant goto §beolvas }
|
|
@ant 1 == @direction 3 == & { ++() antx @antx @XRES == { zero antx } 2 sto ant goto §beolvas }
|
|
@ant 1 == @direction 2 == & { @antx inv { @XRES -- sto antx }{ --() antx } 3 sto ant goto §beolvas }
|
|
@ant 2 == @direction 2 == & { @anty inv { @YRES -- sto anty }{ --() anty } 1 sto ant goto §beolvas }
|
|
@ant 2 == @direction 3 == & { ++() anty @anty @YRES == { zero anty } 0 sto ant goto §beolvas }
|
|
@ant 3 == @direction 2 == & { ++() anty @anty @YRES == { zero anty } 0 sto ant goto §beolvas }
|
|
@ant 3 == @direction 3 == & { @anty inv { @YRES -- sto anty }{ --() anty } 1 sto ant goto §beolvas }
|
|
|
|
beolvas:
|
|
myscreen key !sto billkód @pausetime inv sleep $1b == {
|
|
."Made " {..} print ." generations.\n" {.>.} }
|
|
..}
|
|
myscreen inv graphic
|
|
end
|
|
{ „myscreen” }
|
|
{ „billkód” }
|
|
{ „pausetime” }
|
|
{ „XRES” }
|
|
{ „YRES” }
|
|
{ „szin1” }
|
|
{ „szin2” }
|
|
{ „ant” }
|
|
{ „antx” }
|
|
{ „anty” }
|
|
{ „direction” }
|