bonjour,
j'ai fait un jeu simple en batch mais dans ce script:
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

set xpmm=1
set xpm=1
set multi=11
set mult=1
set level=1
set next=false
set xp=0
set e=false
set largeur=10
set hauteur=5
set x=5
set y=3
set monster=4
set monsterx=6
:debut
set /a multi=!level!*11
set /a mult=!level!*10
if !x!==10 if !y!==5 set ee=1
if !x!==1 if !y!==1 set ea=1
if !x!==10 if !y!==1 set ae=1
if !x!==1 if !y!==5 set aa=1
cls
if !ee!==1 if !ea!==1 if !ae!==1 if !aa!==1 (set eia=true
echo Easter Egg n1 activé ^!
)
if !eia!==true call :clr
call :xpmetter
echo Position actuelle du joueur : x=%x%, y=%y%

for /l %%i in (1,1,!hauteur!) do (
set "ligne="
for /l %%j in (1,1,!largeur!) do (
set "symbole=."
if %%i==!monster! if %%j==!monsterx! set "symbole=#"
if %%i==!y! if %%j==!x! set "symbole=X"
set "ligne=!ligne!!symbole!"
)
echo !ligne!
)
call :proxi !monsterx! !monster!
call :proxi 10 3
if !result!==true echo appuyez sur E pour frapper
choice /c zqsde /n /m "z=haut, q=gauche, s=bas, d=droite"
set "choix=%errorlevel%"
if !choix!==5 set e=true
if !choix!==4 set /a x+=1
if !choix!==3 set /a y+=1
if !choix!==2 set /a x-=1
if !choix!==1 set /a y-=1
call :proxi 10 3
if !result!==true (
if !e!==true(
call :change
)
set result=false
)
call :proxi !monsterx! !monster!
if !result!==true (
if !e!==true (
call :parler
)
set result=false
)
if %x% lss 1 set x=1
if %y% lss 1 set y=1
if %x% gtr %largeur% set x=%largeur%
if %y% gtr %hauteur% set y=%hauteur%

set e=false
set result=false
goto debut

:proxi
set /a tamp=%1+1
if !x!==!tamp! if !y!==%2 set result=true
set /a tamp=%1-1
if !x!==!tamp! if !y!==%2 set result=true
set /a tamp=%2+1
if !y!==!tamp! if !x!==%1 set result=true
set /a tamp=%2-1
if !y!==!tamp! if !x!==%1 set result=true
exit /b

:parler
set /a xp+=!level!
if !xp!==!multi! set next=true
exit /b

:xpmetter
set /a z=0*!level!
set /a u=1*!level!
set /a d=2*!level!
set /a t=3*!level!
set /a q=4*!level!
set /a c=5*!level!
set /a s=6*!level!
set /a v=7*!level!
set /a h=8*!level!
set /a n=9*!level!
set /a b=10*!level!
echo ______________________________
if "!xp!"=="!z!" echo ^| ^| !xp!/!mult! !level!
if "!xp!"=="!u!" echo ^|/// ^| !xp!/!mult! !level!
if "!xp!"=="!d!" echo ^|////// ^| !xp!/!mult! !level!
if "!xp!"=="!t!" echo ^|///////// ^| !xp!/!mult! !level!
if "!xp!"=="!q!" echo ^|//////////// ^| !xp!/!mult! !level!
if "!xp!"=="!c!" echo ^|/////////////// ^| !xp!/!mult! !level!
if "!xp!"=="!s!" echo ^|////////////////// ^| !xp!/!mult! !level!
if "!xp!"=="!v!" echo ^|///////////////////// ^| !xp!/!mult! !level!
if "!xp!"=="!h!" echo ^|//////////////////////// ^| !xp!/!mult! !level!
if "!xp!"=="!n!" echo ^|/////////////////////////// ^| !xp!/!mult! !level!
if "!xp!"=="!b!" echo ^|//////////////////////////////^| !xp!/!mult! !level!
if !next!==true (
set next=false
set xp=0
set /a level+=1
goto debut
)
echo ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
exit /b

:clr
set colors[0]=0A
set colors[1]=0B
set colors[2]=0C
set colors[3]=0D
set colors[4]=0E
set colors[5]=0F
set colors[6]=09
set colors[7]=07
set /a idx=%random% %% 8
set color=!colors[%idx%]!
color !color!
exit /b

:change
echo test
exit /b


result ne veut pas se creer dans la :proxi function
il est donc egal a commande ECHO desactivée alors que j'ai setlocal enabledelayedexpansion activé.
j'espere que vous pourrez résoudre mon probleme,
merci d'avance.
je sais que batch n'est pas un langage pour creer des jeux mais j'avait envie d'essayer.