Forum Liberty Basic France
• Index
Salut salut !!
Voici un petit simulateur que j'ai fait en quelques heures. C pas fou mais c'est assez amusant a regarder.
- Lorsqu'un petit point mange un pixel vert, il gagne de l'énergie.
- lorsqu'un gros point mange un petit pixel, il gagne de l'énergie.
- lorsqu'un pixel a emmagasiné suffisamment d'énergie et que sa période de gestation est finie, il donne naissance a une nouvelle unité =)
- toutes les unités perdent de l'énergie a chaque tour, donc elles doivent manger pour survivre et se reproduire =)
- si une unité a 0 d'énergie, elle meurt
- la carte se régénère automatiquement. Les nouveaux pixels sont mis sur des zones vide et non d'autres déjà utilisés
- Il est possible de suivre l'évolution en haut avec pop1 (herbivore) et pop2 (carnivore)
- il est possible de mettre le jeu en pause
- un éditeur de carte permet de modelé la carte avec soit du vide, soit des arbres, soit de l'eau, soit des montagnes. Les deux derniers étant infranchissable cela permet de faire des zones distinctes. Il est aussi possible de placer de nouvelles populations soit d'herbivore soit de carnivore.
Voici le code en question. Plus le pc est puissant, plus les cycles sont rapides
Code VB :
Edité par atomose Le 26/05/2023 à 15h23
Voici un petit simulateur que j'ai fait en quelques heures. C pas fou mais c'est assez amusant a regarder.
- Lorsqu'un petit point mange un pixel vert, il gagne de l'énergie.
- lorsqu'un gros point mange un petit pixel, il gagne de l'énergie.
- lorsqu'un pixel a emmagasiné suffisamment d'énergie et que sa période de gestation est finie, il donne naissance a une nouvelle unité =)
- toutes les unités perdent de l'énergie a chaque tour, donc elles doivent manger pour survivre et se reproduire =)
- si une unité a 0 d'énergie, elle meurt
- la carte se régénère automatiquement. Les nouveaux pixels sont mis sur des zones vide et non d'autres déjà utilisés
- Il est possible de suivre l'évolution en haut avec pop1 (herbivore) et pop2 (carnivore)
- il est possible de mettre le jeu en pause
- un éditeur de carte permet de modelé la carte avec soit du vide, soit des arbres, soit de l'eau, soit des montagnes. Les deux derniers étant infranchissable cela permet de faire des zones distinctes. Il est aussi possible de placer de nouvelles populations soit d'herbivore soit de carnivore.
Voici le code en question. Plus le pc est puissant, plus les cycles sont rapides

Code VB :
'life simulation by Atomose 2023 nomainwin GameVersion = 0.30 dim CoorX(10000000),CoorY(10000000),valU(10000000),LIFE(10000000),natality(10000000),LIFE2(10000000),natality2(10000000) UNIT = 100 : UNIT2 = 500002 : Xcoor = 800 : Ycoor = 580 : XX= 800 : YY= 580 : redim p(XX,YY) : UNITcompt = UNIT : UNITcompt2 = UNIT2 for n = 1 to UNIT valU(n) = 1 : CoorX(n) = int(rnd(1)*30+370) : CoorY(n) = int(rnd(1)*30+250) : LIFE(n) = 2000 next n for n = 500001 to UNIT2 valU(n) = 2 : CoorX(n) = int(rnd(1)*100+450) : CoorY(n) = int(rnd(1)*100+250) : LIFE2(n) = 20000 next n [INI] 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, 601 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 ";250;" ";160;" ";120;"; size 2; color ";0;" ";180;" ";0 print #ini.info, "down; fill white; font Cascadia_Code 8 ; color black; backcolor white" for YY=0 to Ycoor for XX=0 to Xcoor valor = int(rnd(1)*10+1) select case valor case 1,3,4,5,6,7,8,9,10 valor = 0 case 2 valor = 1000001 : print #ini.main, "set ";XX;" ";YY end select p(XX,YY)= valor next XX next YY #ini.info "place 590 13 ;\"; "Map editor :" print #ini.info, "size 15; color black; set ";680;" ";10;"; set ";700;" ";10;"; set ";720;" ";10;"; set ";740;" ";10;"; set ";760;" ";10;"; set ";780;" ";10 print #ini.info, "size 13; color ";250;" ";160;" ";120;"; set ";680;" ";10;"; color ";150;" ";200;" ";230;"; set ";700;" ";10;"; color ";0;" ";180;" ";0;"; set ";720;" ";10;"; color brown; set ";740;" ";10;"; color white; set ";760;" ";10;"; color white; set ";780;" ";10 print #ini.info, "size 4; color black; set ";760;" ";10;"; color red; set ";780;" ";10 #ini.info, "font Cascadia_Code 8 ; color black; backcolor white; when leftButtonDown [select]; flush" #ini.main, "when leftButtonDown [position]; when leftButtonMove [terrain]; flush" [boucle] scan print #ini.main, "size 2; discard" day = day + 1 #ini.info "place 50 13 ;\"; "Days : ";day;" | Herbivors : ";UNITcompt;" | Carnivors : ";UNITcompt2-500000;" (";death; " kills) " for t = 1 to 5 [rmk] regenX = int(rnd(1)*794+2) : regenY = int(rnd(1)*572+2) if p(regenX,regenY) >1000000 and antifreeeze < 100 then antifreeeze = antifreeeze + 1 : goto [rmk] p(regenX,regenY) = 1000001 : print #ini.main, "size 2; color ";0;" ";180;" ";0;"; set ";regenX;" ";regenY antifreeeze = 0 next t 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 ";250;" ";160;" ";120;";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) >2 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) >2 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) >2 and CoorY(x) >2 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) >2 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) >2 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 [noMoove] CoorX(x) = CoorX(x) : CoorY(x) = CoorY(x) end select if valU(x) = 1 and LIFE(x) >= 1000 and natality(x) >= 50 then LIFE(x) = LIFE(x) - 500 : 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 and LIFE(x) < 3000 then LIFE(x) = LIFE(x) + 50 : natality(x) = natality(x) + 1 if LIFE(x) = 0 and valU(x) = 1 then valU(x) = 0 : p(CoorX(x),CoorY(x)) = 0 : UNITcompt = UNITcompt - 1 if valU(x) = 1 then print #ini.main, "color ";0;" ";0;" ";0;"; set ";CoorX(x);" ";CoorY(x) : p(CoorX(x),CoorY(x)) = x [next] 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 then print #ini.main, "color ";250;" ";160;" ";120;"; 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;" ";180;" ";0;"; set ";CoorX(y);" ";CoorY(y) valor = int(rnd(1)*9+1) select case valor case 1 if p(CoorX(y)+2,CoorY(y)) < 1000002 and CoorX(y) <795 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 0 if p(CoorX(y)+2,CoorY(y)) >= 1000002 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 0 case 2 if p(CoorX(y)+2,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)+2) < 1000002 and CoorX(y) <795 and CoorY(y) <575 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 2 if p(CoorX(y)+2,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)+2) >= 1000002 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) - 2 case 3 if p(CoorX(y),CoorY(y)+2) < 1000002 and CoorY(y) <575 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) + 2 if p(CoorX(y),CoorY(y)+2) >= 1000002 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) - 2 case 4 if p(CoorX(y)-2,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)+2) < 1000002 and CoorX(y) >5 and CoorY(y) <575 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 2 if p(CoorX(y)-2,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)+2) >= 1000002 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) - 2 case 5 if p(CoorX(y)-2,CoorY(y)) < 1000002 and CoorX(y) >5 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 0 if p(CoorX(y)-2,CoorY(y)) >= 1000002 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 0 case 6 if p(CoorX(y)-2,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)-2) < 1000002 and CoorX(y) >5 and CoorY(y) >5 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) - 2 if p(CoorX(y)-2,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)-2) >= 1000002 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) + 2 case 7 if p(CoorX(y),CoorY(y)-2) < 1000002 and CoorY(y) >5 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) - 2 if p(CoorX(y),CoorY(y)-2) >= 1000002 then CoorX(y) = CoorX(y) + 0 : CoorY(y) = CoorY(y) + 2 case 8 if p(CoorX(y)+2,CoorY(y)) < 1000002 and p(CoorX(y),CoorY(y)-2) < 1000002 and CoorX(y) <795 and CoorY(y) >5 then CoorX(y) = CoorX(y) + 2 : CoorY(y) = CoorY(y) - 2 if p(CoorX(y)+2,CoorY(y)) >= 1000002 and p(CoorX(y),CoorY(y)-2) >= 1000002 then CoorX(y) = CoorX(y) - 2 : CoorY(y) = CoorY(y) + 2 case 9 [noMoove2] CoorX(y) = CoorX(y) : CoorY(y) = CoorY(y) end select if valU(y) = 2 and natality2(y) >= 10 then LIFE2(y) = LIFE2(y) - 1000 : natality2(y) = 0 : UNIT2 = UNIT2 + 1 : valU(UNIT2) = 2 : CoorX(UNIT2) = CoorX(y) : CoorY(UNIT2) = CoorY(y) : LIFE2(UNIT2) = 20000 : UNITcompt2 = UNITcompt2 + 1 killing1 = p(CoorX(y),CoorY(y)) : if killing1 > 1000000 then killing1 = 0 killing2 = p(CoorX(y)+1,CoorY(y)) : if killing2 > 1000000 then killing2 = 0 killing3 = p(CoorX(y)+1,CoorY(y)-1) : if killing3 > 1000000 then killing3 = 0 killing4 = p(CoorX(y)-1,CoorY(y)) : if killing4 > 1000000 then killing4 = 0 killing5 = p(CoorX(y)-1,CoorY(y)-1) : if killing5 > 1000000 then killing5 = 0 killing6 = p(CoorX(y),CoorY(y)+1) : if killing6 > 1000000 then killing6 = 0 killing7 = p(CoorX(y)+1,CoorY(y)+1) : if killing7 > 1000000 then killing7 = 0 killing8 = p(CoorX(y),CoorY(y)-1) : if killing8 > 1000000 then killing8 = 0 killing9 = p(CoorX(y)-1,CoorY(y)+1) : if killing9 > 1000000 then killing9 = 0 if (valU(killing1) = 1 or valU(killing2) = 1 or valU(killing3) = 1 or valU(killing4) = 1 or valU(killing5) = 1) then if valU(killing1) = 1 then killed = p(CoorX(y),CoorY(y)) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing2) = 1 then killed = p(CoorX(y)+1,CoorY(y)) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing3) = 1 then killed = p(CoorX(y)+1,CoorY(y)-1) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing4) = 1 then killed = p(CoorX(y)-1,CoorY(y)) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing5) = 1 then killed = p(CoorX(y)-1,CoorY(y)-1) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing6) = 1 then killed = p(CoorX(y),CoorY(y)+1) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing7) = 1 then killed = p(CoorX(y)+1,CoorY(y)+1) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing8) = 1 then killed = p(CoorX(y),CoorY(y)-1) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 if valU(killing9) = 1 then killed = p(CoorX(y)-1,CoorY(y)+1) : valU(killed) = 0 : LIFE2(killed) = 0 : UNITcompt = UNITcompt - 1 : p(CoorX(y),CoorY(y)) = 0 : LIFE2(y) = LIFE2(y) + 500 : natality2(y) = natality2(y) + 1 : death = death + 1 end if 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;" ";255;" ";255;"; set ";CoorX(y);" ";CoorY(y) [next2] next y goto [boucle] [select] mX = MouseX : mY = MouseY competence = 0 : antifreeeze = 0 print #ini.info, "size 2; color white; set ";773;" ";3;"; set ";753;" ";3;"; set ";733;" ";3;"; set ";713;" ";3;"; set ";693;" ";3;"; set ";672;" ";3 if mX >670 and mX<688 then competence = 1 : print #ini.info, "size 2; color blue; set ";672;" ";3 if mX >692 and mX<707 then competence = 2 : print #ini.info, "size 2; color blue; set ";693;" ";3 if mX >713 and mX<727 then competence = 3 : print #ini.info, "size 2; color blue; set ";713;" ";3 if mX >734 and mX<747 then competence = 4 : print #ini.info, "size 2; color blue; set ";733;" ";3 if mX >752 and mX<768 then competence = 5 : print #ini.info, "size 2; color blue; set ";753;" ";3 if mX >772 and mX<788 then competence = 6 : print #ini.info, "size 2; color blue; set ";773;" ";3 print #ini.info, "color black" if pause = 0 then goto [boucle] if pause = 1 then wait [position] mX = MouseX : mY = MouseY if competence = 5 then UNIT = UNIT + 1 : valU(UNIT) = 1 : CoorX(UNIT) = MouseX : CoorY(UNIT) = MouseY : LIFE(UNIT) = 1500 : UNITcompt = UNITcompt + 1 if competence = 6 then UNIT2 = UNIT2 + 1 : valU(UNIT2) = 2 : CoorX(UNIT2) = MouseX : CoorY(UNIT2) = MouseY : LIFE2(UNIT2) = 20000 : UNITcompt2 = UNITcompt2 + 1 if pause = 1 then wait goto [boucle] [terrain] on error goto [boucle] select case competence case 1 p(MouseX,MouseY) = 0 : p(MouseX+1,MouseY) = 0 : p(MouseX-1,MouseY) = 0 : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX;" ";MouseY : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX+1;" ";MouseY : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX-1;" ";MouseY p(MouseX,MouseY+1) = 0 : p(MouseX+1,MouseY+1) = 0 : p(MouseX-1,MouseY+1) = 0 : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX;" ";MouseY+1 : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX+1;" ";MouseY+1 : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX-1;" ";MouseY+1 p(MouseX,MouseY-1) = 0 : p(MouseX+1,MouseY-1) = 0 : p(MouseX-1,MouseY-1) = 0 : print #ini.main, "size 1; color ";250;" ";162;" ";120;"; set ";MouseX;" ";MouseY-1 : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX+1;" ";MouseY-1 : print #ini.main, "size 1; color ";250;" ";160;" ";120;"; set ";MouseX-1;" ";MouseY-1 case 2 p(MouseX,MouseY) = 1000002 : p(MouseX+1,MouseY) = 1000002 : p(MouseX-1,MouseY) = 1000002 : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX;" ";MouseY : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX+1;" ";MouseY : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX-1;" ";MouseY p(MouseX,MouseY+1) = 1000002 : p(MouseX+1,MouseY+1) = 1000002 : p(MouseX-1,MouseY+1) = 1000002 : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX;" ";MouseY+1 : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX+1;" ";MouseY+1 : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX-1;" ";MouseY+1 p(MouseX,MouseY-1) = 1000002 : p(MouseX+1,MouseY-1) = 1000002 : p(MouseX-1,MouseY-1) = 1000002 : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX;" ";MouseY-1 : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX+1;" ";MouseY-1 : print #ini.main, "size 1; color ";150;" ";200;" ";230;"; set ";MouseX-1;" ";MouseY-1 case 3 p(MouseX,MouseY) = 1000001 : p(MouseX+1,MouseY) = 1000001 : p(MouseX-1,MouseY) = 1000001 : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX;" ";MouseY : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX+1;" ";MouseY : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX-1;" ";MouseY p(MouseX,MouseY+1) = 1000001 : p(MouseX+1,MouseY+1) = 1000001 : p(MouseX-1,MouseY+1) = 1000001 : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX;" ";MouseY+1 : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX+1;" ";MouseY+1 : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX-1;" ";MouseY+1 p(MouseX,MouseY-1) = 1000001 : p(MouseX+1,MouseY-1) = 1000001 : p(MouseX-1,MouseY-1) = 1000001 : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX;" ";MouseY-1 : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX+1;" ";MouseY-1 : print #ini.main, "size 1; color ";0;" ";180;" ";0;"; set ";MouseX-1;" ";MouseY-1 case 4 p(MouseX,MouseY) = 1000003 : p(MouseX+1,MouseY) = 1000003 : p(MouseX-1,MouseY) = 1000003 : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX;" ";MouseY : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX+1;" ";MouseY : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX-1;" ";MouseY p(MouseX,MouseY+1) = 1000003 : p(MouseX+1,MouseY+1) = 1000003 : p(MouseX-1,MouseY+1) = 1000003 : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX;" ";MouseY+1 : print #ini.main, "size 1; color ";64;" ";64;" ";0;"; set ";MouseX+1;" ";MouseY+1 : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX-1;" ";MouseY+1 p(MouseX,MouseY-1) = 1000003 : p(MouseX+1,MouseY-1) = 1000003 : p(MouseX-1,MouseY-1) = 1000003 : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX;" ";MouseY-1 : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX+1;" ";MouseY-1 : print #ini.main, "size 1; color ";128;" ";128;" ";0;"; set ";MouseX-1;" ";MouseY-1 end select if pause = 1 then wait goto [boucle] [pause] if pause = 1 then pause = 0 : print #ini.pause, "Stop" : goto [boucle] if pause = 0 then pause = 1 : print #ini.pause, "Play" : wait [quit] close #ini : end

Edité par atomose Le 26/05/2023 à 15h23
La critique:
Générer la carte par le code, c'est bien mais c'est long.
Je présume que les arbres sont les parties plus foncées
Je n'ai pas eu de montagnes
Les bestiaux bouffent tout, arbres montagnes (je crains qu'il me bouffent moi-même à la sortie de l'écran), c'est des voraces.
Looool !
Générer la carte par le code, c'est bien mais c'est long.
Je présume que les arbres sont les parties plus foncées
Je n'ai pas eu de montagnes
Les bestiaux bouffent tout, arbres montagnes (je crains qu'il me bouffent moi-même à la sortie de l'écran), c'est des voraces.
Looool !
____________________
Roro
Roro
je viens de mettre a jour le code avec la nouvelle version. Les prédateurs ne mangent plus l'eau et les montagnes mtn XD.
Générer la map est super long (enfin ca dépend du processeur) mais c pck j'ai fait 1px par 1px .... donc ya près d'un demi million de pixel a dessiner en random ... Si tu passe a des pixels de 9 par exemple, c ultra rapide
Générer la map est super long (enfin ca dépend du processeur) mais c pck j'ai fait 1px par 1px .... donc ya près d'un demi million de pixel a dessiner en random ... Si tu passe a des pixels de 9 par exemple, c ultra rapide

grosse mise a jour depuis la dernière version qui peaufine l'éditeur de map, optimise le code et rends le tout plus lisible =).
C'est bien, continue.

____________________
Roro
Roro
Nouvelle version qui équilibre les deux populations, corrige des bugs et donne la capacité aux carnivore d'attaque tous les herbivores dans un périmètre donné (ici, 9 cases autour d'eux) afin de facilité la chasse.
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie