Post by atomose on Apr 28, 2023 1:39:31 GMT -5
Life Simulator
- when white unit eat a tree ==> it take food
- when red unit eat white unit ==> it take food
- Red units dont take food with tree
- When unit has a lot of food ==> new unit born
- All unit lose food every time she moove
- If unit has no more food ==> dead
- Auto regen for tree every time
- You can see the number of pop1 and 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
- MAP EDITOR : YOU CAN CREAT YOUR MAP !
(add somes units, build walls and rivers and make this more fun !)
(add somes units, build walls and rivers and make this more fun !)
' Life Simulation by Atomose Studio (2024) make with LibertyBasic 4.51 pro
nomainwin
GameVersion = 0.62 : UNIT = 100 : sizeEDITOR = 1 : Dx = 5000
WindowWidth=807 : WindowHeight=630 : UpperLeftX=int((DisplayWidth-WindowWidth)/2) : UpperLeftY=int((DisplayHeight-WindowHeight)/2)
XX= 800 : YY= 580 : redim p(XX,YY)
dim CoorX(1000000),CoorY(1000000),valU(10000000),LIFE(1000000),natality(1000000), genetic(1000000), VittesseU(1000000)
graphicbox #ini.info, 0, 0, 801, 22
graphicbox #ini.main, 0, 22, 801, 580
button #ini.log, "Log", [log], UL, 1, 1,40,20
button #ini.pause, "Stop", [pause], UL, 41, 1,40,20
open "Life Simulator - 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"
for x = 1 to 30000
XX = int(rnd(1)*788+5) : YY = int(rnd(1)*568+5) : p(XX,YY)= 1000001 : print #ini.main, "size 2; color ";0;" ";140;" ";0;"; set ";XX;" ";YY;"; color ";0;" ";100;" ";0;"; set ";XX;" ";YY+2
next x
for n = 1 to UNIT
CoorX(n) = int(rnd(1)*770+5) : CoorY(n) = int(rnd(1)*550+5) : genetic(n) = int(rnd(1)*5+1)
if genetic(n) <= 4 then genetic(n) = 1 : Ngenetic1 = Ngenetic1 + 1 : LIFE(n) = 1000 : valU(n) = 1 : VittesseU(n) = 0
if genetic(n) >= 5 then genetic(n) = 2 : Ngenetic2 = Ngenetic2 + 1 : LIFE(n) = 4000 : valU(n) = n : VittesseU(n) = 1
next n
#ini.info, "place 525 13 ;\"; "Editor : " : #ini.info, "place 720 13 ;\"; "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 ";240;" ";190;" ";150;"; 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"
on error goto [error]
[boucle]
scan
day = day + 1
dayW = dayW + 1
if dayW >135000 then
dayW = 0
if logACTIVATION = 1 then goto [refreshLOG]
if logACTIVATION = 0 then Dx = Dx + 135000
end if
if logACTIVATION = 1 and dayW mod 10 = 1 then
#wg "size 2; color white ; set "; int( 1 +dayW /200) +40; " "; (360 -Ngenetic1 /3) -10
#wg "color red ; set "; int( 1 +dayW /200) +40; " "; (360 -Ngenetic2 /3) -10
#wg "color yellow ; set "; int( 1 +dayW /200) +40; " "; (360) -10
end if
print #ini.info, "discard; place 90 13 ;\"; "Days : ";day;" | Herbivors : ";Ngenetic1;" (";death; " killed) ";"| Carnivors : ";Ngenetic2;" ";dayW
print #ini.main, "discard; size 2; color ";0;" ";140;" ";0
for r = 1 to 5
regenX = int(rnd(1)*788+5) : regenY = int(rnd(1)*568+5)
if p(regenX,regenY) = 0 then print #ini.main, "color ";0;" ";140;" ";0;"; set ";regenX;" ";regenY;"; color ";0;" ";100;" ";0;"; set ";regenX;" ";regenY+2 : p(regenX,regenY) = 1000001 : p(regenX,regenY+1) = 1000001 : p(regenX,regenY+2) = 1000001
next r
for x = 1 to UNIT
if (valU(x) = 0 or LIFE(x) <= 0) then goto [next]
print #ini.main, "color ";240;" ";190;" ";150
LIFE(x) = LIFE(x) - (1+VittesseU(x))
select case genetic(x)
case 1
if LIFE(x) <= 0 then valU(x) = 0 : Ngenetic1 = Ngenetic1 - 1 : print #ini.main, "set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = 0 : goto [next]
print #ini.main, "set ";CoorX(x);" ";CoorY(x)
case 2
if LIFE(x) <= 0 then valU(x) = 0 : Ngenetic2 = Ngenetic2 - 1 : print #ini.main, "color ";240;" ";190;" ";150;"; set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = 0 : goto [next]
if (p(CoorX(x),CoorY(x)) <> 1000001 and p(CoorX(x),CoorY(x)) <> 1000000) then print #ini.main, "color ";240;" ";190;" ";150;"; set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = 0
if ((p(CoorX(x),CoorY(x)) = 1000001 or p(CoorX(x),CoorY(x)-1) = 1000001 or p(CoorX(x),CoorY(x)+1) = 1000001 or p(CoorX(x)-1,CoorY(x)) = 1000001 or p(CoorX(x)+1,CoorY(x)) = 1000001)) then print #ini.main, "size 2; color ";0;" ";140;" ";0;"; set ";CoorX(x);" ";CoorY(x);"; color ";0;" ";100;" ";0;"; set ";CoorX(x);" ";CoorY(x)+2
end select
p(CoorX(x),CoorY(x)) = 0 : Mooving = int(rnd(1)*9+1)
select case Mooving
case 1
if p(CoorX(x)+(1+VittesseU(x)),CoorY(x)) < 1000002 and (CoorX(x)+(1+VittesseU(x))) <800 then CoorX(x) = CoorX(x) + (1+VittesseU(x)) : CoorY(x) = CoorY(x) + 0
if CoorX(x) >790 then CoorX(x) = 5
case 2
if p(CoorX(x)+(1+VittesseU(x)),CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)+(1+VittesseU(x))) < 1000002 and (CoorY(x)+(1+VittesseU(x))) <580 and (CoorX(x)+(1+VittesseU(x))) <800 then CoorX(x) = CoorX(x) + (1+VittesseU(x)) : CoorY(x) = CoorY(x) + (1+VittesseU(x))
if CoorX(x) >790 and CoorY(x) >570 then CoorX(x) = 5 : CoorY(x) = 5
case 3
if p(CoorX(x),CoorY(x)+(1+VittesseU(x))) < 1000002 and (CoorY(x)+(1+VittesseU(x))) <580 then CoorX(x) = CoorX(x) + 0 : CoorY(x) = CoorY(x) + (1+VittesseU(x))
if CoorY(x) >570 then CoorY(x) = 5
case 4
if p(CoorX(x)-(1+VittesseU(x)),CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)+(1+VittesseU(x))) < 1000002 and (CoorY(x)+(1+VittesseU(x))) <580 and (CoorX(x)-(1+VittesseU(x))) >1 then CoorX(x) = CoorX(x) - (1+VittesseU(x)) : CoorY(x) = CoorY(x) + (1+VittesseU(x))
if CoorX(x) <5 and CoorY(x) >570 then CoorX(x) =790 : CoorY(x) = 5
case 5
if p(CoorX(x)-(1+VittesseU(x)),CoorY(x)) < 1000002 and (CoorX(x)-(1+VittesseU(x))) >1 then CoorX(x) = CoorX(x) - (1+VittesseU(x)) : CoorY(x) = CoorY(x) + 0
if CoorX(x) <5 then CoorX(x) = 790
case 6
if p(CoorX(x)-(1+VittesseU(x)),CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)-(1+VittesseU(x))) < 1000002 and (CoorY(x)-(1+VittesseU(x))) >1 and (CoorX(x)-(1+VittesseU(x))) >1 then CoorX(x) = CoorX(x) - (1+VittesseU(x)) : CoorY(x) = CoorY(x) - (1+VittesseU(x))
if CoorX(x) <5 and CoorY(x) <5 then CoorX(x) = 790 : CoorY(x) = 570
case 7
if p(CoorX(x),CoorY(x)-(1+VittesseU(x))) < 1000002 and (CoorY(x)-(1+VittesseU(x))) >1 then CoorX(x) = CoorX(x) + 0 : CoorY(x) = CoorY(x) - (1+VittesseU(x))
if CoorY(x) <5 then CoorY(x) = 570
case 8
if p(CoorX(x)+(1+VittesseU(x)),CoorY(x)) < 1000002 and p(CoorX(x),CoorY(x)-(1+VittesseU(x))) < 1000002 and (CoorY(x)-(1+VittesseU(x))) >1 and (CoorX(x)+(1+VittesseU(x))) <800 then CoorX(x) = CoorX(x) + (1+VittesseU(x)) : CoorY(x) = CoorY(x) - (1+VittesseU(x))
if CoorX(x) >790 and CoorY(x) <5 then CoorX(x) = 5 : CoorY(x) = 570
end select
select case genetic(x)
case 1
if (valU(p(CoorX(x)+1,CoorY(x))) = 1 or valU(p(CoorX(x)+1,CoorY(x)-1)) = 1 or valU(p(CoorX(x)-1,CoorY(x))) = 1 or valU(p(CoorX(x)-1,CoorY(x)-1)) = 1 or valU(p(CoorX(x),CoorY(x)+1)) = 1 or valU(p(CoorX(x)+1,CoorY(x)+1)) = 1 or valU(p(CoorX(x),CoorY(x)-1)) = 1 or valU(p(CoorX(x)-1,CoorY(x)+1)) = 1) and natality(x) > 20 then LIFE(x) = int((LIFE(x)/4)+1) : natality(x) = 0 : UNIT = UNIT + 1 : valU(UNIT) = 1 : CoorX(UNIT) = CoorX(x) : CoorY(UNIT) = CoorY(x) : LIFE(UNIT) = 1000 : Ngenetic1 = Ngenetic1 + 1 : genetic(UNIT) = 1 : VittesseU(UNIT) = 0
if p(CoorX(x),CoorY(x)) = 1000001 and LIFE(x) < 5000) then LIFE(x) = LIFE(x) + 50 : natality(x) = natality(x) + 1 : p(CoorX(x),CoorY(x)) = x : print #ini.main, "color ";255;" ";255;" ";255;"; set ";CoorX(x);" ";CoorY(x)
if p(CoorX(x),CoorY(x)) = 1000001 and LIFE(x) >= 5000 then print #ini.main, "color ";0;" ";140;" ";0;"; set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = x
if p(CoorX(x),CoorY(x)) = 0 then print #ini.main, "color ";255;" ";255;" ";255;"; set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = x
if natality(x) >= 100 and LIFE(x) > 800 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) = 1000 : Ngenetic1 = Ngenetic1 + 1 : genetic(UNIT) = 1 : VittesseU(UNIT) = 0
case 2
print #ini.main, "color ";255;" ";0;" ";0;"; set ";CoorX(x);" ";CoorY(x)
if valU(p(CoorX(x)+1,CoorY(x))) = 1 then killed = p(CoorX(x)+1,CoorY(x)) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(x)+1,CoorY(x)-1)) = 1 then killed = p(CoorX(x)+1,CoorY(x)-1) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(x)-1,CoorY(x))) = 1 then killed = p(CoorX(x)-1,CoorY(x)) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(x)-1,CoorY(x)-1)) = 1 then killed = p(CoorX(x)-1,CoorY(x)-1) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(x),CoorY(x)+1)) = 1 then killed = p(CoorX(x),CoorY(x)+1) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(x)+1,CoorY(x)+1)) = 1 then killed = p(CoorX(x)+1,CoorY(x)+1) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(x),CoorY(x)-1)) = 1 then killed = p(CoorX(x),CoorY(x)-1) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if valU(p(CoorX(x)-1,CoorY(x)+1)) = 1 then killed = p(CoorX(x)-1,CoorY(x)+1) : valU(killed) = 0 : Ngenetic1 = Ngenetic1 - 1 : p(CoorX(x),CoorY(x)) = 0 : LIFE(x) = LIFE(x) + LIFE(killed) + 1 : natality(x) = natality(x) + 1 : death = death + 1 : LIFE(killed) = 0
if natality(x) >= 2 then LIFE(x) = int((LIFE(x)/2)+1) : natality(x) = 0 : UNIT = UNIT + 1 : valU(UNIT) = UNIT : CoorX(UNIT) = CoorX(x) : CoorY(UNIT) = CoorY(x) : LIFE(UNIT) = 4000 : Ngenetic2 = Ngenetic2 + 1 : genetic(UNIT) = 2 : VittesseU(UNIT) = 1
end select
[next]
next x
if Ngenetic1 <= 5 then newHERB = newHERB + 1
if newHERB > 600 then newHERB = 0 : UNIT = UNIT + 1 : valU(UNIT) = 1 : CoorX(UNIT) = int(rnd(1)*780+5) : CoorY(UNIT) = int(rnd(1)*560+5) : LIFE(UNIT) = 1000 : genetic(UNIT) = 1 : Ngenetic1 = Ngenetic1 +1 : VittesseU(UNIT) = 0
if Ngenetic2 <= 2 then newCARN = newCARN + 1
if newCARN > 1800 then newCARN = 0 : UNIT = UNIT + 1 : valU(UNIT) = UNIT : CoorX(UNIT) = int(rnd(1)*780+5) : CoorY(UNIT) = int(rnd(1)*560+5) : LIFE(UNIT) = 4000 : genetic(UNIT) = 2 : Ngenetic2 = Ngenetic2 +1 : VittesseU(UNIT) = 1
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, "color blue; set ";582;" ";3
if competence = 2 then print #ini.info, "color blue; set ";603;" ";3
if competence = 3 then print #ini.info, "color blue; set ";623;" ";3
if competence = 4 then print #ini.info, "color blue; set ";643;" ";3
if competence = 5 then print #ini.info, "color blue; set ";663;" ";3
if competence = 6 then print #ini.info, "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 = 1 then wait
goto [boucle]
[position]
mX = MouseX : mY = MouseY
if competence = 5 then UNIT = UNIT + 1 : valU(UNIT) = 1 : CoorX(UNIT) = MouseX : CoorY(UNIT) = MouseY : LIFE(UNIT) = 1000 : Ngenetic1 = Ngenetic1 + 1 : genetic(UNIT) = 1 : print #ini.main, "size 2; color ";255;" ";255;" ";255;"; set ";CoorX(UNIT);" ";CoorY(UNIT)
if competence = 6 then UNIT = UNIT + 1 : valU(UNIT) = 2 : CoorX(UNIT) = MouseX : CoorY(UNIT) = MouseY : LIFE(UNIT) = 4000 : Ngenetic2 = Ngenetic2 + 1 : genetic(UNIT) = 2 : print #ini.main, "size 2; color ";0;" ";0;" ";255;"; set ";CoorX(UNIT);" ";CoorY(UNIT)
if pause = 1 then wait
goto [boucle]
[terrain]
on error goto [error]
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]
[log]
if logACTIVATION = 1 then goto [boucle]
WindowWidth = 790 : WindowHeight = 410 : UpperLeftX=int((DisplayWidth-WindowWidth)/1.045) : UpperLeftY=int((DisplayHeight-WindowHeight)/2)
open "Log Pop/Time" for graphics_nsb_nf as #wg
[refreshLOG]
#wg "trapclose [quitLOG]; down ; fill 240 190 150 ; size 1"
print #wg, "color black; font Cascadia_Code 7 ; backcolor 240 190 150"
print #wg, "place 745 355 ;\"; "Days"
print #wg, "place 15 20 ;\"; "Pop"
print #wg, "place 15 88 ;\"; "750"
print #wg, "place 15 178 ;\"; "500"
print #wg, "place 15 264 ;\"; "250"
print #wg, "line "; 40; " "; 20; " "; 40; " "; 350
print #wg, "line "; 40; " "; 350; " "; 740; " "; 350
print #wg, "line "; 35; " "; 88; " "; 45; " "; 88
print #wg, "line "; 35; " "; 178; " "; 45; " "; 178
print #wg, "line "; 35; " "; 264; " "; 45; " "; 264
wX = 26
print #wg, "font Cascadia_Code 6"
for w = 1 to 26
print #wg, "line "; 40+wX; " "; 348; " "; 40+wX; " "; 355
if DxD = 1 then print #wg, "place "; 30+wX; " 370 ;\"; Dx : DxD = 0 : wX = wX+26 : Dx = Dx +5000 : goto [noDxD]
wX = wX+26 : Dx = Dx +5000 : DxD = 1
[noDxD]
next w
#wg "flush" : logACTIVATION = 1 : 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
[quitLOG]
close #wg : logACTIVATION = 0 : goto [boucle]
[quit]
close #ini
if logACTIVATION = 1 then close #wg
end
[error]
wait