PAC-MAN en Batch

Vous avez réalisé un script utile, faites en profiter la communauté !

Modérateur : WIN32-[GG]

Répondre
stryk
Batcheur occasionnel
Messages : 6
Enregistré le : 09 sept. 2009 14:50
Localisation : Essonne / France

PAC-MAN en Batch

Message par stryk »

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 --------------------
Modifié en dernier par stryk le 21 juin 2011 09:55, modifié 3 fois.
Avatar du membre
WIN32-[GG]
SuperBatcher
Messages : 129
Enregistré le : 25 avr. 2011 19:34
Localisation : Dernière porte à droite

Re: PAC-MAN en Batch

Message par WIN32-[GG] »

Désolé mais chez moi: il ya rien de marqué! :roll:
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...
stryk
Batcheur occasionnel
Messages : 6
Enregistré le : 09 sept. 2009 14:50
Localisation : Essonne / France

Re: PAC-MAN en Batch

Message par stryk »

RE !!
Désolé, lol, j'ai viré les balises CODE et ça apparait ... bizarre ...
Re-bonne lecture ^^
Avatar du membre
Tymmesyde
King Of Batch
Messages : 40
Enregistré le : 11 juin 2011 14:52

Re: PAC-MAN en Batch

Message par Tymmesyde »

Vraiment c'est super !
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
ImagePrP
Avatar du membre
WIN32-[GG]
SuperBatcher
Messages : 129
Enregistré le : 25 avr. 2011 19:34
Localisation : Dernière porte à droite

Re: PAC-MAN en Batch

Message par WIN32-[GG] »

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...
Avatar du membre
Tymmesyde
King Of Batch
Messages : 40
Enregistré le : 11 juin 2011 14:52

Re: PAC-MAN en Batch

Message par Tymmesyde »

Merci Win' :D
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
ImagePrP
Fan2Rock
Batcheur occasionnel
Messages : 2
Enregistré le : 12 janv. 2012 21:55

Re: PAC-MAN en Batch

Message par Fan2Rock »

C'est genial tu est vachement fort! ^^
Th0m4s
Batcheur occasionnel
Messages : 2
Enregistré le : 29 mars 2012 19:51

Re: PAC-MAN en Batch

Message par Th0m4s »

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.
Gijia
Batcheur occasionnel
Messages : 4
Enregistré le : 24 avr. 2011 12:32

Re: PAC-MAN en Batch

Message par Gijia »

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 ! :D
superman7
Batcheur occasionnel
Messages : 1
Enregistré le : 09 janv. 2014 14:33

Re: PAC-MAN en Batch

Message par superman7 »

touche sur laquelle l'utilisateur à appuyé.
Répondre