PAC-MAN en Batch
Modérateur : WIN32-[GG]
-
- Batcheur occasionnel
- Messages : 6
- Enregistré le : 09 sept. 2009 14:50
- Localisation : Essonne / France
PAC-MAN en Batch
Bonjour à tous !
Voici un jeu type pac-man que j'ai écris il y a un moment déja, il nécessite la commande externe "key.exe" créée par Bilou de batch.xo.it :
http://www.box.net/shared/tfnq8ugqrutppoz15xqg
Bon jeu et bonne lecture du code ^^
N'hésitez pas à poster vos commentaires !
:: ------------------------------ CODE --------------------
@echo off
title )}--PAC_MAN--{( ^| Batch ^|
color 0E
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
if not exist key.exe (
echo Veuillez telecherger key.exe ...
start http://www.box.net/shared/tfnq8ugqrutppoz15xqg
pause
exit
)
:: ###############################################
:: #
:: #
:: ################ RESET GAME ################
:RESET
:: \\ %CVR% correspond a chaque "brique" du mur
set CVR=Û
:: \\ %PAC% est le personnage Pac-Man
set PAC=
:: \\ %GUM% est le personnage Pac-Gomme
set GUM=.
:: \\ %GHOST% est le personnage Fantome
set GHOST=
:: \\ %LIFE% est le personnage VIE
set LIFE=
:: \\ %NB_LIFE% est le nombre de Vies
set NB_LIFE=3
:: \\ %LVL_MAX% correspond aux niveaux construits
set LVL_MAX=4
:: ###############################################
:: #
:: #
:: ##################################----MENU----################################
:MENU
cls
echo. &echo.
echo ____ _ ____ __ __ _ _ _
echo ^| _ \ / \ / ___^| ^| \/ ^| / \ ^| \ ^| ^|
echo ^| ^|_) ^| / _ \ ^| ^| ^| ^|\/^| ^| / _ \ ^| \^| ^|
echo ^| __/ / ___ \ ^| ^|___ BATCH ^| ^| ^| ^| / ___ \ ^| ^|\ ^|
echo ^|_^| /_/ \_\ \____^| ^|_^| ^|_^| /_/ \_\ ^|_^| \_^|
echo. &echo. &echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º -- RŠgle du Jeu -- º
echo º º
echo º Utilisez les flŠches º
echo º pour diriger Pac-Man º
echo º º
echo º Espace pour sortir º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo. &echo.
set SCORE=0
set LVL=1
set /p LVL= Choix du Niveau [ 1 - %LVL_MAX% ] \\:
for /f "delims=1234" %%A in ("%LVL%") do (
goto :MENU
)
set LVL=:LEVEL_%LVL%
goto %LVL%
:: ############################################################################
:: #
:: #
:: ################ Initialisation du LEVEL_1 ################
:LEVEL_1
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Emplacement des Vies ------
set X16_Y11=%LIFE%
set TRANS_X16_Y11=%LIFE%
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=245
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for /l %%A in (6,1,8) do (
set X%%A_Y8=%CVR%
set X%%A_Y9=%CVR%
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
set X%%A_Y31=%CVR%
set X%%A_Y32=%CVR%
)
for /l %%A in (10,1,12) do (
set X%%A_Y8=%CVR%
set X%%A_Y9=%CVR%
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
set X%%A_Y31=%CVR%
set X%%A_Y32=%CVR%
)
for /l %%A in (8,1,10) do (
set X%%A_Y11=%CVR%
set X%%A_Y12=%CVR%
set X%%A_Y28=%CVR%
set X%%A_Y29=%CVR%
)
:: \\ Murs Horizontaux -------
for /l %%A in (3,1,6) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (2,1,6) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (34,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (34,1,38) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (8,1,15) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (25,1,32) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (17,1,23) do (
set X2_Y%%A=%CVR%
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
set X16_Y%%A=%CVR%
)
for /l %%A in (10,1,13) do (
set X6_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (27,1,30) do (
set X6_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
goto :WALL
:: ############################################################
:: #
:: #
:: ################ Initialisation du LEVEL_2 ################
:LEVEL_2
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Emplacement des Vies ------
set X2_Y28=%LIFE%
set TRANS_X2_Y28=%LIFE%
set X16_Y12=%LIFE%
set TRANS_X16_Y12=%LIFE%
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=186
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for /l %%A in (7,1,11) do (
set X%%A_Y3=%CVR%
set X%%A_Y4=%CVR%
set X%%A_Y5=%CVR%
set X%%A_Y35=%CVR%
set X%%A_Y36=%CVR%
set X%%A_Y37=%CVR%
)
for /l %%A in (3,1,6) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y12=%CVR%
set X%%A_Y30=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y28=%CVR%
)
for /l %%A in (12,1,15) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y12=%CVR%
set X%%A_Y30=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y28=%CVR%
)
for /l %%A in (5,1,8) do (
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
)
for /l %%A in (10,1,13) do (
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
)
for /l %%A in (3,1,5) do (
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
)
for /l %%A in (13,1,15) do (
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
)
:: \\ Murs Horizontaux -------
for /l %%A in (3,1,8) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X13_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (32,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X13_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (7,1,15) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (10,1,15) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (7,1,8) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (25,1,33) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (25,1,30) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (32,1,33) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (7,1,8) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (14,1,15) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (25,1,26) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (32,1,33) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (14,1,26) do (
set X2_Y%%A=%CVR%
set X3_Y%%A=%CVR%
set X15_Y%%A=%CVR%
set X16_Y%%A=%CVR%
)
for /l %%A in (10,1,15) do (
set X9_Y%%A=%CVR%
)
for /l %%A in (25,1,30) do (
set X9_Y%%A=%CVR%
)
for /l %%A in (15,1,24) do (
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X13_Y%%A=%CVR%
set X14_Y%%A=%CVR%
)
for /l %%A in (14,1,20) do (
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (19,1,26) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
)
goto :WALL
:: #####################################################
:: #
:: #
:: ################ Initialisation du LEVEL_3 ################
:LEVEL_3
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=188
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for /l %%A in (3,1,8) do (
for /l %%B in (3,1,14) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (10,1,15) do (
for /l %%B in (26,1,37) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (2,1,3) do (
for /l %%B in (16,1,19) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (5,1,8) do (
for /l %%B in (16,1,19) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (15,1,16) do (
for /l %%B in (21,1,24) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (10,1,13) do (
for /l %%B in (21,1,24) do (
set X%%A_Y%%B=%CVR%
))
:: \\ Murs Horizontaux -------
for /l %%A in (2,1,19) do (
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (21,1,38) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
)
for /l %%A in (3,1,19) do (
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (23,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
:: \\ Ajouts Correctifs -------
set X3_Y20=%CVR%
set X3_Y21=%CVR%
set X4_Y21=%CVR%
set X15_Y20=%CVR%
:: \\ Emplacement des Vies ------
set X2_Y19=%LIFE%
set TRANS_X2_Y19=%LIFE%
set X16_Y21=%LIFE%
set TRANS_X16_Y21=%LIFE%
goto :WALL
:: #####################################################
:: #
:: #
:: ################ Initialisation du LEVEL_4 ################
:LEVEL_4
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Emplacement des Vies ------
set X9_Y35=%LIFE%
set TRANS_X9_Y35=%LIFE%
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=167
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for %%A in (16) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y30=%CVR%
)
for %%A in (2) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y30=%CVR%
)
for /l %%A in (3,1,7) do (
set X%%A_Y19=%CVR%
set X%%A_Y20=%CVR%
set X%%A_Y21=%CVR%
)
for /l %%A in (11,1,15) do (
set X%%A_Y19=%CVR%
set X%%A_Y20=%CVR%
set X%%A_Y21=%CVR%
)
for /l %%A in (13,1,14) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
)
for /l %%A in (4,1,5) do (
set X%%A_Y29=%CVR%
set X%%A_Y30=%CVR%
)
:: \\ Murs Horizontaux -------
for /l %%A in (2,1,4) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (36,1,38) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (6,1,21) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (19,1,34) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (6,1,17) do (
set X9_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (23,1,34) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X9_Y%%A=%CVR%
)
for /l %%A in (3,1,8) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
for /l %%A in (6,1,18) do (
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
)
for /l %%A in (13,1,18) do (
set X3_Y%%A=%CVR%
)
for /l %%A in (22,1,27) do (
set X15_Y%%A=%CVR%
)
for /l %%A in (32,1,37) do (
set X15_Y%%A=%CVR%
)
for /l %%A in (22,1,37) do (
set X14_Y%%A=%CVR%
)
for /l %%A in (22,1,34) do (
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
set X13_Y%%A=%CVR%
)
for /l %%A in (23,1,27) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
for /l %%A in (32,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
for /l %%A in (3,1,8) do (
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (13,1,17) do (
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
goto :WALL
:: #####################################################
:: #
:: #
:: ####################################### WALL ####################################
:: \\ Grille de jeu _ Tous niveaux
:WALL
set LINE_21=
set LINE_20= %LVL%
set LINE_19=
set LINE_18= %X17_Y1%%X17_Y2%%X17_Y3%%X17_Y4%%X17_Y5%%X17_Y6%%X17_Y7%%X17_Y8%%X17_Y9%%X17_Y10%%X17_Y11%%X17_Y12%%X17_Y13%%X17_Y14%%X17_Y15%%X17_Y16%%X17_Y17%%X17_Y18%%X17_Y19%%X17_Y20%%X17_Y21%%X17_Y22%%X17_Y23%%X17_Y24%%X17_Y25%%X17_Y26%%X17_Y27%%X17_Y28%%X17_Y29%%X17_Y30%%X17_Y31%%X17_Y32%%X17_Y33%%X17_Y34%%X17_Y35%%X17_Y36%%X17_Y37%%X17_Y38%%X17_Y39%
set LINE_17= %X16_Y1%%X16_Y2%%X16_Y3%%X16_Y4%%X16_Y5%%X16_Y6%%X16_Y7%%X16_Y8%%X16_Y9%%X16_Y10%%X16_Y11%%X16_Y12%%X16_Y13%%X16_Y14%%X16_Y15%%X16_Y16%%X16_Y17%%X16_Y18%%X16_Y19%%X16_Y20%%X16_Y21%%X16_Y22%%X16_Y23%%X16_Y24%%X16_Y25%%X16_Y26%%X16_Y27%%X16_Y28%%X16_Y29%%X16_Y30%%X16_Y31%%X16_Y32%%X16_Y33%%X16_Y34%%X16_Y35%%X16_Y36%%X16_Y37%%X16_Y38%%X16_Y39%
set LINE_16= %X15_Y1%%X15_Y2%%X15_Y3%%X15_Y4%%X15_Y5%%X15_Y6%%X15_Y7%%X15_Y8%%X15_Y9%%X15_Y10%%X15_Y11%%X15_Y12%%X15_Y13%%X15_Y14%%X15_Y15%%X15_Y16%%X15_Y17%%X15_Y18%%X15_Y19%%X15_Y20%%X15_Y21%%X15_Y22%%X15_Y23%%X15_Y24%%X15_Y25%%X15_Y26%%X15_Y27%%X15_Y28%%X15_Y29%%X15_Y30%%X15_Y31%%X15_Y32%%X15_Y33%%X15_Y34%%X15_Y35%%X15_Y36%%X15_Y37%%X15_Y38%%X15_Y39%
set LINE_15= %X14_Y1%%X14_Y2%%X14_Y3%%X14_Y4%%X14_Y5%%X14_Y6%%X14_Y7%%X14_Y8%%X14_Y9%%X14_Y10%%X14_Y11%%X14_Y12%%X14_Y13%%X14_Y14%%X14_Y15%%X14_Y16%%X14_Y17%%X14_Y18%%X14_Y19%%X14_Y20%%X14_Y21%%X14_Y22%%X14_Y23%%X14_Y24%%X14_Y25%%X14_Y26%%X14_Y27%%X14_Y28%%X14_Y29%%X14_Y30%%X14_Y31%%X14_Y32%%X14_Y33%%X14_Y34%%X14_Y35%%X14_Y36%%X14_Y37%%X14_Y38%%X14_Y39%
set LINE_14= %X13_Y1%%X13_Y2%%X13_Y3%%X13_Y4%%X13_Y5%%X13_Y6%%X13_Y7%%X13_Y8%%X13_Y9%%X13_Y10%%X13_Y11%%X13_Y12%%X13_Y13%%X13_Y14%%X13_Y15%%X13_Y16%%X13_Y17%%X13_Y18%%X13_Y19%%X13_Y20%%X13_Y21%%X13_Y22%%X13_Y23%%X13_Y24%%X13_Y25%%X13_Y26%%X13_Y27%%X13_Y28%%X13_Y29%%X13_Y30%%X13_Y31%%X13_Y32%%X13_Y33%%X13_Y34%%X13_Y35%%X13_Y36%%X13_Y37%%X13_Y38%%X13_Y39%
set LINE_13= %X12_Y1%%X12_Y2%%X12_Y3%%X12_Y4%%X12_Y5%%X12_Y6%%X12_Y7%%X12_Y8%%X12_Y9%%X12_Y10%%X12_Y11%%X12_Y12%%X12_Y13%%X12_Y14%%X12_Y15%%X12_Y16%%X12_Y17%%X12_Y18%%X12_Y19%%X12_Y20%%X12_Y21%%X12_Y22%%X12_Y23%%X12_Y24%%X12_Y25%%X12_Y26%%X12_Y27%%X12_Y28%%X12_Y29%%X12_Y30%%X12_Y31%%X12_Y32%%X12_Y33%%X12_Y34%%X12_Y35%%X12_Y36%%X12_Y37%%X12_Y38%%X12_Y39%
set LINE_12= %X11_Y1%%X11_Y2%%X11_Y3%%X11_Y4%%X11_Y5%%X11_Y6%%X11_Y7%%X11_Y8%%X11_Y9%%X11_Y10%%X11_Y11%%X11_Y12%%X11_Y13%%X11_Y14%%X11_Y15%%X11_Y16%%X11_Y17%%X11_Y18%%X11_Y19%%X11_Y20%%X11_Y21%%X11_Y22%%X11_Y23%%X11_Y24%%X11_Y25%%X11_Y26%%X11_Y27%%X11_Y28%%X11_Y29%%X11_Y30%%X11_Y31%%X11_Y32%%X11_Y33%%X11_Y34%%X11_Y35%%X11_Y36%%X11_Y37%%X11_Y38%%X11_Y39%
set LINE_11= %X10_Y1%%X10_Y2%%X10_Y3%%X10_Y4%%X10_Y5%%X10_Y6%%X10_Y7%%X10_Y8%%X10_Y9%%X10_Y10%%X10_Y11%%X10_Y12%%X10_Y13%%X10_Y14%%X10_Y15%%X10_Y16%%X10_Y17%%X10_Y18%%X10_Y19%%X10_Y20%%X10_Y21%%X10_Y22%%X10_Y23%%X10_Y24%%X10_Y25%%X10_Y26%%X10_Y27%%X10_Y28%%X10_Y29%%X10_Y30%%X10_Y31%%X10_Y32%%X10_Y33%%X10_Y34%%X10_Y35%%X10_Y36%%X10_Y37%%X10_Y38%%X10_Y39%
set LINE_10= %X9_Y1%%X9_Y2%%X9_Y3%%X9_Y4%%X9_Y5%%X9_Y6%%X9_Y7%%X9_Y8%%X9_Y9%%X9_Y10%%X9_Y11%%X9_Y12%%X9_Y13%%X9_Y14%%X9_Y15%%X9_Y16%%X9_Y17%%X9_Y18%%X9_Y19%%X9_Y20%%X9_Y21%%X9_Y22%%X9_Y23%%X9_Y24%%X9_Y25%%X9_Y26%%X9_Y27%%X9_Y28%%X9_Y29%%X9_Y30%%X9_Y31%%X9_Y32%%X9_Y33%%X9_Y34%%X9_Y35%%X9_Y36%%X9_Y37%%X9_Y38%%X9_Y39%
set LINE_9= %X8_Y1%%X8_Y2%%X8_Y3%%X8_Y4%%X8_Y5%%X8_Y6%%X8_Y7%%X8_Y8%%X8_Y9%%X8_Y10%%X8_Y11%%X8_Y12%%X8_Y13%%X8_Y14%%X8_Y15%%X8_Y16%%X8_Y17%%X8_Y18%%X8_Y19%%X8_Y20%%X8_Y21%%X8_Y22%%X8_Y23%%X8_Y24%%X8_Y25%%X8_Y26%%X8_Y27%%X8_Y28%%X8_Y29%%X8_Y30%%X8_Y31%%X8_Y32%%X8_Y33%%X8_Y34%%X8_Y35%%X8_Y36%%X8_Y37%%X8_Y38%%X8_Y39%
set LINE_8= %X7_Y1%%X7_Y2%%X7_Y3%%X7_Y4%%X7_Y5%%X7_Y6%%X7_Y7%%X7_Y8%%X7_Y9%%X7_Y10%%X7_Y11%%X7_Y12%%X7_Y13%%X7_Y14%%X7_Y15%%X7_Y16%%X7_Y17%%X7_Y18%%X7_Y19%%X7_Y20%%X7_Y21%%X7_Y22%%X7_Y23%%X7_Y24%%X7_Y25%%X7_Y26%%X7_Y27%%X7_Y28%%X7_Y29%%X7_Y30%%X7_Y31%%X7_Y32%%X7_Y33%%X7_Y34%%X7_Y35%%X7_Y36%%X7_Y37%%X7_Y38%%X7_Y39%
set LINE_7= %X6_Y1%%X6_Y2%%X6_Y3%%X6_Y4%%X6_Y5%%X6_Y6%%X6_Y7%%X6_Y8%%X6_Y9%%X6_Y10%%X6_Y11%%X6_Y12%%X6_Y13%%X6_Y14%%X6_Y15%%X6_Y16%%X6_Y17%%X6_Y18%%X6_Y19%%X6_Y20%%X6_Y21%%X6_Y22%%X6_Y23%%X6_Y24%%X6_Y25%%X6_Y26%%X6_Y27%%X6_Y28%%X6_Y29%%X6_Y30%%X6_Y31%%X6_Y32%%X6_Y33%%X6_Y34%%X6_Y35%%X6_Y36%%X6_Y37%%X6_Y38%%X6_Y39%
set LINE_6= %X5_Y1%%X5_Y2%%X5_Y3%%X5_Y4%%X5_Y5%%X5_Y6%%X5_Y7%%X5_Y8%%X5_Y9%%X5_Y10%%X5_Y11%%X5_Y12%%X5_Y13%%X5_Y14%%X5_Y15%%X5_Y16%%X5_Y17%%X5_Y18%%X5_Y19%%X5_Y20%%X5_Y21%%X5_Y22%%X5_Y23%%X5_Y24%%X5_Y25%%X5_Y26%%X5_Y27%%X5_Y28%%X5_Y29%%X5_Y30%%X5_Y31%%X5_Y32%%X5_Y33%%X5_Y34%%X5_Y35%%X5_Y36%%X5_Y37%%X5_Y38%%X5_Y39%
set LINE_5= %X4_Y1%%X4_Y2%%X4_Y3%%X4_Y4%%X4_Y5%%X4_Y6%%X4_Y7%%X4_Y8%%X4_Y9%%X4_Y10%%X4_Y11%%X4_Y12%%X4_Y13%%X4_Y14%%X4_Y15%%X4_Y16%%X4_Y17%%X4_Y18%%X4_Y19%%X4_Y20%%X4_Y21%%X4_Y22%%X4_Y23%%X4_Y24%%X4_Y25%%X4_Y26%%X4_Y27%%X4_Y28%%X4_Y29%%X4_Y30%%X4_Y31%%X4_Y32%%X4_Y33%%X4_Y34%%X4_Y35%%X4_Y36%%X4_Y37%%X4_Y38%%X4_Y39%
set LINE_4= %X3_Y1%%X3_Y2%%X3_Y3%%X3_Y4%%X3_Y5%%X3_Y6%%X3_Y7%%X3_Y8%%X3_Y9%%X3_Y10%%X3_Y11%%X3_Y12%%X3_Y13%%X3_Y14%%X3_Y15%%X3_Y16%%X3_Y17%%X3_Y18%%X3_Y19%%X3_Y20%%X3_Y21%%X3_Y22%%X3_Y23%%X3_Y24%%X3_Y25%%X3_Y26%%X3_Y27%%X3_Y28%%X3_Y29%%X3_Y30%%X3_Y31%%X3_Y32%%X3_Y33%%X3_Y34%%X3_Y35%%X3_Y36%%X3_Y37%%X3_Y38%%X3_Y39%
set LINE_3= %X2_Y1%%X2_Y2%%X2_Y3%%X2_Y4%%X2_Y5%%X2_Y6%%X2_Y7%%X2_Y8%%X2_Y9%%X2_Y10%%X2_Y11%%X2_Y12%%X2_Y13%%X2_Y14%%X2_Y15%%X2_Y16%%X2_Y17%%X2_Y18%%X2_Y19%%X2_Y20%%X2_Y21%%X2_Y22%%X2_Y23%%X2_Y24%%X2_Y25%%X2_Y26%%X2_Y27%%X2_Y28%%X2_Y29%%X2_Y30%%X2_Y31%%X2_Y32%%X2_Y33%%X2_Y34%%X2_Y35%%X2_Y36%%X2_Y37%%X2_Y38%%X2_Y39%
set LINE_2= %X1_Y1%%X1_Y2%%X1_Y3%%X1_Y4%%X1_Y5%%X1_Y6%%X1_Y7%%X1_Y8%%X1_Y9%%X1_Y10%%X1_Y11%%X1_Y12%%X1_Y13%%X1_Y14%%X1_Y15%%X1_Y16%%X1_Y17%%X1_Y18%%X1_Y19%%X1_Y20%%X1_Y21%%X1_Y22%%X1_Y23%%X1_Y24%%X1_Y25%%X1_Y26%%X1_Y27%%X1_Y28%%X1_Y29%%X1_Y30%%X1_Y31%%X1_Y32%%X1_Y33%%X1_Y34%%X1_Y35%%X1_Y36%%X1_Y37%%X1_Y38%%X1_Y39%
set LINE_1= [ LIFES: %NB_LIFE% ] - [ SCORE: %SCORE% ]
cls
for /l %%A in (21,-1,1) do echo.!Line_%%A!
:: ################
:: PAUSE
:: ################
call :USE_KEY
goto :MOVE_PAC
:: #################################################################################
:: #
:: #
:: ######################## --- Définition des Mouvements --- ########################
:MOVE_PAC
for /f "delims=ULRDS" %%A in ("%TOUCH%") do (
goto :END_MOVE
)
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_PAC%") do (
set ExX=%%X
set ExY=%%Y
)
if %TOUCH%==S goto :RESET
if %TOUCH%==U set /a NwX=ExX+1
if %TOUCH%==U (
set NEW_POS_PAC=X%NwX%_Y%ExY%
goto :VERIF
)
if %TOUCH%==L set /a NwY=ExY-1
if %TOUCH%==L (
set NEW_POS_PAC=X%ExX%_Y%NwY%
goto :VERIF
)
if %TOUCH%==R set /a NwY=ExY+1
if %TOUCH%==R (
set NEW_POS_PAC=X%ExX%_Y%NwY%
goto :VERIF
)
if %TOUCH%==D set /a NwX=ExX-1
if %TOUCH%==D (
set NEW_POS_PAC=X%NwX%_Y%ExY%
goto :VERIF
)
:VERIF
if %NEW_POS_PAC%==X9_Y0 set NEW_POS_PAC=X9_Y39
if %NEW_POS_PAC%==X9_Y40 set NEW_POS_PAC=X9_Y1
for /f "tokens=*" %%A in ("%NEW_POS_PAC%") do (
set CORR=%%A
)
if !%CORR%! EQU %CVR% goto :END_MOVE
if !%CORR%! EQU %GUM% (
set /a NB_GUM=NB_GUM+1
set /a SCORE=SCORE+1
)
if !%CORR%! EQU %LIFE% set /a NB_LIFE=NB_LIFE+1
if !%CORR%! EQU %GHOST% goto :LOSE
set "%EX_POS_PAC%= "
for /f "tokens=*" %%A in ("%EX_POS_PAC%") do (
set "TRANS_%%A= "
)
set EX_POS_PAC=%NEW_POS_PAC%
set %NEW_POS_PAC%=%PAC%
if %NB_GUM% EQU %MAX_GUM% goto :END_LEVEL
:END_MOVE
goto :WALL
:: ############################################################################
:: #
:: #
:: ######################## ---LOSE--- ########################
:LOSE
set /a NB_LIFE=NB_LIFE-1
if %NB_LIFE%==0 goto :GAME_OVER
:: \\ Nouvel Emplacement du PAC-MAN ------
set "%EX_POS_PAC%= "
set NEW_POS_PAC=X9_Y20
set EX_POS_PAC=%NEW_POS_PAC%
set %NEW_POS_PAC%=%PAC%
cls
echo. &echo. &echo. &echo. &echo. &echo.
echo __ __ ___ _ _ _ ___ ____ _____
echo \ \ / / / _ \ ^| ^| ^| ^| ^| ^| / _ \ / ___^| ^|_ _^|
echo \ V / ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| \___ \ ^| ^|
echo ^| ^| ^| ^|_^| ^| ^| ^|_^| ^| ^| ^|___ ^| ^|_^| ^| ___) ^| ^| ^|
echo ^|_^| \___/ \___/ ^|_____^| \___/ ^|____/ ^|_^|
echo.
echo ___ _ _ _____ _ ___ _____ _____
echo / _ \ ^| \ ^| ^| ^| ____^| ^| ^| ^|_ _^| ^| ___^| ^| ____^|
echo ^| ^| ^| ^| ^| \^| ^| ^| _^| ^| ^| ^| ^| ^| ^|_ ^| _^|
echo ^| ^|_^| ^| ^| ^|\ ^| ^| ^|___ ^| ^|___ ^| ^| ^| _^| ^| ^|___
echo \___/ ^|_^| \_^| ^|_____^| ^|_____^| ^|___^| ^|_^| ^|_____^|
echo.
echo -- Still %NB_LIFE% Lifes --
echo. &echo. &echo.
echo Press any key to continue the game ...
pause>nul
pause>nul
goto :WALL
:: ##############################################################
:: #
:: #
:: ######################## ---GAME-OVER--- ########################
:GAME_OVER
cls
echo. &echo. &echo. &echo. &echo. &echo. &echo. &echo.
echo ____ _ __ __ _____ ___ __ __ _____ ____
echo / ___^| / \ ^| \/ ^| ^| ____^| / _ \ \ \ / / ^| ____^| ^| _ \
echo ^| ^| _ / _ \ ^| ^|\/^| ^| ^| _^| ^| ^| ^| ^| \ \ / / ^| _^| ^| ^|_) ^|
echo ^| ^|_^| ^| / ___ \ ^| ^| ^| ^| ^| ^|___ ^| ^|_^| ^| \ V / ^| ^|___ ^| _ ^<
echo \____^| /_/ \_\ ^|_^| ^|_^| ^|_____^| \___/ \_/ ^|_____^| ^|_^| \_\
echo.
echo -- You are a LOSER --
echo. &echo. &echo. &echo. &echo. &echo. &echo.
echo Press any key to restart the game ...
pause>nul
pause>nul
goto :RESET
:: ##############################################################
:: #
:: #
:: ######################## ---END-LEVEL--- ########################
:END_LEVEL
cls
for /f "tokens=* delims=:LEVEL_" %%A in ("%LVL%") do (
set /a NEXT=%%A+1
)
set LVL=:LEVEL_%NEXT%
echo. &echo. &echo. &echo. &echo.
echo _ _____ __ __ _____ _
echo ^| ^| ^| ____^| \ \ / / ^| ____^| ^| ^|
echo ^| ^| ^| _^| \ \ / / ^| _^| ^| ^|
echo ^| ^|___ ^| ^|___ \ V / ^| ^|___ ^| ^|___
echo ^|_____^| ^|_____^| \_/ ^|_____^| ^|_____^|
echo ____ ___ __ __ ____ _ _____ _____ _____ ____
echo / ___^| / _ \ ^| \/ ^| ^| _ \ ^| ^| ^| ____^| ^|_ _^| ^| ____^| ^| _ \
echo ^| ^| ^| ^| ^| ^| ^| ^|\/^| ^| ^| ^|_) ^| ^| ^| ^| _^| ^| ^| ^| _^| ^| ^| ^| ^|
echo ^| ^|___ ^| ^|_^| ^| ^| ^| ^| ^| ^| __/ ^| ^|___ ^| ^|___ ^| ^| ^| ^|___ ^| ^|_^| ^|
echo \____^| \___/ ^|_^| ^|_^| ^|_^| ^|_____^| ^|_____^| ^|_^| ^|_____^| ^|____/
echo.
echo -- CONGRATULATION --
echo. &echo. &echo. &echo. &echo.
echo Press any key to continue the game ...
pause>nul
pause>nul
if %NEXT% GTR %LVL_MAX% goto :LAST_LEVEL
goto :LEVEL_%NEXT%
:: ###################################################################
:: #
:: #
:: ######################## ---LAST-LEVEL--- ########################
:LAST_LEVEL
cls
echo. &echo. &echo. &echo. &echo. &echo.
echo -- LAST LEVEL COMPLETED --
echo.
echo __ __ ___ _ _ __ __ ___ _ _
echo \ \ / / / _ \ ^| ^| ^| ^| \ \ / / ^|_ _^| ^| \ ^| ^|
echo \ V / ^| ^| ^| ^| ^| ^| ^| ^| \ \ /\ / / ^| ^| ^| \^| ^|
echo ^| ^| ^| ^|_^| ^| ^| ^|_^| ^| \ V V / ^| ^| ^| ^|\ ^|
echo ^|_^| \___/ \___/ \_/\_/ ^|___^| ^|_^| \_^|
echo.
echo [ SCORE: %SCORE% ]
echo. &echo. &echo. &echo. &echo. &echo. &echo. &echo.
echo Press any key to restart the game ...
pause>nul
pause>nul
goto :RESET
:: ###################################################################
:: #
:: #
:: ######################## --- Table ERRORLEVEL de KEY --- ########################
:USE_KEY
key
call :MOVE_GHOSTS
if %errorlevel%==72 set TOUCH=U
if %errorlevel%==75 set TOUCH=L
if %errorlevel%==77 set TOUCH=R
if %errorlevel%==80 set TOUCH=D
if %errorlevel%==32 set TOUCH=S
goto :EOF
:: ###################################################################
:: #
:: #
:: ######################## ---Déplacement de Fantômes--- ########################
:MOVE_GHOSTS
:: \\ Déplacement Ghost_1 ------------------
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G1%") do (
set Ex_X_G1=%%X
set Ex_Y_G1=%%Y
)
set /a DIRECT_X_G1 = Ex_X_G1 %OP_G1% 1
set /a DIRECT_Y_G1 = Ex_Y_G1 %OP_G1% 1
:RE-GHOSTS_G1
set NEW_POS_G1=X%DIRECT_X_G1%_Y%Ex_Y_G1%
for /f "tokens=*" %%A in ("%NEW_POS_G1%") do (
set CORR_G1=%%A
)
if !%CORR_G1%!==%CVR% goto :JUMP_G1A
if !%CORR_G1%!==%PAC% goto :LOSE
if %NEW_POS_G1%==X9_Y0 set NEW_POS_G1=X9_Y39
if %NEW_POS_G1%==X9_Y40 set NEW_POS_G1=X9_Y1
set "%EX_POS_G1%=!TRANS_%EX_POS_G1%!"
set "EX_POS_G1=%NEW_POS_G1%"
set "%NEW_POS_G1%=%GHOST%"
goto :END_MOVE_GHOSTS_G1
:JUMP_G1A
set NEW_POS_G1=X%Ex_X_G1%_Y%DIRECT_Y_G1%
for /f "tokens=*" %%A in ("%NEW_POS_G1%") do (
set CORR_G1=%%A
)
if !%CORR_G1%!==%CVR% goto :JUMP_G1B
if !%CORR_G1%!==%PAC% goto :LOSE
if %NEW_POS_G1%==X9_Y0 set NEW_POS_G1=X9_Y39
if %NEW_POS_G1%==X9_Y40 set NEW_POS_G1=X9_Y1
set "%EX_POS_G1%=!TRANS_%EX_POS_G1%!"
set "EX_POS_G1=%NEW_POS_G1%"
set "%NEW_POS_G1%=%GHOST%"
goto :END_MOVE_GHOSTS_G1
:JUMP_G1B
if %OP_G1%==+ (
set "OP_G1=-"
) else (
set "OP_G1=+"
)
set /a DIRECT_X_G1 = Ex_X_G1 %OP_G1% 1
set /a DIRECT_Y_G1 = Ex_Y_G1 %OP_G1% 1
goto :RE-GHOSTS_G1
:END_MOVE_GHOSTS_G1
:: ########## end ghost 1 ---
:: \\ Déplacement Ghost_2
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G2%") do (
set Ex_X_G2=%%X
set Ex_Y_G2=%%Y
)
set /a DIRECT_X_G2 = Ex_X_G2 %OP_G2% 1
set /a DIRECT_Y_G2 = Ex_Y_G2 %OP_G2% 1
:RE-GHOSTS_G2
set NEW_POS_G2=X%DIRECT_X_G2%_Y%Ex_Y_G2%
for /f "tokens=*" %%A in ("%NEW_POS_G2%") do (
set CORR_G2=%%A
)
if !%CORR_G2%!==%CVR% goto :JUMP_G2A
if !%CORR_G2%!==%PAC% goto :LOSE
if %NEW_POS_G2%==X9_Y0 set NEW_POS_G2=X9_Y39
if %NEW_POS_G2%==X9_Y40 set NEW_POS_G2=X9_Y1
set "%EX_POS_G2%=!TRANS_%EX_POS_G2%!"
set "EX_POS_G2=%NEW_POS_G2%"
set "%NEW_POS_G2%=%GHOST%"
goto :END_MOVE_GHOSTS_G2
:JUMP_G2A
set NEW_POS_G2=X%Ex_X_G2%_Y%DIRECT_Y_G2%
for /f "tokens=*" %%A in ("%NEW_POS_G2%") do (
set CORR_G2=%%A
)
if !%CORR_G2%!==%CVR% goto :JUMP_G2B
if !%CORR_G2%!==%PAC% goto :LOSE
if %NEW_POS_G2%==X9_Y0 set NEW_POS_G2=X9_Y39
if %NEW_POS_G2%==X9_Y40 set NEW_POS_G2=X9_Y1
set "%EX_POS_G2%=!TRANS_%EX_POS_G2%!"
set "EX_POS_G2=%NEW_POS_G2%"
set "%NEW_POS_G2%=%GHOST%"
goto :END_MOVE_GHOSTS_G2
:JUMP_G2B
if %OP_G2%==+ (
set "OP_G2=-"
) else (
set "OP_G2=+"
)
set /a DIRECT_X_G2 = Ex_X_G2 %OP_G2% 1
set /a DIRECT_Y_G2 = Ex_Y_G2 %OP_G2% 1
goto :RE-GHOSTS_G2
:END_MOVE_GHOSTS_G2
:: ########## end ghost 2 ---
:: \\ Déplacement Ghost_3
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G3%") do (
set Ex_X_G3=%%X
set Ex_Y_G3=%%Y
)
set /a DIRECT_X_G3 = Ex_X_G3 %OP_G3% 1
set /a DIRECT_Y_G3 = Ex_Y_G3 %OP_G3% 1
:RE-GHOSTS_G3
set NEW_POS_G3=X%Ex_X_G3%_Y%DIRECT_Y_G3%
for /f "tokens=*" %%A in ("%NEW_POS_G3%") do (
set CORR_G3=%%A
)
if !%CORR_G3%!==%CVR% goto :JUMP_G3A
if !%CORR_G3%!==%PAC% goto :LOSE
if %NEW_POS_G3%==X9_Y0 set NEW_POS_G3=X9_Y39
if %NEW_POS_G3%==X9_Y40 set NEW_POS_G3=X9_Y1
set "%EX_POS_G3%=!TRANS_%EX_POS_G3%!"
set "EX_POS_G3=%NEW_POS_G3%"
set "%NEW_POS_G3%=%GHOST%"
goto :END_MOVE_GHOSTS_G3
:JUMP_G3A
set NEW_POS_G3=X%DIRECT_X_G3%_Y%Ex_Y_G3%
for /f "tokens=*" %%A in ("%NEW_POS_G3%") do (
set CORR_G3=%%A
)
if !%CORR_G3%!==%CVR% goto :JUMP_G3B
if !%CORR_G3%!==%PAC% goto :LOSE
if %NEW_POS_G3%==X9_Y0 set NEW_POS_G3=X9_Y39
if %NEW_POS_G3%==X9_Y40 set NEW_POS_G3=X9_Y1
set "%EX_POS_G3%=!TRANS_%EX_POS_G3%!"
set "EX_POS_G3=%NEW_POS_G3%"
set "%NEW_POS_G3%=%GHOST%"
goto :END_MOVE_GHOSTS_G3
:JUMP_G3B
if %OP_G3%==+ (
set "OP_G3=-"
) else (
set "OP_G3=+"
)
set /a DIRECT_X_G3 = Ex_X_G3 %OP_G3% 1
set /a DIRECT_Y_G3 = Ex_Y_G3 %OP_G3% 1
goto :RE-GHOSTS_G3
:END_MOVE_GHOSTS_G3
:: ########## end ghost 3 ---
:: \\ Déplacement Ghost_4
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G4%") do (
set Ex_X_G4=%%X
set Ex_Y_G4=%%Y
)
set /a DIRECT_X_G4 = Ex_X_G4 %OP_G4% 1
set /a DIRECT_Y_G4 = Ex_Y_G4 %OP_G4% 1
:RE-GHOSTS_G4
set NEW_POS_G4=X%DIRECT_X_G4%_Y%Ex_Y_G4%
for /f "tokens=*" %%A in ("%NEW_POS_G4%") do (
set CORR_G4=%%A
)
if !%CORR_G4%!==%CVR% goto :JUMP_G4A
if !%CORR_G4%!==%PAC% goto :LOSE
if %NEW_POS_G4%==X9_Y0 set NEW_POS_G4=X9_Y39
if %NEW_POS_G4%==X9_Y40 set NEW_POS_G4=X9_Y1
set "%EX_POS_G4%=!TRANS_%EX_POS_G4%!"
set "EX_POS_G4=%NEW_POS_G4%"
set "%NEW_POS_G4%=%GHOST%"
goto :END_MOVE_GHOSTS_G4
:JUMP_G4A
set NEW_POS_G4=X%Ex_X_G4%_Y%DIRECT_Y_G4%
for /f "tokens=*" %%A in ("%NEW_POS_G4%") do (
set CORR_G4=%%A
)
if !%CORR_G4%!==%CVR% goto :JUMP_G4B
if !%CORR_G4%!==%PAC% goto :LOSE
if %NEW_POS_G4%==X9_Y0 set NEW_POS_G4=X9_Y39
if %NEW_POS_G4%==X9_Y40 set NEW_POS_G4=X9_Y1
set "%EX_POS_G4%=!TRANS_%EX_POS_G4%!"
set "EX_POS_G4=%NEW_POS_G4%"
set "%NEW_POS_G4%=%GHOST%"
goto :END_MOVE_GHOSTS_G4
:JUMP_G4B
if %OP_G4%==+ (
set "OP_G4=-"
) else (
set "OP_G4=+"
)
set /a DIRECT_X_G4 = Ex_X_G4 %OP_G4% 1
set /a DIRECT_Y_G4 = Ex_Y_G4 %OP_G4% 1
goto :RE-GHOSTS_G4
:END_MOVE_GHOSTS_G4
:: ########## end ghost 4 ---
goto :EOF
:: ###################################################################
:: ------------------------------ CODE --------------------
Voici un jeu type pac-man que j'ai écris il y a un moment déja, il nécessite la commande externe "key.exe" créée par Bilou de batch.xo.it :
http://www.box.net/shared/tfnq8ugqrutppoz15xqg
Bon jeu et bonne lecture du code ^^
N'hésitez pas à poster vos commentaires !
:: ------------------------------ CODE --------------------
@echo off
title )}--PAC_MAN--{( ^| Batch ^|
color 0E
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
if not exist key.exe (
echo Veuillez telecherger key.exe ...
start http://www.box.net/shared/tfnq8ugqrutppoz15xqg
pause
exit
)
:: ###############################################
:: #
:: #
:: ################ RESET GAME ################
:RESET
:: \\ %CVR% correspond a chaque "brique" du mur
set CVR=Û
:: \\ %PAC% est le personnage Pac-Man
set PAC=
:: \\ %GUM% est le personnage Pac-Gomme
set GUM=.
:: \\ %GHOST% est le personnage Fantome
set GHOST=
:: \\ %LIFE% est le personnage VIE
set LIFE=
:: \\ %NB_LIFE% est le nombre de Vies
set NB_LIFE=3
:: \\ %LVL_MAX% correspond aux niveaux construits
set LVL_MAX=4
:: ###############################################
:: #
:: #
:: ##################################----MENU----################################
:MENU
cls
echo. &echo.
echo ____ _ ____ __ __ _ _ _
echo ^| _ \ / \ / ___^| ^| \/ ^| / \ ^| \ ^| ^|
echo ^| ^|_) ^| / _ \ ^| ^| ^| ^|\/^| ^| / _ \ ^| \^| ^|
echo ^| __/ / ___ \ ^| ^|___ BATCH ^| ^| ^| ^| / ___ \ ^| ^|\ ^|
echo ^|_^| /_/ \_\ \____^| ^|_^| ^|_^| /_/ \_\ ^|_^| \_^|
echo. &echo. &echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º -- RŠgle du Jeu -- º
echo º º
echo º Utilisez les flŠches º
echo º pour diriger Pac-Man º
echo º º
echo º Espace pour sortir º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo. &echo.
set SCORE=0
set LVL=1
set /p LVL= Choix du Niveau [ 1 - %LVL_MAX% ] \\:
for /f "delims=1234" %%A in ("%LVL%") do (
goto :MENU
)
set LVL=:LEVEL_%LVL%
goto %LVL%
:: ############################################################################
:: #
:: #
:: ################ Initialisation du LEVEL_1 ################
:LEVEL_1
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Emplacement des Vies ------
set X16_Y11=%LIFE%
set TRANS_X16_Y11=%LIFE%
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=245
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for /l %%A in (6,1,8) do (
set X%%A_Y8=%CVR%
set X%%A_Y9=%CVR%
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
set X%%A_Y31=%CVR%
set X%%A_Y32=%CVR%
)
for /l %%A in (10,1,12) do (
set X%%A_Y8=%CVR%
set X%%A_Y9=%CVR%
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
set X%%A_Y31=%CVR%
set X%%A_Y32=%CVR%
)
for /l %%A in (8,1,10) do (
set X%%A_Y11=%CVR%
set X%%A_Y12=%CVR%
set X%%A_Y28=%CVR%
set X%%A_Y29=%CVR%
)
:: \\ Murs Horizontaux -------
for /l %%A in (3,1,6) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (2,1,6) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (34,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (34,1,38) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (8,1,15) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (25,1,32) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (17,1,23) do (
set X2_Y%%A=%CVR%
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
set X16_Y%%A=%CVR%
)
for /l %%A in (10,1,13) do (
set X6_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (27,1,30) do (
set X6_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
goto :WALL
:: ############################################################
:: #
:: #
:: ################ Initialisation du LEVEL_2 ################
:LEVEL_2
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Emplacement des Vies ------
set X2_Y28=%LIFE%
set TRANS_X2_Y28=%LIFE%
set X16_Y12=%LIFE%
set TRANS_X16_Y12=%LIFE%
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=186
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for /l %%A in (7,1,11) do (
set X%%A_Y3=%CVR%
set X%%A_Y4=%CVR%
set X%%A_Y5=%CVR%
set X%%A_Y35=%CVR%
set X%%A_Y36=%CVR%
set X%%A_Y37=%CVR%
)
for /l %%A in (3,1,6) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y12=%CVR%
set X%%A_Y30=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y28=%CVR%
)
for /l %%A in (12,1,15) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y12=%CVR%
set X%%A_Y30=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y28=%CVR%
)
for /l %%A in (5,1,8) do (
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
)
for /l %%A in (10,1,13) do (
set X%%A_Y17=%CVR%
set X%%A_Y18=%CVR%
set X%%A_Y19=%CVR%
set X%%A_Y21=%CVR%
set X%%A_Y22=%CVR%
set X%%A_Y23=%CVR%
)
for /l %%A in (3,1,5) do (
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
)
for /l %%A in (13,1,15) do (
set X%%A_Y14=%CVR%
set X%%A_Y15=%CVR%
set X%%A_Y25=%CVR%
set X%%A_Y26=%CVR%
)
:: \\ Murs Horizontaux -------
for /l %%A in (3,1,8) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X13_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (32,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X13_Y%%A=%CVR%
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (7,1,15) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (10,1,15) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (7,1,8) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (25,1,33) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (25,1,30) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (32,1,33) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (7,1,8) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (14,1,15) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (25,1,26) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (32,1,33) do (
set X7_Y%%A=%CVR%
set X11_Y%%A=%CVR%
)
for /l %%A in (14,1,26) do (
set X2_Y%%A=%CVR%
set X3_Y%%A=%CVR%
set X15_Y%%A=%CVR%
set X16_Y%%A=%CVR%
)
for /l %%A in (10,1,15) do (
set X9_Y%%A=%CVR%
)
for /l %%A in (25,1,30) do (
set X9_Y%%A=%CVR%
)
for /l %%A in (15,1,24) do (
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X13_Y%%A=%CVR%
set X14_Y%%A=%CVR%
)
for /l %%A in (14,1,20) do (
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (19,1,26) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
)
goto :WALL
:: #####################################################
:: #
:: #
:: ################ Initialisation du LEVEL_3 ################
:LEVEL_3
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=188
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for /l %%A in (3,1,8) do (
for /l %%B in (3,1,14) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (10,1,15) do (
for /l %%B in (26,1,37) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (2,1,3) do (
for /l %%B in (16,1,19) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (5,1,8) do (
for /l %%B in (16,1,19) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (15,1,16) do (
for /l %%B in (21,1,24) do (
set X%%A_Y%%B=%CVR%
))
for /l %%A in (10,1,13) do (
for /l %%B in (21,1,24) do (
set X%%A_Y%%B=%CVR%
))
:: \\ Murs Horizontaux -------
for /l %%A in (2,1,19) do (
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (21,1,38) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
)
for /l %%A in (3,1,19) do (
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (23,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
:: \\ Ajouts Correctifs -------
set X3_Y20=%CVR%
set X3_Y21=%CVR%
set X4_Y21=%CVR%
set X15_Y20=%CVR%
:: \\ Emplacement des Vies ------
set X2_Y19=%LIFE%
set TRANS_X2_Y19=%LIFE%
set X16_Y21=%LIFE%
set TRANS_X16_Y21=%LIFE%
goto :WALL
:: #####################################################
:: #
:: #
:: ################ Initialisation du LEVEL_4 ################
:LEVEL_4
:: \\ Reset déplacement du Pac-Man
set TOUCH=UNDEFINED
:: \\ Initialisation des PAC-GOMMES Tous Niveaux
for /l %%A in (1,1,17) do (
for /l %%B in (1,1,39) do (
set "X%%A_Y%%B=%GUM%"
set "TRANS_X%%A_Y%%B=%GUM%"
)
)
:: \\ Emplacement du PAC-MAN ------
set EX_POS_PAC=X9_Y20
set %EX_POS_PAC%=%PAC%
:: \\ Emplacement des Fantomes
set EX_POS_G1=X2_Y2
set %EX_POS_G1%=%GHOST%
set "OP_G1=+"
set EX_POS_G2=X2_Y38
set %EX_POS_G2%=%GHOST%
set "OP_G2=+"
set EX_POS_G3=X16_Y2
set %EX_POS_G3%=%GHOST%
set "OP_G3=+"
set EX_POS_G4=X16_Y38
set %EX_POS_G4%=%GHOST%
set "OP_G4=+"
:: \\ Emplacement des Vies ------
set X9_Y35=%LIFE%
set TRANS_X9_Y35=%LIFE%
:: \\ Nombres de PAC-GOMMES
set NB_GUM=0
set MAX_GUM=167
:: \\ Murs du Contour -------
for /l %%A in (1,1,8) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (10,1,17) do (
set X%%A_Y1=%CVR%
set X%%A_Y39=%CVR%
)
for /l %%A in (1,1,39) do (
set X1_Y%%A=%CVR%
set X17_Y%%A=%CVR%
)
:: \\ Murs Verticaux -------
for %%A in (16) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y30=%CVR%
)
for %%A in (2) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
set X%%A_Y29=%CVR%
set X%%A_Y30=%CVR%
)
for /l %%A in (3,1,7) do (
set X%%A_Y19=%CVR%
set X%%A_Y20=%CVR%
set X%%A_Y21=%CVR%
)
for /l %%A in (11,1,15) do (
set X%%A_Y19=%CVR%
set X%%A_Y20=%CVR%
set X%%A_Y21=%CVR%
)
for /l %%A in (13,1,14) do (
set X%%A_Y10=%CVR%
set X%%A_Y11=%CVR%
)
for /l %%A in (4,1,5) do (
set X%%A_Y29=%CVR%
set X%%A_Y30=%CVR%
)
:: \\ Murs Horizontaux -------
for /l %%A in (2,1,4) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (36,1,38) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (6,1,21) do (
set X8_Y%%A=%CVR%
)
for /l %%A in (19,1,34) do (
set X10_Y%%A=%CVR%
)
for /l %%A in (6,1,17) do (
set X9_Y%%A=%CVR%
set X10_Y%%A=%CVR%
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
)
for /l %%A in (23,1,34) do (
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
set X8_Y%%A=%CVR%
set X9_Y%%A=%CVR%
)
for /l %%A in (3,1,8) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
for /l %%A in (6,1,18) do (
set X4_Y%%A=%CVR%
set X5_Y%%A=%CVR%
set X6_Y%%A=%CVR%
set X7_Y%%A=%CVR%
)
for /l %%A in (13,1,18) do (
set X3_Y%%A=%CVR%
)
for /l %%A in (22,1,27) do (
set X15_Y%%A=%CVR%
)
for /l %%A in (32,1,37) do (
set X15_Y%%A=%CVR%
)
for /l %%A in (22,1,37) do (
set X14_Y%%A=%CVR%
)
for /l %%A in (22,1,34) do (
set X11_Y%%A=%CVR%
set X12_Y%%A=%CVR%
set X13_Y%%A=%CVR%
)
for /l %%A in (23,1,27) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
for /l %%A in (32,1,37) do (
set X3_Y%%A=%CVR%
set X4_Y%%A=%CVR%
)
for /l %%A in (3,1,8) do (
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
for /l %%A in (13,1,17) do (
set X14_Y%%A=%CVR%
set X15_Y%%A=%CVR%
)
goto :WALL
:: #####################################################
:: #
:: #
:: ####################################### WALL ####################################
:: \\ Grille de jeu _ Tous niveaux
:WALL
set LINE_21=
set LINE_20= %LVL%
set LINE_19=
set LINE_18= %X17_Y1%%X17_Y2%%X17_Y3%%X17_Y4%%X17_Y5%%X17_Y6%%X17_Y7%%X17_Y8%%X17_Y9%%X17_Y10%%X17_Y11%%X17_Y12%%X17_Y13%%X17_Y14%%X17_Y15%%X17_Y16%%X17_Y17%%X17_Y18%%X17_Y19%%X17_Y20%%X17_Y21%%X17_Y22%%X17_Y23%%X17_Y24%%X17_Y25%%X17_Y26%%X17_Y27%%X17_Y28%%X17_Y29%%X17_Y30%%X17_Y31%%X17_Y32%%X17_Y33%%X17_Y34%%X17_Y35%%X17_Y36%%X17_Y37%%X17_Y38%%X17_Y39%
set LINE_17= %X16_Y1%%X16_Y2%%X16_Y3%%X16_Y4%%X16_Y5%%X16_Y6%%X16_Y7%%X16_Y8%%X16_Y9%%X16_Y10%%X16_Y11%%X16_Y12%%X16_Y13%%X16_Y14%%X16_Y15%%X16_Y16%%X16_Y17%%X16_Y18%%X16_Y19%%X16_Y20%%X16_Y21%%X16_Y22%%X16_Y23%%X16_Y24%%X16_Y25%%X16_Y26%%X16_Y27%%X16_Y28%%X16_Y29%%X16_Y30%%X16_Y31%%X16_Y32%%X16_Y33%%X16_Y34%%X16_Y35%%X16_Y36%%X16_Y37%%X16_Y38%%X16_Y39%
set LINE_16= %X15_Y1%%X15_Y2%%X15_Y3%%X15_Y4%%X15_Y5%%X15_Y6%%X15_Y7%%X15_Y8%%X15_Y9%%X15_Y10%%X15_Y11%%X15_Y12%%X15_Y13%%X15_Y14%%X15_Y15%%X15_Y16%%X15_Y17%%X15_Y18%%X15_Y19%%X15_Y20%%X15_Y21%%X15_Y22%%X15_Y23%%X15_Y24%%X15_Y25%%X15_Y26%%X15_Y27%%X15_Y28%%X15_Y29%%X15_Y30%%X15_Y31%%X15_Y32%%X15_Y33%%X15_Y34%%X15_Y35%%X15_Y36%%X15_Y37%%X15_Y38%%X15_Y39%
set LINE_15= %X14_Y1%%X14_Y2%%X14_Y3%%X14_Y4%%X14_Y5%%X14_Y6%%X14_Y7%%X14_Y8%%X14_Y9%%X14_Y10%%X14_Y11%%X14_Y12%%X14_Y13%%X14_Y14%%X14_Y15%%X14_Y16%%X14_Y17%%X14_Y18%%X14_Y19%%X14_Y20%%X14_Y21%%X14_Y22%%X14_Y23%%X14_Y24%%X14_Y25%%X14_Y26%%X14_Y27%%X14_Y28%%X14_Y29%%X14_Y30%%X14_Y31%%X14_Y32%%X14_Y33%%X14_Y34%%X14_Y35%%X14_Y36%%X14_Y37%%X14_Y38%%X14_Y39%
set LINE_14= %X13_Y1%%X13_Y2%%X13_Y3%%X13_Y4%%X13_Y5%%X13_Y6%%X13_Y7%%X13_Y8%%X13_Y9%%X13_Y10%%X13_Y11%%X13_Y12%%X13_Y13%%X13_Y14%%X13_Y15%%X13_Y16%%X13_Y17%%X13_Y18%%X13_Y19%%X13_Y20%%X13_Y21%%X13_Y22%%X13_Y23%%X13_Y24%%X13_Y25%%X13_Y26%%X13_Y27%%X13_Y28%%X13_Y29%%X13_Y30%%X13_Y31%%X13_Y32%%X13_Y33%%X13_Y34%%X13_Y35%%X13_Y36%%X13_Y37%%X13_Y38%%X13_Y39%
set LINE_13= %X12_Y1%%X12_Y2%%X12_Y3%%X12_Y4%%X12_Y5%%X12_Y6%%X12_Y7%%X12_Y8%%X12_Y9%%X12_Y10%%X12_Y11%%X12_Y12%%X12_Y13%%X12_Y14%%X12_Y15%%X12_Y16%%X12_Y17%%X12_Y18%%X12_Y19%%X12_Y20%%X12_Y21%%X12_Y22%%X12_Y23%%X12_Y24%%X12_Y25%%X12_Y26%%X12_Y27%%X12_Y28%%X12_Y29%%X12_Y30%%X12_Y31%%X12_Y32%%X12_Y33%%X12_Y34%%X12_Y35%%X12_Y36%%X12_Y37%%X12_Y38%%X12_Y39%
set LINE_12= %X11_Y1%%X11_Y2%%X11_Y3%%X11_Y4%%X11_Y5%%X11_Y6%%X11_Y7%%X11_Y8%%X11_Y9%%X11_Y10%%X11_Y11%%X11_Y12%%X11_Y13%%X11_Y14%%X11_Y15%%X11_Y16%%X11_Y17%%X11_Y18%%X11_Y19%%X11_Y20%%X11_Y21%%X11_Y22%%X11_Y23%%X11_Y24%%X11_Y25%%X11_Y26%%X11_Y27%%X11_Y28%%X11_Y29%%X11_Y30%%X11_Y31%%X11_Y32%%X11_Y33%%X11_Y34%%X11_Y35%%X11_Y36%%X11_Y37%%X11_Y38%%X11_Y39%
set LINE_11= %X10_Y1%%X10_Y2%%X10_Y3%%X10_Y4%%X10_Y5%%X10_Y6%%X10_Y7%%X10_Y8%%X10_Y9%%X10_Y10%%X10_Y11%%X10_Y12%%X10_Y13%%X10_Y14%%X10_Y15%%X10_Y16%%X10_Y17%%X10_Y18%%X10_Y19%%X10_Y20%%X10_Y21%%X10_Y22%%X10_Y23%%X10_Y24%%X10_Y25%%X10_Y26%%X10_Y27%%X10_Y28%%X10_Y29%%X10_Y30%%X10_Y31%%X10_Y32%%X10_Y33%%X10_Y34%%X10_Y35%%X10_Y36%%X10_Y37%%X10_Y38%%X10_Y39%
set LINE_10= %X9_Y1%%X9_Y2%%X9_Y3%%X9_Y4%%X9_Y5%%X9_Y6%%X9_Y7%%X9_Y8%%X9_Y9%%X9_Y10%%X9_Y11%%X9_Y12%%X9_Y13%%X9_Y14%%X9_Y15%%X9_Y16%%X9_Y17%%X9_Y18%%X9_Y19%%X9_Y20%%X9_Y21%%X9_Y22%%X9_Y23%%X9_Y24%%X9_Y25%%X9_Y26%%X9_Y27%%X9_Y28%%X9_Y29%%X9_Y30%%X9_Y31%%X9_Y32%%X9_Y33%%X9_Y34%%X9_Y35%%X9_Y36%%X9_Y37%%X9_Y38%%X9_Y39%
set LINE_9= %X8_Y1%%X8_Y2%%X8_Y3%%X8_Y4%%X8_Y5%%X8_Y6%%X8_Y7%%X8_Y8%%X8_Y9%%X8_Y10%%X8_Y11%%X8_Y12%%X8_Y13%%X8_Y14%%X8_Y15%%X8_Y16%%X8_Y17%%X8_Y18%%X8_Y19%%X8_Y20%%X8_Y21%%X8_Y22%%X8_Y23%%X8_Y24%%X8_Y25%%X8_Y26%%X8_Y27%%X8_Y28%%X8_Y29%%X8_Y30%%X8_Y31%%X8_Y32%%X8_Y33%%X8_Y34%%X8_Y35%%X8_Y36%%X8_Y37%%X8_Y38%%X8_Y39%
set LINE_8= %X7_Y1%%X7_Y2%%X7_Y3%%X7_Y4%%X7_Y5%%X7_Y6%%X7_Y7%%X7_Y8%%X7_Y9%%X7_Y10%%X7_Y11%%X7_Y12%%X7_Y13%%X7_Y14%%X7_Y15%%X7_Y16%%X7_Y17%%X7_Y18%%X7_Y19%%X7_Y20%%X7_Y21%%X7_Y22%%X7_Y23%%X7_Y24%%X7_Y25%%X7_Y26%%X7_Y27%%X7_Y28%%X7_Y29%%X7_Y30%%X7_Y31%%X7_Y32%%X7_Y33%%X7_Y34%%X7_Y35%%X7_Y36%%X7_Y37%%X7_Y38%%X7_Y39%
set LINE_7= %X6_Y1%%X6_Y2%%X6_Y3%%X6_Y4%%X6_Y5%%X6_Y6%%X6_Y7%%X6_Y8%%X6_Y9%%X6_Y10%%X6_Y11%%X6_Y12%%X6_Y13%%X6_Y14%%X6_Y15%%X6_Y16%%X6_Y17%%X6_Y18%%X6_Y19%%X6_Y20%%X6_Y21%%X6_Y22%%X6_Y23%%X6_Y24%%X6_Y25%%X6_Y26%%X6_Y27%%X6_Y28%%X6_Y29%%X6_Y30%%X6_Y31%%X6_Y32%%X6_Y33%%X6_Y34%%X6_Y35%%X6_Y36%%X6_Y37%%X6_Y38%%X6_Y39%
set LINE_6= %X5_Y1%%X5_Y2%%X5_Y3%%X5_Y4%%X5_Y5%%X5_Y6%%X5_Y7%%X5_Y8%%X5_Y9%%X5_Y10%%X5_Y11%%X5_Y12%%X5_Y13%%X5_Y14%%X5_Y15%%X5_Y16%%X5_Y17%%X5_Y18%%X5_Y19%%X5_Y20%%X5_Y21%%X5_Y22%%X5_Y23%%X5_Y24%%X5_Y25%%X5_Y26%%X5_Y27%%X5_Y28%%X5_Y29%%X5_Y30%%X5_Y31%%X5_Y32%%X5_Y33%%X5_Y34%%X5_Y35%%X5_Y36%%X5_Y37%%X5_Y38%%X5_Y39%
set LINE_5= %X4_Y1%%X4_Y2%%X4_Y3%%X4_Y4%%X4_Y5%%X4_Y6%%X4_Y7%%X4_Y8%%X4_Y9%%X4_Y10%%X4_Y11%%X4_Y12%%X4_Y13%%X4_Y14%%X4_Y15%%X4_Y16%%X4_Y17%%X4_Y18%%X4_Y19%%X4_Y20%%X4_Y21%%X4_Y22%%X4_Y23%%X4_Y24%%X4_Y25%%X4_Y26%%X4_Y27%%X4_Y28%%X4_Y29%%X4_Y30%%X4_Y31%%X4_Y32%%X4_Y33%%X4_Y34%%X4_Y35%%X4_Y36%%X4_Y37%%X4_Y38%%X4_Y39%
set LINE_4= %X3_Y1%%X3_Y2%%X3_Y3%%X3_Y4%%X3_Y5%%X3_Y6%%X3_Y7%%X3_Y8%%X3_Y9%%X3_Y10%%X3_Y11%%X3_Y12%%X3_Y13%%X3_Y14%%X3_Y15%%X3_Y16%%X3_Y17%%X3_Y18%%X3_Y19%%X3_Y20%%X3_Y21%%X3_Y22%%X3_Y23%%X3_Y24%%X3_Y25%%X3_Y26%%X3_Y27%%X3_Y28%%X3_Y29%%X3_Y30%%X3_Y31%%X3_Y32%%X3_Y33%%X3_Y34%%X3_Y35%%X3_Y36%%X3_Y37%%X3_Y38%%X3_Y39%
set LINE_3= %X2_Y1%%X2_Y2%%X2_Y3%%X2_Y4%%X2_Y5%%X2_Y6%%X2_Y7%%X2_Y8%%X2_Y9%%X2_Y10%%X2_Y11%%X2_Y12%%X2_Y13%%X2_Y14%%X2_Y15%%X2_Y16%%X2_Y17%%X2_Y18%%X2_Y19%%X2_Y20%%X2_Y21%%X2_Y22%%X2_Y23%%X2_Y24%%X2_Y25%%X2_Y26%%X2_Y27%%X2_Y28%%X2_Y29%%X2_Y30%%X2_Y31%%X2_Y32%%X2_Y33%%X2_Y34%%X2_Y35%%X2_Y36%%X2_Y37%%X2_Y38%%X2_Y39%
set LINE_2= %X1_Y1%%X1_Y2%%X1_Y3%%X1_Y4%%X1_Y5%%X1_Y6%%X1_Y7%%X1_Y8%%X1_Y9%%X1_Y10%%X1_Y11%%X1_Y12%%X1_Y13%%X1_Y14%%X1_Y15%%X1_Y16%%X1_Y17%%X1_Y18%%X1_Y19%%X1_Y20%%X1_Y21%%X1_Y22%%X1_Y23%%X1_Y24%%X1_Y25%%X1_Y26%%X1_Y27%%X1_Y28%%X1_Y29%%X1_Y30%%X1_Y31%%X1_Y32%%X1_Y33%%X1_Y34%%X1_Y35%%X1_Y36%%X1_Y37%%X1_Y38%%X1_Y39%
set LINE_1= [ LIFES: %NB_LIFE% ] - [ SCORE: %SCORE% ]
cls
for /l %%A in (21,-1,1) do echo.!Line_%%A!
:: ################
:: PAUSE
:: ################
call :USE_KEY
goto :MOVE_PAC
:: #################################################################################
:: #
:: #
:: ######################## --- Définition des Mouvements --- ########################
:MOVE_PAC
for /f "delims=ULRDS" %%A in ("%TOUCH%") do (
goto :END_MOVE
)
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_PAC%") do (
set ExX=%%X
set ExY=%%Y
)
if %TOUCH%==S goto :RESET
if %TOUCH%==U set /a NwX=ExX+1
if %TOUCH%==U (
set NEW_POS_PAC=X%NwX%_Y%ExY%
goto :VERIF
)
if %TOUCH%==L set /a NwY=ExY-1
if %TOUCH%==L (
set NEW_POS_PAC=X%ExX%_Y%NwY%
goto :VERIF
)
if %TOUCH%==R set /a NwY=ExY+1
if %TOUCH%==R (
set NEW_POS_PAC=X%ExX%_Y%NwY%
goto :VERIF
)
if %TOUCH%==D set /a NwX=ExX-1
if %TOUCH%==D (
set NEW_POS_PAC=X%NwX%_Y%ExY%
goto :VERIF
)
:VERIF
if %NEW_POS_PAC%==X9_Y0 set NEW_POS_PAC=X9_Y39
if %NEW_POS_PAC%==X9_Y40 set NEW_POS_PAC=X9_Y1
for /f "tokens=*" %%A in ("%NEW_POS_PAC%") do (
set CORR=%%A
)
if !%CORR%! EQU %CVR% goto :END_MOVE
if !%CORR%! EQU %GUM% (
set /a NB_GUM=NB_GUM+1
set /a SCORE=SCORE+1
)
if !%CORR%! EQU %LIFE% set /a NB_LIFE=NB_LIFE+1
if !%CORR%! EQU %GHOST% goto :LOSE
set "%EX_POS_PAC%= "
for /f "tokens=*" %%A in ("%EX_POS_PAC%") do (
set "TRANS_%%A= "
)
set EX_POS_PAC=%NEW_POS_PAC%
set %NEW_POS_PAC%=%PAC%
if %NB_GUM% EQU %MAX_GUM% goto :END_LEVEL
:END_MOVE
goto :WALL
:: ############################################################################
:: #
:: #
:: ######################## ---LOSE--- ########################
:LOSE
set /a NB_LIFE=NB_LIFE-1
if %NB_LIFE%==0 goto :GAME_OVER
:: \\ Nouvel Emplacement du PAC-MAN ------
set "%EX_POS_PAC%= "
set NEW_POS_PAC=X9_Y20
set EX_POS_PAC=%NEW_POS_PAC%
set %NEW_POS_PAC%=%PAC%
cls
echo. &echo. &echo. &echo. &echo. &echo.
echo __ __ ___ _ _ _ ___ ____ _____
echo \ \ / / / _ \ ^| ^| ^| ^| ^| ^| / _ \ / ___^| ^|_ _^|
echo \ V / ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| ^| \___ \ ^| ^|
echo ^| ^| ^| ^|_^| ^| ^| ^|_^| ^| ^| ^|___ ^| ^|_^| ^| ___) ^| ^| ^|
echo ^|_^| \___/ \___/ ^|_____^| \___/ ^|____/ ^|_^|
echo.
echo ___ _ _ _____ _ ___ _____ _____
echo / _ \ ^| \ ^| ^| ^| ____^| ^| ^| ^|_ _^| ^| ___^| ^| ____^|
echo ^| ^| ^| ^| ^| \^| ^| ^| _^| ^| ^| ^| ^| ^| ^|_ ^| _^|
echo ^| ^|_^| ^| ^| ^|\ ^| ^| ^|___ ^| ^|___ ^| ^| ^| _^| ^| ^|___
echo \___/ ^|_^| \_^| ^|_____^| ^|_____^| ^|___^| ^|_^| ^|_____^|
echo.
echo -- Still %NB_LIFE% Lifes --
echo. &echo. &echo.
echo Press any key to continue the game ...
pause>nul
pause>nul
goto :WALL
:: ##############################################################
:: #
:: #
:: ######################## ---GAME-OVER--- ########################
:GAME_OVER
cls
echo. &echo. &echo. &echo. &echo. &echo. &echo. &echo.
echo ____ _ __ __ _____ ___ __ __ _____ ____
echo / ___^| / \ ^| \/ ^| ^| ____^| / _ \ \ \ / / ^| ____^| ^| _ \
echo ^| ^| _ / _ \ ^| ^|\/^| ^| ^| _^| ^| ^| ^| ^| \ \ / / ^| _^| ^| ^|_) ^|
echo ^| ^|_^| ^| / ___ \ ^| ^| ^| ^| ^| ^|___ ^| ^|_^| ^| \ V / ^| ^|___ ^| _ ^<
echo \____^| /_/ \_\ ^|_^| ^|_^| ^|_____^| \___/ \_/ ^|_____^| ^|_^| \_\
echo.
echo -- You are a LOSER --
echo. &echo. &echo. &echo. &echo. &echo. &echo.
echo Press any key to restart the game ...
pause>nul
pause>nul
goto :RESET
:: ##############################################################
:: #
:: #
:: ######################## ---END-LEVEL--- ########################
:END_LEVEL
cls
for /f "tokens=* delims=:LEVEL_" %%A in ("%LVL%") do (
set /a NEXT=%%A+1
)
set LVL=:LEVEL_%NEXT%
echo. &echo. &echo. &echo. &echo.
echo _ _____ __ __ _____ _
echo ^| ^| ^| ____^| \ \ / / ^| ____^| ^| ^|
echo ^| ^| ^| _^| \ \ / / ^| _^| ^| ^|
echo ^| ^|___ ^| ^|___ \ V / ^| ^|___ ^| ^|___
echo ^|_____^| ^|_____^| \_/ ^|_____^| ^|_____^|
echo ____ ___ __ __ ____ _ _____ _____ _____ ____
echo / ___^| / _ \ ^| \/ ^| ^| _ \ ^| ^| ^| ____^| ^|_ _^| ^| ____^| ^| _ \
echo ^| ^| ^| ^| ^| ^| ^| ^|\/^| ^| ^| ^|_) ^| ^| ^| ^| _^| ^| ^| ^| _^| ^| ^| ^| ^|
echo ^| ^|___ ^| ^|_^| ^| ^| ^| ^| ^| ^| __/ ^| ^|___ ^| ^|___ ^| ^| ^| ^|___ ^| ^|_^| ^|
echo \____^| \___/ ^|_^| ^|_^| ^|_^| ^|_____^| ^|_____^| ^|_^| ^|_____^| ^|____/
echo.
echo -- CONGRATULATION --
echo. &echo. &echo. &echo. &echo.
echo Press any key to continue the game ...
pause>nul
pause>nul
if %NEXT% GTR %LVL_MAX% goto :LAST_LEVEL
goto :LEVEL_%NEXT%
:: ###################################################################
:: #
:: #
:: ######################## ---LAST-LEVEL--- ########################
:LAST_LEVEL
cls
echo. &echo. &echo. &echo. &echo. &echo.
echo -- LAST LEVEL COMPLETED --
echo.
echo __ __ ___ _ _ __ __ ___ _ _
echo \ \ / / / _ \ ^| ^| ^| ^| \ \ / / ^|_ _^| ^| \ ^| ^|
echo \ V / ^| ^| ^| ^| ^| ^| ^| ^| \ \ /\ / / ^| ^| ^| \^| ^|
echo ^| ^| ^| ^|_^| ^| ^| ^|_^| ^| \ V V / ^| ^| ^| ^|\ ^|
echo ^|_^| \___/ \___/ \_/\_/ ^|___^| ^|_^| \_^|
echo.
echo [ SCORE: %SCORE% ]
echo. &echo. &echo. &echo. &echo. &echo. &echo. &echo.
echo Press any key to restart the game ...
pause>nul
pause>nul
goto :RESET
:: ###################################################################
:: #
:: #
:: ######################## --- Table ERRORLEVEL de KEY --- ########################
:USE_KEY
key
call :MOVE_GHOSTS
if %errorlevel%==72 set TOUCH=U
if %errorlevel%==75 set TOUCH=L
if %errorlevel%==77 set TOUCH=R
if %errorlevel%==80 set TOUCH=D
if %errorlevel%==32 set TOUCH=S
goto :EOF
:: ###################################################################
:: #
:: #
:: ######################## ---Déplacement de Fantômes--- ########################
:MOVE_GHOSTS
:: \\ Déplacement Ghost_1 ------------------
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G1%") do (
set Ex_X_G1=%%X
set Ex_Y_G1=%%Y
)
set /a DIRECT_X_G1 = Ex_X_G1 %OP_G1% 1
set /a DIRECT_Y_G1 = Ex_Y_G1 %OP_G1% 1
:RE-GHOSTS_G1
set NEW_POS_G1=X%DIRECT_X_G1%_Y%Ex_Y_G1%
for /f "tokens=*" %%A in ("%NEW_POS_G1%") do (
set CORR_G1=%%A
)
if !%CORR_G1%!==%CVR% goto :JUMP_G1A
if !%CORR_G1%!==%PAC% goto :LOSE
if %NEW_POS_G1%==X9_Y0 set NEW_POS_G1=X9_Y39
if %NEW_POS_G1%==X9_Y40 set NEW_POS_G1=X9_Y1
set "%EX_POS_G1%=!TRANS_%EX_POS_G1%!"
set "EX_POS_G1=%NEW_POS_G1%"
set "%NEW_POS_G1%=%GHOST%"
goto :END_MOVE_GHOSTS_G1
:JUMP_G1A
set NEW_POS_G1=X%Ex_X_G1%_Y%DIRECT_Y_G1%
for /f "tokens=*" %%A in ("%NEW_POS_G1%") do (
set CORR_G1=%%A
)
if !%CORR_G1%!==%CVR% goto :JUMP_G1B
if !%CORR_G1%!==%PAC% goto :LOSE
if %NEW_POS_G1%==X9_Y0 set NEW_POS_G1=X9_Y39
if %NEW_POS_G1%==X9_Y40 set NEW_POS_G1=X9_Y1
set "%EX_POS_G1%=!TRANS_%EX_POS_G1%!"
set "EX_POS_G1=%NEW_POS_G1%"
set "%NEW_POS_G1%=%GHOST%"
goto :END_MOVE_GHOSTS_G1
:JUMP_G1B
if %OP_G1%==+ (
set "OP_G1=-"
) else (
set "OP_G1=+"
)
set /a DIRECT_X_G1 = Ex_X_G1 %OP_G1% 1
set /a DIRECT_Y_G1 = Ex_Y_G1 %OP_G1% 1
goto :RE-GHOSTS_G1
:END_MOVE_GHOSTS_G1
:: ########## end ghost 1 ---
:: \\ Déplacement Ghost_2
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G2%") do (
set Ex_X_G2=%%X
set Ex_Y_G2=%%Y
)
set /a DIRECT_X_G2 = Ex_X_G2 %OP_G2% 1
set /a DIRECT_Y_G2 = Ex_Y_G2 %OP_G2% 1
:RE-GHOSTS_G2
set NEW_POS_G2=X%DIRECT_X_G2%_Y%Ex_Y_G2%
for /f "tokens=*" %%A in ("%NEW_POS_G2%") do (
set CORR_G2=%%A
)
if !%CORR_G2%!==%CVR% goto :JUMP_G2A
if !%CORR_G2%!==%PAC% goto :LOSE
if %NEW_POS_G2%==X9_Y0 set NEW_POS_G2=X9_Y39
if %NEW_POS_G2%==X9_Y40 set NEW_POS_G2=X9_Y1
set "%EX_POS_G2%=!TRANS_%EX_POS_G2%!"
set "EX_POS_G2=%NEW_POS_G2%"
set "%NEW_POS_G2%=%GHOST%"
goto :END_MOVE_GHOSTS_G2
:JUMP_G2A
set NEW_POS_G2=X%Ex_X_G2%_Y%DIRECT_Y_G2%
for /f "tokens=*" %%A in ("%NEW_POS_G2%") do (
set CORR_G2=%%A
)
if !%CORR_G2%!==%CVR% goto :JUMP_G2B
if !%CORR_G2%!==%PAC% goto :LOSE
if %NEW_POS_G2%==X9_Y0 set NEW_POS_G2=X9_Y39
if %NEW_POS_G2%==X9_Y40 set NEW_POS_G2=X9_Y1
set "%EX_POS_G2%=!TRANS_%EX_POS_G2%!"
set "EX_POS_G2=%NEW_POS_G2%"
set "%NEW_POS_G2%=%GHOST%"
goto :END_MOVE_GHOSTS_G2
:JUMP_G2B
if %OP_G2%==+ (
set "OP_G2=-"
) else (
set "OP_G2=+"
)
set /a DIRECT_X_G2 = Ex_X_G2 %OP_G2% 1
set /a DIRECT_Y_G2 = Ex_Y_G2 %OP_G2% 1
goto :RE-GHOSTS_G2
:END_MOVE_GHOSTS_G2
:: ########## end ghost 2 ---
:: \\ Déplacement Ghost_3
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G3%") do (
set Ex_X_G3=%%X
set Ex_Y_G3=%%Y
)
set /a DIRECT_X_G3 = Ex_X_G3 %OP_G3% 1
set /a DIRECT_Y_G3 = Ex_Y_G3 %OP_G3% 1
:RE-GHOSTS_G3
set NEW_POS_G3=X%Ex_X_G3%_Y%DIRECT_Y_G3%
for /f "tokens=*" %%A in ("%NEW_POS_G3%") do (
set CORR_G3=%%A
)
if !%CORR_G3%!==%CVR% goto :JUMP_G3A
if !%CORR_G3%!==%PAC% goto :LOSE
if %NEW_POS_G3%==X9_Y0 set NEW_POS_G3=X9_Y39
if %NEW_POS_G3%==X9_Y40 set NEW_POS_G3=X9_Y1
set "%EX_POS_G3%=!TRANS_%EX_POS_G3%!"
set "EX_POS_G3=%NEW_POS_G3%"
set "%NEW_POS_G3%=%GHOST%"
goto :END_MOVE_GHOSTS_G3
:JUMP_G3A
set NEW_POS_G3=X%DIRECT_X_G3%_Y%Ex_Y_G3%
for /f "tokens=*" %%A in ("%NEW_POS_G3%") do (
set CORR_G3=%%A
)
if !%CORR_G3%!==%CVR% goto :JUMP_G3B
if !%CORR_G3%!==%PAC% goto :LOSE
if %NEW_POS_G3%==X9_Y0 set NEW_POS_G3=X9_Y39
if %NEW_POS_G3%==X9_Y40 set NEW_POS_G3=X9_Y1
set "%EX_POS_G3%=!TRANS_%EX_POS_G3%!"
set "EX_POS_G3=%NEW_POS_G3%"
set "%NEW_POS_G3%=%GHOST%"
goto :END_MOVE_GHOSTS_G3
:JUMP_G3B
if %OP_G3%==+ (
set "OP_G3=-"
) else (
set "OP_G3=+"
)
set /a DIRECT_X_G3 = Ex_X_G3 %OP_G3% 1
set /a DIRECT_Y_G3 = Ex_Y_G3 %OP_G3% 1
goto :RE-GHOSTS_G3
:END_MOVE_GHOSTS_G3
:: ########## end ghost 3 ---
:: \\ Déplacement Ghost_4
for /f "tokens=1,2 delims=X,Y,_" %%X in ("%EX_POS_G4%") do (
set Ex_X_G4=%%X
set Ex_Y_G4=%%Y
)
set /a DIRECT_X_G4 = Ex_X_G4 %OP_G4% 1
set /a DIRECT_Y_G4 = Ex_Y_G4 %OP_G4% 1
:RE-GHOSTS_G4
set NEW_POS_G4=X%DIRECT_X_G4%_Y%Ex_Y_G4%
for /f "tokens=*" %%A in ("%NEW_POS_G4%") do (
set CORR_G4=%%A
)
if !%CORR_G4%!==%CVR% goto :JUMP_G4A
if !%CORR_G4%!==%PAC% goto :LOSE
if %NEW_POS_G4%==X9_Y0 set NEW_POS_G4=X9_Y39
if %NEW_POS_G4%==X9_Y40 set NEW_POS_G4=X9_Y1
set "%EX_POS_G4%=!TRANS_%EX_POS_G4%!"
set "EX_POS_G4=%NEW_POS_G4%"
set "%NEW_POS_G4%=%GHOST%"
goto :END_MOVE_GHOSTS_G4
:JUMP_G4A
set NEW_POS_G4=X%Ex_X_G4%_Y%DIRECT_Y_G4%
for /f "tokens=*" %%A in ("%NEW_POS_G4%") do (
set CORR_G4=%%A
)
if !%CORR_G4%!==%CVR% goto :JUMP_G4B
if !%CORR_G4%!==%PAC% goto :LOSE
if %NEW_POS_G4%==X9_Y0 set NEW_POS_G4=X9_Y39
if %NEW_POS_G4%==X9_Y40 set NEW_POS_G4=X9_Y1
set "%EX_POS_G4%=!TRANS_%EX_POS_G4%!"
set "EX_POS_G4=%NEW_POS_G4%"
set "%NEW_POS_G4%=%GHOST%"
goto :END_MOVE_GHOSTS_G4
:JUMP_G4B
if %OP_G4%==+ (
set "OP_G4=-"
) else (
set "OP_G4=+"
)
set /a DIRECT_X_G4 = Ex_X_G4 %OP_G4% 1
set /a DIRECT_Y_G4 = Ex_Y_G4 %OP_G4% 1
goto :RE-GHOSTS_G4
:END_MOVE_GHOSTS_G4
:: ########## end ghost 4 ---
goto :EOF
:: ###################################################################
:: ------------------------------ CODE --------------------
Modifié en dernier par stryk le 21 juin 2011 09:55, modifié 3 fois.
- WIN32-[GG]
- SuperBatcher
- Messages : 129
- Enregistré le : 25 avr. 2011 19:34
- Localisation : Dernière porte à droite
Re: PAC-MAN en Batch
Désolé mais chez moi: il ya rien de marqué!
J'ai quand même put récupérer la source en affichant le code html
Testé, approuvé, encore un coup de maître stryk
J'ai quand même put récupérer la source en affichant le code html
Testé, approuvé, encore un coup de maître stryk
WIN32-[GG]
The quieter you become,
the more you are able to ear...
The quieter you become,
the more you are able to ear...
-
- Batcheur occasionnel
- Messages : 6
- Enregistré le : 09 sept. 2009 14:50
- Localisation : Essonne / France
Re: PAC-MAN en Batch
RE !!
Désolé, lol, j'ai viré les balises CODE et ça apparait ... bizarre ...
Re-bonne lecture ^^
Désolé, lol, j'ai viré les balises CODE et ça apparait ... bizarre ...
Re-bonne lecture ^^
Re: PAC-MAN en Batch
Vraiment c'est super !
Genial
mais j'aimerais avoir un peu plus d'infos : le key.exe ça sert a quoi ?
Genial
mais j'aimerais avoir un peu plus d'infos : le key.exe ça sert a quoi ?
Prochainement : mon site web modif4you pas terminer et le nom de domaine est naze!In The MineWorld(Ma chaine YouTube) :http://www.youtube.com/user/Tymmesyde
Et lachez des coms .merci
PrP
Et lachez des coms .merci
PrP
- WIN32-[GG]
- SuperBatcher
- Messages : 129
- Enregistré le : 25 avr. 2011 19:34
- Localisation : Dernière porte à droite
Re: PAC-MAN en Batch
key.exe est un programme externe qui récupère le 'code-touche' de la touche sur laquelle l'utilisateur à appuyé.
WIN32-[GG]
The quieter you become,
the more you are able to ear...
The quieter you become,
the more you are able to ear...
Re: PAC-MAN en Batch
Merci Win'
Prochainement : mon site web modif4you pas terminer et le nom de domaine est naze!In The MineWorld(Ma chaine YouTube) :http://www.youtube.com/user/Tymmesyde
Et lachez des coms .merci
PrP
Et lachez des coms .merci
PrP
Re: PAC-MAN en Batch
C'est genial tu est vachement fort! ^^
Re: PAC-MAN en Batch
ton programme est génial mais j'aimerais savoir comment tu fait apparaître les murs(quelles commandes?) si tu pouvais me répondre merci.
Re: PAC-MAN en Batch
Le script a l'air super, mais on ne peut malheureusement pas en profiter, impossible de télécharger keys.exe ..
Un autre lien de téléchargement ?
J'attends avec impatience de voir ce batch en action !
Un autre lien de téléchargement ?
J'attends avec impatience de voir ce batch en action !
Re: PAC-MAN en Batch
touche sur laquelle l'utilisateur à appuyé.