Post by atomose on Apr 28, 2023 1:39:31 GMT -5
A very simple life simulation make in some minutes hours^^
- when little unit eat a green pixel ==> it take food
- when big unit eat a little unit ==> it take food
- Big unit can destroy green pixel but dont take food, they need to kill little unit for have food
- When unit has a lot of food ==> new unit born
- Unit lose food every time she moove
- If unit has no more food ==> dead
- Green pixel auto regen every time for new food
- You can see the number of pop1 and predator (pop2) on the top of screen in real time and the number of cycles (days)
- You can stop the time
- you can see the total of units killed since the first day =)
- when Herbivor or Predator are all dead, new are automaticly creat
- you can see the total of units killed since the first day =)
- when Herbivor or Predator are all dead, new are automaticly creat
- MAP EDITOR : YOU CAN CREAT YOUR MAP ! add somes units, build walls and rivers and make this more fun !
' life simulation by Atomose 2023
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
nomainwin
dim CoorX(10000000),CoorY(10000000),valU(10000000),LIFE(10000000),natality(10000000),LIFE2(10000000),natality2(10000000)
GameVersion = 0.38 : UNIT = 100 : UNIT2 = 500010 : Xcoor = 800 : Ycoor = 580 : XX= 800 : YY= 580 : redim p(XX,YY) : UNITcompt = UNIT : UNITcompt2 = UNIT2 : NumberTREES = 15000 : sizeEDITOR = 1
WindowWidth=807 : WindowHeight=630 : UpperLeftX=int((DisplayWidth-WindowWidth)/2) : UpperLeftY=int((DisplayHeight-WindowHeight)/2)
graphicbox #ini.info, 0, 0, 801, 22
graphicbox #ini.main, 0, 22, 801, 580
button #ini.pause, "Stop", [pause], UL, 1, 1,40,20
open "Life Simulation v ";GameVersion for window_nf as #ini
#ini, "trapclose [quit]"
print #ini.main, "down; fill ";240;" ";190;" ";150;"; size 2; color ";0;" ";140;" ";0
print #ini.info, "down; fill white; font Cascadia_Code 8 ; color black; backcolor white"
'--------------- units and trees
for n = 1 to UNIT
valU(n) = 1 : CoorX(n) = int(rnd(1)*790+1) : CoorY(n) = int(rnd(1)*570+1) : LIFE(n) = 2000
next n
for n = 500001 to UNIT2
valU(n) = 2 : CoorX(n) = int(rnd(1)*790+1) : CoorY(n) = int(rnd(1)*570+1) : LIFE2(n) = 4000
next n
for x = 1 to NumberTREES
XX = int(rnd(1)*795+1) : YY = int(rnd(1)*575+1)
p(XX,YY)= 1000001 : print #ini.main, "set ";XX;" ";YY;"; color ";0;" ";100;" ";0;"; set ";XX;" ";YY+2
next x
'--------------------------------
#ini.info, "place 500 13 ;\"; "Map editor : Size :"
print #ini.info, "size 15; color black; set ";590;" ";10;"; set ";610;" ";10;"; set ";630;" ";10;"; set ";650;" ";10;"; set ";670;" ";10;"; set ";690;" ";10
print #ini.info, "size 13; color ";250;" ";160;" ";120;"; set ";590;" ";10;"; color ";150;" ";100;" ";230;"; set ";610;" ";10;"; color ";0;" ";180;" ";0;"; set ";630;" ";10;"; color darkgray; set ";650;" ";10;"; color white; set ";670;" ";10;"; color white; set ";690;" ";10
print #ini.info, "size 8; color black; set ";765;" ";10;"; size 6; color red; set ";765;" ";10;"; size 14; color black; set ";785;" ";10;"; size 12; color white; set ";785;" ";10
print #ini.info, "size 4; color black; set ";670;" ";10;"; color red; set ";690;" ";10;";font Cascadia_Code 8 ; color black; backcolor white; when leftButtonDown [select]; flush"
#ini.main, "when leftButtonDown [position]; when leftButtonMove [terrain]; flush"
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[boucle]
scan : #ini.main,"discard"
day = day + 1 : #ini.info "place 50 13 ;\"; "Days : ";day;" | Herbivors : ";UNITcompt;" | Carnivors : ";UNITcompt2-500000;" (";death; " kills) "
for n = 1 to 5
regenX = int(rnd(1)*790+5) : regenY = int(rnd(1)*570+5)
if p(regenX,regenY) = 0 then p(regenX,regenY) = 1000001 : print #ini.main, "size 2; color ";0;" ";140;" ";0;"; set ";regenX;" ";regenY;"; color ";0;" ";100;" ";0;"; set ";regenX;" ";regenY+2
next n
for x = 1 to UNIT
if (valU(x) = 0 or LIFE(x) = 0) then goto [next]
LIFE(x) = LIFE(x) - 1
print #ini.main, "color ";240;" ";190;" ";150;"; set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = 0
valor = int(rnd(1)*9+1)
select case valor
case 1
if p(CoorX(x)+1,CoorY(x)) < 1000002 and CoorX(x) <795 then CoorX(x) = CoorX(x) + 1 : CoorY(x) = CoorY(x) + 0
if p(CoorX(x)+1,CoorY(x)) >= 1000002 then CoorX(x) = CoorX(x) - 1 : CoorY(x) = CoorY(x) + 0
case 2
if p(CoorX(x)+1,CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)+1) < 1000002 and CoorX(x) <795 and CoorY(x) <575 then CoorX(x) = CoorX(x) + 1 : CoorY(x) = CoorY(x) + 1
if p(CoorX(x)+1,CoorY(x)) >= 1000002 and p(CoorX(x),CoorY(x)+1) >= 1000002 then CoorX(x) = CoorX(x) - 1 : CoorY(x) = CoorY(x) - 1
case 3
if p(CoorX(x),CoorY(x)+1) < 1000002 and CoorY(x) <575 then CoorX(x) = CoorX(x) + 0 : CoorY(x) = CoorY(x) + 1
if p(CoorX(x),CoorY(x)+1) >= 1000002 then CoorX(x) = CoorX(x) + 0 : CoorY(x) = CoorY(x) - 1
case 4
if p(CoorX(x)-1,CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)+1) < 1000002 and CoorX(x) >5 and CoorY(x) <575 then CoorX(x) = CoorX(x) - 1 : CoorY(x) = CoorY(x) + 1
if p(CoorX(x)-1,CoorY(x)) >= 1000002 and p(CoorX(x),CoorY(x)+1) >= 1000002 then CoorX(x) = CoorX(x) + 1 : CoorY(x) = CoorY(x) - 1
case 5
if p(CoorX(x)-1,CoorY(x)) < 1000002 and CoorX(x) >5 then CoorX(x) = CoorX(x) - 1 : CoorY(x) = CoorY(x) + 0
if p(CoorX(x)-1,CoorY(x)) >= 1000002 then CoorX(x) = CoorX(x) + 1 : CoorY(x) = CoorY(x) + 0
case 6
if p(CoorX(x)-1,CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)-1) < 1000002 and CoorX(x) >5 and CoorY(x) >5 then CoorX(x) = CoorX(x) - 1 : CoorY(x) = CoorY(x) - 1
if p(CoorX(x)-1,CoorY(x)) >= 1000002 and p(CoorX(x),CoorY(x)-1) >= 1000002 then CoorX(x) = CoorX(x) + 1 : CoorY(x) = CoorY(x) + 1
case 7
if p(CoorX(x),CoorY(x)-1) < 1000002 and CoorY(x) >5 then CoorX(x) = CoorX(x) + 0 : CoorY(x) = CoorY(x) - 1
if p(CoorX(x),CoorY(x)-1) >= 1000002 then CoorX(x) = CoorX(x) + 0 : CoorY(x) = CoorY(x) + 1
case 8
if p(CoorX(x)+1,CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)-1) < 1000002 and CoorX(x) <795 and CoorY(x) >5 then CoorX(x) = CoorX(x) + 1 : CoorY(x) = CoorY(x) - 1
if p(CoorX(x)+1,CoorY(x)) >= 1000002 and p(CoorX(x),CoorY(x)-1) >= 1000002 then CoorX(x) = CoorX(x) - 1 : CoorY(x) = CoorY(x) + 1
case 9
CoorX(x) = CoorX(x) : CoorY(x) = CoorY(x)
end select
if valU(x) = 1 and LIFE(x) >= 1000 and natality(x) >= 100 then LIFE(x) = int((LIFE(x)/2)+1) : natality(x) = 0 : UNIT = UNIT + 1 : valU(UNIT) = 1 : CoorX(UNIT) = CoorX(x) : CoorY(UNIT) = CoorY(x) : LIFE(UNIT) = 2000 : UNITcompt = UNITcompt + 1
if valU(x) = 1 and p(CoorX(x),CoorY(x)) = 1000001 then LIFE(x) = LIFE(x) + 50 : natality(x) = natality(x) + 1
if LIFE(x) = 0 and valU(x) = 1 then valU(x) = 0 : UNITcompt = UNITcompt - 1 : print #ini.main, "color ";240;" ";190;" ";150;";set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = 0
if valU(x) = 1 then print #ini.main, "color ";255;" ";255;" ";255;"; set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = x
[next]
if UNITcompt = 0 then newHERB = newHERB + 1
if newHERB > 1000 then newHERB = 0 : UNIT = UNIT + 1 : valU(UNIT) = 1 : CoorX(UNIT) = CoorX(x) : CoorY(UNIT) = CoorY(x) : LIFE(UNIT) = 2000 : UNITcompt = UNITcompt + 1
next x
for y = 500001 to UNIT2
if (valU(y) = 0 or LIFE2(y) = 0) then goto [next2]
LIFE2(y) = LIFE2(y) - 1
if p(CoorX(y),CoorY(y)) <> 1000001 and p(CoorX(y),CoorY(y)) <> 1000000 then print #ini.main, "color ";240;" ";190;" ";150;"; set ";CoorX(y);" ";CoorY(y) : p(CoorX(y),CoorY(y)) = 0
if ((p(CoorX(y),CoorY(y)) = 1000001 or p(CoorX(y),CoorY(y)-1) = 1000001 or p(CoorX(y),CoorY(y)+1) = 1000001 or p(CoorX(y)-1,CoorY(y)) = 1000001 or p(CoorX(y)+1,CoorY(y)) = 1000001)) then print #ini.main, "color ";0;" ";140;" ";0;"; set ";CoorX(y);" ";CoorY(y);"; color ";0;" ";100;" ";0;"; set ";CoorX(y);" ";CoorY(y)+2
valor = int(rnd(1)*9+1)
select case valor
case 1
if p(CoorX(y)+1,CoorY(y)) < 1000002 and CoorX(y) <795 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 0
if p(CoorX(y)+1,CoorY(y)) >= 1000002 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 0
case 2
if p(CoorX(y)+1,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)+1) < 1000002 and CoorX(y) <795 and CoorY(y) <575 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 2
if p(CoorX(y)+1,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)+1) >= 1000002 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) - 2
case 3
if p(CoorX(y),CoorY(y)+1) < 1000002 and CoorY(y) <575 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) + 2
if p(CoorX(y),CoorY(y)+1) >= 1000002 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) - 2
case 4
if p(CoorX(y)-1,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)+1) < 1000002 and CoorX(y) >5 and CoorY(y) <575 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 2
if p(CoorX(y)-1,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)+1) >= 1000002 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) - 2
case 5
if p(CoorX(y)-1,CoorY(y)) < 1000002 and CoorX(y) >5 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 0
if p(CoorX(y)-1,CoorY(y)) >= 1000002 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 0
case 6
if p(CoorX(y)-1,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)-1) < 1000002 and CoorX(y) >5 and CoorY(y) >5 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) - 2
if p(CoorX(y)-1,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)-1) >= 1000002 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 2
case 7
if p(CoorX(y),CoorY(y)-1) < 1000002 and CoorY(y) >5 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) - 2
if p(CoorX(y),CoorY(y)-1) >= 1000002 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) + 2
case 8
if p(CoorX(y)+1,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)-1) < 1000002 and CoorX(y) <795 and CoorY(y) >5 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) - 2
if p(CoorX(y)+1,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)-1) >= 1000002 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 2
case 9
CoorX(y) = CoorX(y) : CoorY(y) = CoorY(y)
end select
if valU(y) = 2 and natality2(y) >= 5 then LIFE2(y) = int((LIFE2(y)/2)+1) : natality2(y) = 0 : UNIT2 = UNIT2 + 1 : valU(UNIT2) = 2 : CoorX(UNIT2) = CoorX(y) : CoorY(UNIT2) = CoorY(y) : LIFE2(UNIT2) = 4000 : UNITcompt2 = UNITcompt2 + 1
if (p(CoorX(y),CoorY(y)) >= 1000000 or p(CoorX(y)+1,CoorY(y)) >= 1000000 or p(CoorX(y)+1,CoorY(y)-1) >= 1000000 or p(CoorX(y)-1,CoorY(y)) >= 1000000 or p(CoorX(y)-1,CoorY(y)-1) >= 1000000 or p(CoorX(y),CoorY(y)+1) >= 1000000 or p(CoorX(y)+1,CoorY(y)+1) >= 1000000 or p(CoorX(y),CoorY(y)-1) >= 1000000 or p(CoorX(y)-1,CoorY(y)+1) >= 1000000) then killingXY = 0
if valU(p(CoorX(y),CoorY(y))) = 1 then killed = p(CoorX(y),CoorY(y)) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y)+1,CoorY(y))) = 1 then killed = p(CoorX(y)+1,CoorY(y)) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y)+1,CoorY(y)-1)) = 1 then killed = p(CoorX(y)+1,CoorY(y)-1) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y)-1,CoorY(y))) = 1 then killed = p(CoorX(y)-1,CoorY(y)) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y)-1,CoorY(y)-1)) = 1 then killed = p(CoorX(y)-1,CoorY(y)-1) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y),CoorY(y)+1)) = 1 then killed = p(CoorX(y),CoorY(y)+1) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y)+1,CoorY(y)+1)) = 1 then killed = p(CoorX(y)+1,CoorY(y)+1) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y),CoorY(y)-1)) = 1 then killed = p(CoorX(y),CoorY(y)-1) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(y)-1,CoorY(y)+1)) = 1 then killed = p(CoorX(y)-1,CoorY(y)+1) : valU(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + LIFE(killed) : natality2(y) = natality2(y) + 1 : death = death + 1 : LIFE(killed) = 0
if LIFE2(y) = 0 and valU(y) = 2 then valU(y) = 0 : print #ini.main, "set ";CoorX(y);" ";CoorY(y) : p(CoorX(y),CoorY(y)) = 0 : UNITcompt2 = UNITcompt2 - 1
if valU(y) = 2 then print #ini.main, "color ";255;" ";0;" ";0;"; set ";CoorX(y);" ";CoorY(y)
[next2]
if (UNITcompt2-500000) = 0 then newCARN = newCARN + 1
if newCARN > 1000 then newCARN = 0 : UNIT2 = UNIT2 + 1 : valU(UNIT2) = 2 : CoorX(UNIT2) = CoorX(y) : CoorY(UNIT2) = CoorY(y) : LIFE2(UNIT2) = 2000 : UNITcompt2 = UNITcompt2 + 1
next y
goto [boucle]
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[select]
mX = MouseX : mY = MouseY : antifreeeze = 0
print #ini.info, "size 2; color white; set ";683;" ";3;"; set ";663;" ";3;"; set ";643;" ";3;"; set ";623;" ";3;"; set ";603;" ";3;"; set ";582;" ";3
if mX >580 and mX<598 then competence = 1 : pause = 1 : print #ini.pause, "Play"
if mX >602 and mX<617 then competence = 2 : pause = 1 : print #ini.pause, "Play"
if mX >623 and mX<637 then competence = 3 : pause = 1 : print #ini.pause, "Play"
if mX >644 and mX<657 then competence = 4 : pause = 1 : print #ini.pause, "Play"
if mX >662 and mX<678 then competence = 5 : pause = 1 : print #ini.pause, "Play"
if mX >682 and mX<698 then competence = 6 : pause = 1 : print #ini.pause, "Play"
if competence = 1 then print #ini.info, "size 2; color blue; set ";582;" ";3
if competence = 2 then print #ini.info, "size 2; color blue; set ";603;" ";3
if competence = 3 then print #ini.info, "size 2; color blue; set ";623;" ";3
if competence = 4 then print #ini.info, "size 2; color blue; set ";643;" ";3
if competence = 5 then print #ini.info, "size 2; color blue; set ";663;" ";3
if competence = 6 then print #ini.info, "size 2; color blue; set ";683;" ";3
if mX >755 and mX<775 then sizeEDITOR = 1 : print #ini.info, "size 8; color black; set ";765;" ";10;"; size 6; color red; set ";765;" ";10;";size 14; color black; set ";785;" ";10;"; size 12; color white; set ";785;" ";10
if mX >775 and mX<795 then sizeEDITOR = 2 : print #ini.info, "size 14; color black; set ";785;" ";10;"; size 12; color red; set ";785;" ";10;";size 8; color black; set ";765;" ";10;"; size 6; color white; set ";765;" ";10
print #ini.info, "color black"
if pause = 0 then goto [boucle]
wait
[position]
mX = MouseX : mY = MouseY
if competence = 5 then UNIT = UNIT + 1 : valU(UNIT) = 1 : CoorX(UNIT) = MouseX : CoorY(UNIT) = MouseY : LIFE(UNIT) = 4000 : UNITcompt = UNITcompt + 1 : print #ini.main, "size 2; color ";255;" ";255;" ";255;"; set ";CoorX(UNIT);" ";CoorY(UNIT)
if competence = 6 then UNIT2 = UNIT2 + 1 : valU(UNIT2) = 2 : CoorX(UNIT2) = MouseX : CoorY(UNIT2) = MouseY : LIFE2(UNIT2) = 4000 : UNITcompt2 = UNITcompt2 + 1 : print #ini.main, "size 2; color ";255;" ";0;" ";0;"; set ";CoorX(UNIT2);" ";CoorY(UNIT2)
if pause = 1 then wait
goto [boucle]
[terrain]
on error goto [boucle]
select case sizeEDITOR
case 1
select case competence
case 1
print #ini.main, "size 1; color ";240;" ";190;" ";150 : valor = 0 : gosub [sizeEDITOR1]
case 2
print #ini.main, "size 1; color ";150;" ";100;" ";230 : valor = 1000002 : gosub [sizeEDITOR1]
case 3
print #ini.main, "size 1; color ";0;" ";140;" ";0 : valor = 1000001 : gosub [sizeEDITOR1]
case 4
print #ini.main, "size 1; color ";100;" ";110;" ";110 : valor = 1000003 : gosub [sizeEDITOR1]
end select
case 2
select case competence
case 1
print #ini.main, "size 1; color ";240;" ";190;" ";150 : valor = 0 : gosub [sizeEDITOR2]
case 2
print #ini.main, "size 1; color ";150;" ";100;" ";230 : valor = 1000002 : gosub [sizeEDITOR2]
case 3
print #ini.main, "size 1; color ";0;" ";140;" ";0 : valor = 1000001 : gosub [sizeEDITOR2]
case 4
print #ini.main, "size 1; color ";100;" ";110;" ";110 : valor = 1000003 : gosub [sizeEDITOR2]
end select
end select
if pause = 1 then wait
goto [boucle]
[sizeEDITOR1]
p(MouseX,MouseY) = valor : p(MouseX+1,MouseY) = valor : p(MouseX-1,MouseY) = valor : print #ini.main, "set ";MouseX;" ";MouseY ;"; set ";MouseX+1;" ";MouseY ;"; set ";MouseX-1;" ";MouseY
p(MouseX,MouseY+1) = valor : p(MouseX+1,MouseY+1) = valor : p(MouseX-1,MouseY+1) = valor : print #ini.main, "set ";MouseX;" ";MouseY+1 ;"; set ";MouseX+1;" ";MouseY+1 ;"; set ";MouseX-1;" ";MouseY+1
p(MouseX,MouseY-1) = valor : p(MouseX+1,MouseY-1) = valor : p(MouseX-1,MouseY-1) = valor : print #ini.main, "set ";MouseX;" ";MouseY-1 ;"; set ";MouseX+1;" ";MouseY-1 ;"; set ";MouseX-1;" ";MouseY-1
return
[sizeEDITOR2]
p(MouseX,MouseY) = valor : p(MouseX+1,MouseY) = valor : p(MouseX+2,MouseY) = valor : p(MouseX-1,MouseY) = valor : p(MouseX-2,MouseY) = valor : print #ini.main, "set ";MouseX;" ";MouseY ;"; set ";MouseX+1;" ";MouseY ;"; set ";MouseX+2;" ";MouseY ;"; set ";MouseX-1;" ";MouseY ;"; set ";MouseX-2;" ";MouseY
p(MouseX,MouseY+1) = valor : p(MouseX+1,MouseY+1) = valor : p(MouseX+2,MouseY+1) = valor : p(MouseX-1,MouseY+1) = valor : p(MouseX-2,MouseY+1) = valor : print #ini.main, "set ";MouseX;" ";MouseY+1 ;"; set ";MouseX+1;" ";MouseY+1 ;"; set ";MouseX+2;" ";MouseY+1 ;"; set ";MouseX-1;" ";MouseY+1 ;"; set ";MouseX-2;" ";MouseY+1
p(MouseX,MouseY+2) = valor : p(MouseX+1,MouseY+2) = valor : p(MouseX+2,MouseY+2) = valor : p(MouseX-1,MouseY+2) = valor : p(MouseX-2,MouseY+2) = valor : print #ini.main, "set ";MouseX;" ";MouseY+2 ;"; set ";MouseX+1;" ";MouseY+2 ;"; set ";MouseX+2;" ";MouseY+2 ;"; set ";MouseX-1;" ";MouseY+2 ;"; set ";MouseX-2;" ";MouseY+2
p(MouseX,MouseY-1) = valor : p(MouseX+1,MouseY-1) = valor : p(MouseX+2,MouseY-1) = valor : p(MouseX-1,MouseY-1) = valor : p(MouseX-2,MouseY-1) = valor : print #ini.main, "set ";MouseX;" ";MouseY-1 ;"; set ";MouseX+1;" ";MouseY-1 ;"; set ";MouseX+2;" ";MouseY-1 ;"; set ";MouseX-1;" ";MouseY-1 ;"; set ";MouseX-2;" ";MouseY-1
p(MouseX,MouseY-2) = valor : p(MouseX+1,MouseY-2) = valor : p(MouseX+2,MouseY-2) = valor : p(MouseX-1,MouseY-2) = valor : p(MouseX-2,MouseY-2) = valor : print #ini.main, "set ";MouseX;" ";MouseY-2 ;"; set ";MouseX+1;" ";MouseY-2 ;"; set ";MouseX+2;" ";MouseY-2 ;"; set ";MouseX-1;" ";MouseY-2 ;"; set ";MouseX-2;" ";MouseY-2
return
[pause]
if pause = 1 then pause = 0 : competence = 0 : print #ini.info, "size 2; color white; set ";683;" ";3;"; set ";663;" ";3;"; set ";643;" ";3;"; set ";623;" ";3;"; set ";603;" ";3;"; set ";582;" ";3 : print #ini.info, "color black" : print #ini.pause, "Stop" : goto [boucle]
if pause = 0 then pause = 1 : print #ini.pause, "Play" : wait
[quit]
close #ini : end