elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  3 en raya en batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: 3 en raya en batch  (Leído 1,987 veces)
The Shadow

Desconectado Desconectado

Mensajes: 27



Ver Perfil
3 en raya en batch
« en: 16 Febrero 2008, 00:06 am »

Código:
@echo off
title 3R
echo.>00.t && echo.>01.t && echo.>02.t && echo.>10.t && echo.>11.t && echo.>12.t && echo.>20.t && echo.>21.t
echo.>22.t && attrib *.t +h
:ini
color a
cls
set op=-
set or=-
set a3=-
set b3=-
set c3=-
set a2=-
set b2=-
set c2=-
set a1=-
set b1=-
set c1=-
call :4ech 4
echo                        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                           3 en Raya en batch by Shadow
call :4ech 4
echo                               [a]   Juego Nuevo
echo                               [i]   Tabla de Errores
echo                               [s]   Salir
echo                        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
call :4ech 2
set /p op=_
if %op%==- call :error 01 ini
set opc=%op: =%
set opcn1=%opc:~0,1%
if %opcn1%==- call :error 01 ini
if %opcn1%==a (goto a_) else (if %opcn1%==A (goto a_))
if %opcn1%==i (goto i_) else (if %opcn1%==I (goto i_))
if %opcn1%==s (goto x_) else (if %opcn1%==S (goto x_))
call :error 01 ini
:a_
cls
call :4ech 4
echo                        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                          [e] Empezar tu
echo                          [s] Sederme el turno
echo                          [v] Volver al menu anterior
echo                        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
call :4ech 3
set /p or=Que desea hacer (E, S o V)?
if %or%==- call :error 02 a_
set ord=%or: =%
set ordn=%ord:~0,1%
if %ordn%==e (goto graph) else (if %ordn%==E (goto graph))
if %ordn%==s (goto pr) else (if %ordn%==S (goto pr))
if %ordn%==v (goto ini) else (if %ordn%==V (goto ini))
call :error 02 a_
:pr
set rdm=%random:~0,1%
if not %rdm%==1 (if not %rdm%==2 (if not %rdm%==3 (goto pr)))
goto b%rdm%
:graph
cls && call :4ech 3
echo                                    0      1     2
call :4ech 2
echo                            ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                            º                             º
echo                            º           ^|     ^|           º
echo                      0     º        %a1%  ^|  %b1%  ^|  %c1%        º
echo                            º      _____^|_____^|_____      º
echo                            º           ^|     ^|           º
echo                      1     º        %a2%  ^|  %b2%  ^|  %c2%        º
echo                            º      _____^|_____^|_____      º
echo                            º           ^|     ^|           º
echo                      2     º        %a3%  ^|  %b3%  ^|  %c3%        º
echo                            º           ^|     ^|           º
echo                            º                             º
echo                            ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
set curr=X && call :win_chk jugmov
:win_chk
set nest=%1
:lop
if %curr%==X (set term=Perdiste! && set col=4)
if %a1%%b1%%c1%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %a2%%b2%%c2%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %a3%%b3%%c3%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %a1%%a2%%a3%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %b1%%b2%%b3%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %c1%%c2%%c3%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %a1%%b2%%c3%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %a3%%b2%%c1%==%curr: =%%curr: =%%curr: =% (call :win %col% %term%)
if %curr%==X (set curr=O && set term=Ganaste! && set col=a && goto lop)
call :juju %nest%
:juju
if %a1%==- goto %1
if %a2%==- goto %1
if %a3%==- goto %1
if %b1%==- goto %1
if %b2%==- goto %1
if %b3%==- goto %1
if %c1%==- goto %1
if %c2%==- goto %1
if %c3%==- (goto %1) else (call :win f0 Empate!)
:jugmov
call :4ech 2 && echo Elija las coordenadas de su siguiente jugada! && call :4ech 2
set /p co_n=Coordenadas (xy) ej.:11?
set coo_n=%co_n:~0,2%
set coor_n=%coo_n: =%
if op%coor_n%==op (call :error 04 graph)
if %coor_n%==s (goto x_) else (if %coor_n%==S (goto x_))
if not exist %coor_n%.t (call :error 03 graph)
if %coor_a%%coor_n%==00 goto a1_
if %coor_a%%coor_n%==01 goto a2_
if %coor_a%%coor_n%==02 goto a3_
if %coor_a%%coor_n%==10 goto b1_
if %coor_a%%coor_n%==11 goto b2_
if %coor_a%%coor_n%==12 goto b3_
if %coor_a%%coor_n%==20 goto c1_
if %coor_a%%coor_n%==21 goto c2_
if %coor_a%%coor_n%==22 goto c3_
:a1_
if not %a1%==- goto no
set a1=O
goto ia
:a2_
if not %a2%==- goto no
set a2=O
goto ia
:a3_
if not %a3%==- goto no
set a3=O
goto ia
:b1_
if not %b1%==- goto no
set b1=O
goto ia
:b2_
if not %b2%==- goto no
set b2=O
goto ia
:b3_
if not %b3%==- goto no
set b3=O
goto ia
:c1_
if not %c1%==- goto no
set c1=O
goto ia
:c2_
if not %c2%==- goto no
set c2=O
goto ia
:c3_
if not %c3%==- goto no
set c3=O
goto ia
:no
echo Codigo de ERROR:04 (Ha dejado el campo vacio o el espacio ya a sido ocupado) && pause && goto graph
:ia
set curr=X
call :win_chk sif
:sif
if %a1%%b2%%b1%%c1%%a2%%c2%%a3%%b3%%c3%==O-------- goto b2
if %c1%%b2%%b1%%a1%%a2%%c2%%a3%%b3%%c3%==O-------- goto b2
if %a3%%b2%%b1%%a1%%a2%%c2%%c1%%b3%%c3%==O-------- goto b2
if %c3%%b2%%b1%%a1%%a2%%c2%%a3%%b3%%c1%==O-------- goto b2
set crt=X
set cnf=x
:nxpla
if %a3%%b3%%c3%==%crt: =%%crt: =%- goto c3
if %a3%%b3%%c3%==%crt: =%-%crt: =% goto b3
if %a3%%b3%%c3%==-%crt: =%%crt: =% goto a3
if %a2%%b2%%c2%==%crt: =%%crt: =%- goto c2
if %a2%%b2%%c2%==%crt: =%-%crt: =% goto b2
if %a2%%b2%%c2%==-%crt: =%%crt: =% goto a2
if %a1%%b1%%c1%==%crt: =%%crt: =%- goto c1
if %a1%%b1%%c1%==%crt: =%-%crt: =% goto b1
if %a1%%b1%%c1%==-%crt: =%%crt: =% goto a1
if %a3%%a2%%a1%==%crt: =%%crt: =%- goto a1
if %a3%%a2%%a1%==%crt: =%-%crt: =% goto a2
if %a3%%a2%%a1%==-%crt: =%%crt: =% goto a3
if %b3%%b2%%b1%==%crt: =%%crt: =%- goto b1
if %b3%%b2%%b1%==%crt: =%-%crt: =% goto b2
if %b3%%b2%%b1%==-%crt: =%%crt: =% goto b3
if %c3%%c2%%c1%==%crt: =%%crt: =%- goto c1
if %c3%%c2%%c1%==%crt: =%-%crt: =% goto c2
if %c3%%c2%%c1%==-%crt: =%%crt: =% goto c3
if %a1%%b2%%c3%==%crt: =%%crt: =%- goto c3
if %a1%%b2%%c3%==%crt: =%-%crt: =% goto b2
if %a1%%b2%%c3%==-%crt: =%%crt: =% goto a1
if %c1%%b2%%a3%==%crt: =%%crt: =%- goto a3
if %c1%%b2%%a3%==%crt: =%-%crt: =% goto b2
if %c1%%b2%%a3%==-%crt: =%%crt: =% goto c1
if %cnf%==x (set cnf=f
             set crt=O
             goto nxpla)
if %a1%%b2%%b3%%c1%%b1%%c3%%a2%%c2%%a3%==OXO------ goto a3
if %b2%%c2%%a3%%b1%%a1%%c1%%a2%%b3%%c3%==XOO------ goto c3
if %b1%%b2%%c3%%a1%%c1%%c2%%a2%%b3%%a3%==OXO------ goto c1
if %c1%%a2%%b2%%a1%%b1%%c2%%b3%%a3%%c3%==OXO------ goto a1
if %a1%%c2%%b3%%b1%%c1%%a2%%b2%%a3%%c3%==OXO------ goto b2
if %b1%%c2%%a3%%a1%%c1%%a2%%b2%%b3%%c3%==XOO------ goto b2
if %b1%%a2%%c3%%a1%%c1%%c2%%b2%%b3%%a3%==OXO------ goto b2
if %c1%%a2%%b3%%a1%%b1%%c2%%b2%%a3%%c3%==OOX------ goto b2
if %a1%%b1%%a2%%c1%%b2%%a3%%c2%%b3%%c3%==XOO------ goto b2
if %a3%%b3%%a2%%a1%%b2%%c3%%b1%%c2%%c1%==XOO------ goto b2
if %c1%%b1%%c2%%a1%%b2%%c3%%a2%%b3%%a3%==XOO------ goto b2
if %c3%%c2%%b3%%c1%%b2%%a3%%b1%%a2%%a1%==XOO------ goto b2
if %a1%%b1%%a2%%c1%%b2%%a3%%c2%%b3%%c3%==XOO------ goto b2
if %c1%%c2%%a3%%a1%%b1%%a2%%b2%%b3%%c3%==XOO------ goto b2
if %a1%%b1%%c3%%c1%%b2%%a3%%c2%%b3%%a2%==XOO------ goto b2
if %c1%%a2%%a3%%a1%%b1%%b2%%c2%%b3%%c3%==OOX------ goto b2
if %a1%%b3%%c3%%b1%%c1%%a2%%c2%%a3%%b2%==OOX------ goto b2
if %a1%%c2%%b3%%b1%%c1%%a2%%b2%%a3%%c3%==XOO------ goto c1
if %a3%%b2%%c2%%a1%%c1%%a2%%b1%%b3%%c3%==OXO------ goto c3
if %b1%%b2%%a3%%a1%%c1%%a2%%c2%%b3%%c3%==OXO------ goto a2
if %a2%%b2%%c3%%a1%%c1%%b1%%c2%%b3%%a3%==OXO------ goto b3
if %c1%%b2%%b3%%a1%%b1%%c3%%a2%%c2%%a3%==OXO------ goto c2
if %a1%%b2%%c2%%c1%%b1%%c3%%a2%%b3%%a3%==OXO------ goto b1
if %c1%%a2%%b3%%a1%%b1%%b2%%c2%%a3%%c3%==XOO------ goto a1
if %c3%%b1%%a2%%a1%%c1%%b2%%c2%%a3%%b3%==XOO------ goto a3
if %b2%%a1%%c3%%b1%%c2%%c1%%a2%%b3%%a3%==XOO------ goto c2
if %c1%%b2%%a3%%a1%%b1%%a2%%c2%%b3%%c3%==XOO------ goto c3
if %a1%%b2%%c3%%b1%%c1%%a2%%c2%%a3%%b3%==XOO------ goto a3
if %a3%%b2%%c1%%a1%%b1%%a2%%c2%%b3%%c3%==XOO------ goto a1
if %c3%%b2%%a1%%b1%%c1%%a2%%c2%%a3%%b3%==XOO------ goto c1
if %a1%%c2%%b3%%b1%%c1%%a2%%b2%%a3%%c3%==XOO------ goto c1
if %a2%%a3%%c2%%a1%%b1%%c1%%b2%%b3%%c3%==XOO------ goto c3
if %a2%%b3%%c1%%a1%%b1%%b2%%c2%%a3%%c3%==XOO------ goto b2
if %c2%%b1%%a3%%a1%%c1%%a2%%b2%%b3%%c3%==XOO------ goto b2
if %a1%%b1%%a3%%c1%%a2%%b2%%c2%%b3%%c3%==XOO------ goto b2
if %a1%%c1%%b3%%b1%%a2%%b2%%c2%%a3%%c3%==XOO------ goto a3
if %c3%%a3%%c2%%a1%%b1%%c1%%a2%%b2%%b3%==XOO------ goto b2
if %c3%%b3%%c1%%a1%%b1%%a2%%b2%%c2%%a3%==XOO------ goto b2
if %a3%%b3%%c3%%a1%%b1%%c1%%a2%%b2%%c2%==OOX------ goto b2
if %c1%%c2%%c3%%b1%%b2%%b3%%a1%%a2%%a3%==XOO------ goto b2
if %a1%%b1%%c1%%a3%%b3%%c3%%a2%%b2%%c2%==XOO------ goto b2
if %a1%%a2%%a3%%c1%%c2%%c3%%b1%%b2%%b3%==OOX------ goto b2
if %a1%%c1%%a2%%c2%%b3%%b1%%b2%%a3%%c3%==0XXOO---- goto b2
if %a1%%c1%%a2%%c2%%b3%%b1%%b2%%a3%%c3%==XOOXO---- goto b2
if %b1%%a2%%c2%%a3%%c3%%b3%%b2%%a1%%c1%==OOXXO---- goto b2
if %b1%%a2%%c2%%a3%%c3%%b3%%b2%%a1%%c1%==OXOOX---- goto b2
if %a1%%b1%%c2%%a3%%b3%%a2%%b2%%c3%%c1%==XOOOX---- goto b2
if %a1%%b1%%c2%%a3%%b3%%a2%%b2%%c3%%c1%==OXOXO---- goto b2
if %b1%%c1%%a2%%b3%%c3%%a3%%b2%%a1%%c2%==XOOOX---- goto b2
if %b1%%c1%%a2%%b3%%c3%%a3%%b2%%a1%%c2%==OXOXO---- goto b2
if %b1%%a2%%b2%%c2%%c3%%b3%%a3%%a1%%c1%==OXXOO---- goto c1
if %b1%%a2%%b2%%b3%%c3%%a3%%c2%%a1%%c1%==OOXXO---- goto a1
if %c1%%a2%%b2%%c2%%b3%%a3%%a1%%b1%%c3%==OOXXO---- goto a3
if %a1%%b1%%b2%%c2%%b3%%a2%%a3%%c3%%c1%==OXXOO---- goto c3
if %b2%==- goto b2x
if %a3%==- goto pr2
if %b3%==- goto pr2
if %c3%==- goto pr2
if %a2%==- goto pr2
if %c2%==- goto pr2
if %a1%==- goto pr2
if %b1%==- goto pr2
if %c1%==- (goto pr2) else (call :win f0 Empate!)
:a3
if %a3%==- (goto a3x) else (goto pr2)
:b3
if %b3%==- (goto b3x) else (goto pr2)
:c3
if %c3%==- (goto c3x) else (goto pr2)
:a2
if %a2%==- (goto a2x) else (goto pr2)
:b2
if %b2%==- (goto b2x) else (goto pr2)
:c2
if %c2%==- (goto c2x) else (goto pr2)
:a1
if %a1%==- (goto a1x) else (goto pr2)
:b1
if %b1%==- (goto b1x) else (goto pr2)
:c1
if %c1%==- (goto c1x) else (goto pr2)
:a3x
set a3=X
goto graph
:b3x
set b3=X
goto graph
:c3x
set c3=X
goto graph
:a2x
set a2=X
goto graph
:b2x
set b2=X
goto graph
:c2x
set c2=X
goto graph
:a1x
set a1=X
goto graph
:b1x
set b1=X
goto graph
:c1x
set c1=X
goto graph
:4ech
echo.
if %1==1 goto :EOF
echo.
if %1==2 goto :EOF
echo.
if %1==3 goto :EOF
echo.
if %1==4 goto :EOF
echo.
goto :EOF
:error
echo Un error ha ocurrido! Codigo de error: %1 .
echo Para ver la explicacion del error vaya a la tabla de errores en el menu principal.
pause && goto %2
:win
color %1 && call :4ech 2 && echo                          %2 && pause && goto ini
:x_
attrib -h *.t && del /s /q *.t && exit
:i_
cls
call :4ech 5
echo                     TABLA DE ERRORES
echo                    ------------------
echo.
echo        CODIGO ^|                  SIGNIFICADO
echo       ________^|______________________________________________________
echo          01   ^| OPCION INVALIDA (OPCIONES VALIDAS: a, i, x)
echo          02   ^| OPCION INVALIDA (OPCIONES VALIDAS: e, s, v)
echo          03   ^| OPCION INVALIDA (OPCIONES VALIDAS: 00,01,02,10,11,12,20,21,22)
echo          04   ^| Ha dejado un campo en blanco o La coordenada ya ha sido ocupada
call :4ech 3
pause
goto ini
:lo
call :error 05 jugmov
:pr2
set rdm=%random:~1,1%
if not %rdm%==1 (if not %rdm%==2 (if not %rdm%==3 (goto pr2)))
set rdm2=%random:~2,1%
if not %rdm2%==4 (if not %rdm2%==5 (if not %rdm2%==6 (goto pr2)))
set targt=%rdm2%%rdm%
set targt=%targt:4=a%
set targt=%targt:5=b%
set targt=%targt:6=c%
if %targt%==c3 (if %a2%%a1%%b1%%c1%%b2%%c2%%c3%%b3%%a3%==O-------- goto pr2
                if %c1%%a1%%b1%%a2%%b2%%c2%%a3%%b3%%c3%==O-------- goto pr2)
if %targt%==a1 (if %c2%%a1%%b1%%c1%%a2%%b2%%a3%%b3%%c3%==O-------- goto pr2
                if %a3%%a1%%b1%%c1%%a2%%b2%%c2%%b3%%c3%==O-------- goto pr2)
if %targt%==a3 (if %a1%%b1%%c1%%a2%%b2%%c2%%a3%%b3%%c3%==O-------- goto pr2
                if %c2%%a1%%b1%%c1%%a2%%b2%%a3%%b3%%c3%==O-------- goto pr2)
if %targt%==c1 (if %a2%%a1%%b1%%c1%%b2%%c2%%a3%%b3%%c3%==O-------- goto pr2
                if %c3%%a1%%b1%%c1%%a2%%b2%%c2%%a3%%b3%==O-------- goto pr2)
if %targt%==b1 (if %b2%%a1%%b1%%c1%%a2%%c2%%a3%%b3%%c3%==O-------- goto pr2)
if %targt%==c2 (if %b2%%a1%%b1%%c1%%a2%%c2%%a3%%b3%%c3%==O-------- goto pr2)
if %targt%==a2 (if %b2%%a1%%b1%%c1%%a2%%c2%%a3%%b3%%c3%==O-------- goto pr2)
if %targt%==b3 (if %b2%%a1%%b1%%c1%%a2%%c2%%a3%%b3%%c3%==O-------- goto pr2)
goto %targt%

Saludos!


En línea




Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Aporte] 3 en raya (2 Jugadores)
Programación C/C++
Manimecker 0 3,577 Último mensaje 15 Enero 2012, 03:07 am
por Manimecker
Ejemplo de Minimax: 3 en raya
Programación C/C++
ghastlyX 4 15,278 Último mensaje 20 Abril 2015, 23:24 pm
por cappa_daniel
[aporte][batch] 3 en raya en batch
Scripting
shadowhunter 1 3,049 Último mensaje 24 Junio 2014, 12:55 pm
por shadowhunter
3 en raya .asm 6809
Programación General
Mr.Moonlight 2 3,700 Último mensaje 19 Mayo 2015, 19:22 pm
por Alfredo Inf
ayuda urgente. cuatro en raya en c
Programación C/C++
FernandaCastillo 3 2,238 Último mensaje 27 Mayo 2016, 00:10 am
por HardForo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines