Bon, tiens ^^
J'ai fini le compteur d'unité allié.
Maintenant faut faire le truc quand une unité est coulé, pas trop dur a faire mais j'crois j'vais pas le faire aujourd'hui parce que c'est quand meme assez chiant de coder -_-
Il y a des executables que tu n'as pas, c'est normal.
listenbat.exe et clientbat.exe c'est netcat en fait
et cmdow.exe c'est pour cacher les fenetres.
Ces 2 programmes telechargeables gratuitement sur internet si tu les veux...
@echo off
setlocal enabledelayedexpansion
title Airad Battle
color 79
tskill clientbat > NUL
tskill listenbat > NUL
cls
echo.
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º Airad Battle v0.1 º
echo º by Blast Killer º
echo º BlastKiller@hotmail.fr º
echo º http://blastinfo.free.fr º
echo º Open Source º
echo º Grande pensees a Cecile º
echo º Alias Daria (d'ou Airad) º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo.
echo Bienvenue dans Airad Battle, jeu de bataille navale avec multijoueur.
echo.
echo Bon jeu !
echo.
pause
del /F /Q client.bat > NUL
del /F /Q listen.bat > NUL
del /F /Q taille.txt > NUL
del /F /Q input.txt > NUL
del /F /Q output.txt > NUL
cls
::set table variable
set a1=°
set a2=°
set a3=°
set a4=°
set a5=°
set a6=°
set a7=°
set a8=°
set a9=°
set a10=°
set b1=°
set b2=°
set b3=°
set b4=°
set b5=°
set b6=°
set b7=°
set b8=°
set b9=°
set b10=°
set c1=°
set c2=°
set c3=°
set c4=°
set c5=°
set c6=°
set c7=°
set c8=°
set c9=°
set c10=°
set d1=°
set d2=°
set d3=°
set d4=°
set d5=°
set d6=°
set d7=°
set d8=°
set d9=°
set d10=°
set e1=°
set e2=°
set e3=°
set e4=°
set e5=°
set e6=°
set e7=°
set e8=°
set e9=°
set e10=°
set f1=°
set f2=°
set f3=°
set f4=°
set f5=°
set f6=°
set f7=°
set f8=°
set f9=°
set f10=°
set g1=°
set g2=°
set g3=°
set g4=°
set g5=°
set g6=°
set g7=°
set g8=°
set g9=°
set g10=°
set h1=°
set h2=°
set h3=°
set h4=°
set h5=°
set h6=°
set h7=°
set h8=°
set h9=°
set h10=°
set i1=°
set i2=°
set i3=°
set i4=°
set i5=°
set i6=°
set i7=°
set i8=°
set i9=°
set i10=°
set j1=°
set j2=°
set j3=°
set j4=°
set j5=°
set j6=°
set j7=°
set j8=°
set j9=°
set j10=°
set a1k=°
set a2k=°
set a3k=°
set a4k=°
set a5k=°
set a6k=°
set a7k=°
set a8k=°
set a9k=°
set a10k=°
set b1k=°
set b2k=°
set b3k=°
set b4k=°
set b5k=°
set b6k=°
set b7k=°
set b8k=°
set b9k=°
set b10k=°
set c1k=°
set c2k=°
set c3k=°
set c4k=°
set c5k=°
set c6k=°
set c7k=°
set c8k=°
set c9k=°
set c10k=°
set d1k=°
set d2k=°
set d3k=°
set d4k=°
set d5k=°
set d6k=°
set d7k=°
set d8k=°
set d9k=°
set d10k=°
set e1k=°
set e2k=°
set e3k=°
set e4k=°
set e5k=°
set e6k=°
set e7k=°
set e8k=°
set e9k=°
set e10k=°
set f1k=°
set f2k=°
set f3k=°
set f4k=°
set f5k=°
set f6k=°
set f7k=°
set f8k=°
set f9k=°
set f10k=°
set g1k=°
set g2k=°
set g3k=°
set g4k=°
set g5k=°
set g6k=°
set g7k=°
set g8k=°
set g9k=°
set g10k=°
set h1k=°
set h2k=°
set h3k=°
set h4k=°
set h5k=°
set h6k=°
set h7k=°
set h8k=°
set h9k=°
set h10k=°
set i1k=°
set i2k=°
set i3k=°
set i4k=°
set i5k=°
set i6k=°
set i7k=°
set i8k=°
set i9k=°
set i10k=°
set j1k=°
set j2k=°
set j3k=°
set j4k=°
set j5k=°
set j6k=°
set j7k=°
set j8k=°
set j9k=°
set j10k=°
::set boat variable
set start=0
set boat=bateau1
set bateau1=5
set bateau2=4
set bateau3=3
set bateau4=3
set bateau5=2
set bateau1e=1
set bateau2e=1
set bateau3e=1
set bateau4e=1
set bateau5e=1
set fini=0
set where=placing
set where1=fini
set enemy=17
set ally=17
set taille=0
set taillebck=0
:listen
cls
echo.
echo.
echo Sur quel port voullez vous vous mettre en ecoute ?
set /p listen=
if not defined listen goto listen
if %listen% GTR 65535 goto listen
if %listen% LSS 1 goto listen
echo listenbat.exe -L -p %listen% ^> output.txt> listen.bat
echo exit>> listen.bat
cmdow.exe /run /hid listen.bat
:ip
echo.
echo.
echo Veuillez rentrer l'IP de la machine distante avec qui vous aller jouez :
set /P ip=
if not defined ip goto ip
for /f "tokens=1,2,3,4 delims=." %%a in ("%ip%" ) do call :cmdip %%a %%b %%c %%d
:port
echo.
echo.
echo Veuillez rentrer le port de la machine distante avec qui vous aller jouez :
set /P port=
if not defined port goto port
if %port% GTR 65535 goto port
if %port% LSS 1 goto port
:player
echo.
echo.
echo ATTENTION :
echo Votre adversaire doit avoir choisi son port en ecoute avant de repondre a cette question :
echo.
set /p player= Etes vous le premier ou deuxieme joueur (1/2) ?
if %player% EQU 1 goto connextest
if %player% EQU 2 goto connextest
goto player
:connextest
set nbrt=%player%
if %player% EQU 2 set vart=1
if %player% EQU 1 set vart=2
echo.
echo Une connexion de test va etre effectuee avec votre adversaire...
echo test%player%> input.txt
echo clientbat.exe %ip% %port% ^< input.txt> client.bat
echo exit>> client.bat
cmdow.exe /run /hid client.bat
ping -n 2 127.0.0.1 > NUL
qprocess | findstr "clientbat.exe" > NUL
if %errorlevel% EQU 1 goto erreurc
:bouclet
ping -n 2 127.0.0.1 > NUL
dir /-c | findstr /i "output.txt"> taille.txt
for /f "delims=" %%a in (taille.txt) do set taille="%%a"
set taille=%taille:~18,18%
set taille=%taille: =%
if %taille%==%taillebck% goto bouclet
::suite
set taillebck=%taille%
for /f "delims=" %%a in ('type output.txt') do set var=%%a
if not "%var%"=="test%vart%" goto erreurc
echo.
echo La connexion de test a pu etre effectuee.
echo.
pause
tskill clientbat > NUL
goto table
:erreurc
color 3E
echo.
echo La connexion de test n'a pas pu etre effecutee sur %ip%:%port%
echo Veuillez verifier l'IP et le port, le firewall ou le routeur.
echo.
pause
tskill clientbat > NUL
color 79
goto ip
goto table
:cmdip
set ipa=%1
set ipb=%2
set ipc=%3
set ipd=%4
if not defined ipd goto ip
if %ipa% GTR 254 goto ip
if %ipb% GTR 254 goto ip
if %ipc% GTR 254 goto ip
if %ipd% GTR 254 goto ip
goto :eof
:table
if %start% EQU 5 if %boat%==bateau1 set boat=bateau2& set start=0
if %start% EQU 4 if %boat%==bateau2 set boat=bateau3& set start=0
if %start% EQU 3 if %boat%==bateau3 set boat=bateau4& set start=0
if %start% EQU 3 if %boat%==bateau4 set boat=bateau5& set start=0
if %start% EQU 2 if %boat%==bateau5 set fini=1
set /A start+=1
:table1
if %where1%==jeu if !%y%%x%!==X goto cmd
goto table2
:cmd
echo %bateau1c% | findstr "%y%%x%"
if %errorlevel% EQU 0 set /a bateau1-=1
echo %bateau2c% | findstr "%y%%x%"
if %errorlevel% EQU 0 set /a bateau2-=1
echo %bateau3c% | findstr "%y%%x%"
if %errorlevel% EQU 0 set /a bateau3-=1
echo %bateau4c% | findstr "%y%%x%"
if %errorlevel% EQU 0 set /a bateau4-=1
echo %bateau5c% | findstr "%y%%x%"
if %errorlevel% EQU 0 set /a bateau5-=1
:table2
cls
echo.
echo.
echo ³1³2³3³4³5³6³7³8³9³10 ³1³2³3³4³5³6³7³8³9³10 Legende :
echo ---------------------- ---------------------- ° Eau
echo A³%a1%³%a2%³%a3%³%a4%³%a5%³%a6%³%a7%³%a8%³%a9%³%a10% A³%a1k%³%a2k%³%a3k%³%a4k%³%a5k%³%a6k%³%a7k%³%a8k%³%a9k%³%a10k% * Bateau
echo ---------------------- ---------------------- X Touche
echo B³%b1%³%b2%³%b3%³%b4%³%b5%³%b6%³%b7%³%b8%³%b9%³%b10% B³%b1k%³%b2k%³%b3k%³%b4k%³%b5k%³%b6k%³%b7k%³%b8k%³%b9k%³%b10k% O Dans l'eau
echo ---------------------- ----------------------
echo C³%c1%³%c2%³%c3%³%c4%³%c5%³%c6%³%c7%³%c8%³%c9%³%c10% C³%c1k%³%c2k%³%c3k%³%c4k%³%c5k%³%c6k%³%c7k%³%c8k%³%c9k%³%c10k% Bateau allie restant :
echo ---------------------- ---------------------- Porte avion : %bateau1%
echo D³%d1%³%d2%³%d3%³%d4%³%d5%³%d6%³%d7%³%d8%³%d9%³%d10% D³%d1k%³%d2k%³%d3k%³%d4k%³%d5k%³%d6k%³%d7k%³%d8k%³%d9k%³%d10k% Cuirasse : %bateau2%
echo ---------------------- ---------------------- Contre torpilleur : %bateau3%
echo E³%e1%³%e2%³%e3%³%e4%³%e5%³%e6%³%e7%³%e8%³%e9%³%e10% E³%e1k%³%e2k%³%e3k%³%e4k%³%e5k%³%e6k%³%e7k%³%e8k%³%e9k%³%e10k% Sous marin : %bateau4%
echo ---------------------- ---------------------- Lance torpilles : %bateau5%
echo F³%f1%³%f2%³%f3%³%f4%³%f5%³%f6%³%f7%³%f8%³%f9%³%f10% F³%f1k%³%f2k%³%f3k%³%f4k%³%f5k%³%f6k%³%f7k%³%f8k%³%f9k%³%f10k%
echo ---------------------- ---------------------- Bateau ennemi restant
echo G³%g1%³%g2%³%g3%³%g4%³%g5%³%g6%³%g7%³%g8%³%g9%³%g10% G³%g1k%³%g2k%³%g3k%³%g4k%³%g5k%³%g6k%³%g7k%³%g8k%³%g9k%³%g10k% Porte avion : %bateau1e%
echo ---------------------- ---------------------- Cuirasse : %bateau2e%
echo H³%h1%³%h2%³%h3%³%h4%³%h5%³%h6%³%h7%³%h8%³%h9%³%h10% H³%h1k%³%h2k%³%h3k%³%h4k%³%h5k%³%h6k%³%h7k%³%h8k%³%h9k%³%h10k% Contre torpilleur : %bateau3e%
echo ---------------------- ---------------------- Sous marin : %bateau4e%
echo I³%i1%³%i2%³%i3%³%i4%³%i5%³%i6%³%i7%³%i8%³%i9%³%i10% I³%i1k%³%i2k%³%i3k%³%i4k%³%i5k%³%i6k%³%i7k%³%i8k%³%i9k%³%i10k% Lance torpilles : %bateau5e%
echo ---------------------- ----------------------
echo J³%j1%³%j2%³%j3%³%j4%³%j5%³%j6%³%j7%³%j8%³%j9%³%j10% J³%j1k%³%j2k%³%j3k%³%j4k%³%j5k%³%j6k%³%j7k%³%j8k%³%j9k%³%j10k%
echo.
echo.
if %fini% EQU 1 goto %where1%
:placing
if %boat%==bateau1 set /P yx= Entrer les coordonnees du porte avion (5 cases). [ex: A 1] ?
if %boat%==bateau2 set /P yx= Entrer les coordonnees du cuirasse (4 cases). [ex: A 1] ?
if %boat%==bateau3 set /P yx= Entrer les coordonnees du contre torpilleur (3 cases). [ex: A 1] ?
if %boat%==bateau4 set /P yx= Entrer les coordonnees du sous marin (3 cases). [ex: A 1] ?
if %boat%==bateau5 set /P yx= Entrer les coordonnees du lance torpilles (2 cases). [ex: A 1] ?
call :commande %yx%
::verif start
if %start%==1 if not %boat%==bateau5 set ybck1=%y%
if %start%==1 if not %boat%==bateau5 set xbck1=%x%
if %start%==1 goto placingok
::verif placing
if "%yx%"=="%yxbck%" goto erreurpla
::verif x
set /A varx=%xbck%-%x%
if %varx% GTR 1 goto erreurpla
if %varx% LSS -1 goto erreurpla
::verif y
if %y%==A set yn=1
if %y%==B set yn=2
if %y%==C set yn=3
if %y%==D set yn=4
if %y%==E set yn=5
if %y%==F set yn=6
if %y%==G set yn=7
if %y%==H set yn=8
if %y%==I set yn=9
if %y%==J set yn=10
if %ybck%==A set ybckn=1
if %ybck%==B set ybckn=2
if %ybck%==C set ybckn=3
if %ybck%==D set ybckn=4
if %ybck%==E set ybckn=5
if %ybck%==F set ybckn=6
if %ybck%==G set ybckn=7
if %ybck%==H set ybckn=8
if %ybck%==I set ybckn=9
if %ybck%==J set ybckn=10
set /A vary=%ybckn%-%yn%
if %vary% GTR 1 goto erreurpla
if %vary% LSS -1 goto erreurpla
::verif diagonal
set dgnl=0
if %varx% EQU 1 set /a dgnl+=1
if %varx% EQU -1 set /a dgnl+=1
if %vary% EQU 1 set /a dgnl+=1
if %vary% EQU -1 set /a dgnl+=1
if %dgnl% GTR 1 goto erreurpla
::verifalign
if not %boat%==bateau5 if %start%==3 goto verifa
if %boat%==bateau1 if %start%==4 goto verifa
if %boat%==bateau1 if %start%==5 goto verifa
if %boat%==bateau2 if %start%==4 goto verifa
goto placingok
:verifa
set /a varx1=%xbck1%-%xbck%
if %varx1% EQU 0 goto colonne
if %ybck1%==A set ybckn1=1
if %ybck1%==B set ybckn1=2
if %ybck1%==C set ybckn1=3
if %ybck1%==D set ybckn1=4
if %ybck1%==E set ybckn1=5
if %ybck1%==F set ybckn1=6
if %ybck1%==G set ybckn1=7
if %ybck1%==H set ybckn1=8
if %ybck1%==I set ybckn1=9
if %ybck1%==J set ybckn1=10
set /a vary1=%ybckn1%-%ybckn%
if %vary1% EQU 0 goto ligne
goto erreurpla
:ligne
set /a xbcka=%xbck%+1
set /a xbckb=%xbck%-1
if %x% EQU %xbcka% goto placingok
if %x% EQU %xbckb% goto placingok
goto erreurpla
:colonne
set /a ybcka=%ybckn%+1
set /a ybckb=%ybckn%-1
if %yn% EQU %ybcka% goto placingok
if %yn% EQU %ybckb% goto placingok
goto erreurpla
:placingok
set yxbck=%yx%
set ybck=%y%
set xbck=%x%
set %y%%x%=*
set %boat%c=!%boat%c!%y%%x%
goto table
:erreurpla
color 3E
echo.
echo Vous voulez placer votre bateau sur une case incorrecte
echo.
pause
color 79
goto table1
:fini
color 80
echo fini> input.txt
cmdow.exe /run /hid client.bat
ping -n 2 127.0.0.1 > NUL
tskill clientbat > NUL
:bouclef
ping -n 2 127.0.0.1 > NUL
dir /-c | findstr /i "output.txt"> taille.txt
for /f "delims=" %%a in (taille.txt) do set taille="%%a"
set taille=%taille:~18,18%
set taille=%taille: =%
if %taille%==%taillebck% goto bouclef
set taillebck=%taille%
set where1=jeu
:jeu
if %enemy% EQU 0 set win=1
if %enemy% EQU 0 goto fin
if %ally% EQU 0 set win=0
if %ally% EQU 0 goto fin
set /a nbrt+=1
set /a var=%nbrt%/2
set /a var1=%var%*2
if %var1% EQU %nbrt% goto target
goto boucle
:target
set /p target= Entrer les coordonnees du tir [y x] ?
call :commande %target%
echo "%target%"> input.txt
cmdow.exe /run /hid client.bat
ping -n 2 127.0.0.1 > NUL
tskill clientbat > NUL
:boucle
ping -n 2 127.0.0.1 > NUL
dir /-c | findstr /i "output.txt"> taille.txt
for /f "delims=" %%a in (taille.txt) do set taille="%%a"
set taille=%taille:~18,18%
set taille=%taille: =%
if %taille%==%taillebck% goto boucle
if not %var1% EQU %nbrt% goto suite1
:suite
set taillebck=%taille%
for /f "delims=" %%a in ('type output.txt') do set rep=%%a
if %rep%==o set %y%%x%k=X
if %rep%==o set /a enemy-=1
if %rep%==n set %y%%x%k=O
goto table1
:suite1
set taillebck=%taille%
for /f "delims=" %%a in ('type output.txt') do set tir=%%a
set tir=%tir:"=%
call :commande %tir%
if !%y%%x%!==° set %y%%x%=O& set rep1=n
if !%y%%x%!==* set %y%%x%=X& set /a ally-=1& set rep1=o
:tir
echo %rep1%> input.txt
cmdow.exe /run /hid client.bat
ping -n 2 127.0.0.1 > NUL
tskill clientbat > NUL
del /F /Q taille.txt
goto table1
:erreurjeu
color 3E
echo.
echo Ha DTC y'a une erreur (de noob j'en suis sur)
echo.
pause
color 79
goto end
:fin
echo.
if %win%==1 echo Vous etes le vainqueur ! Bien joue
if %win%==0 echo Dommage, vous avez perdu ce combat. Mais la guerre n'est pas fini !
echo.
echo.
pause
:end
tskill listenbat > NUL
del /F /Q client.bat
del /F /Q listen.bat
del /F /Q input.txt
del /F /Q output.txt
del /F /Q taille.txt
endlocal
exit
:commande
if %bateau5% EQU 0 set where=erreurjeu
set y=%1
set x=%2
if not defined y goto %where%
if not defined x goto %where%
if %x% GTR 10 goto %where%
if %x% LSS 1 goto %where%
set testy=0
if %y%==A set /a testy+=1
if %y%==B set /a testy+=1
if %y%==C set /a testy+=1
if %y%==D set /a testy+=1
if %y%==E set /a testy+=1
if %y%==F set /a testy+=1
if %y%==G set /a testy+=1
if %y%==H set /a testy+=1
if %y%==I set /a testy+=1
if %y%==J set /a testy+=1
if not %testy% EQU 1 goto %where%
Message édité par blastkiller le 08-03-2007 à 17:08:02