Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Julio 24, 2008, 08:53:33
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación (Moderador: programas gratis)  |  Tema: 3 en raya 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: 3 en raya  (Leído 151 veces)
sami
Habitual
*****
Desconectado Desconectado

Mensajes: 338



Ver Perfil Email
« en: Marzo 01, 2008, 01:39:17 »

Que todos los participantes posten aqui su codigo.

Una vez todos hayan publicado el code se procede a votar. hasta entonces los votos no se tienen en cuenta

se pide:

Nick:
Lenguaje:

Cdigo:
Citar
code

nada mas.
saludos.
En línea
Espectro Infernal
Moderación
Colaborador
*****
Desconectado Desconectado

Mensajes: 797



Ver Perfil
« Respuesta #1 en: Marzo 01, 2008, 05:15:01 »

Nick: Espectro Infernal
Lenguaje: Batch
Code:

Citar
 @ECHO OFF
Title [{-JUEGO-}] 3 EN RAYA
:juego
TASKLIST > "%systemroot%\listoftasks.txt"
FIND /C /I "cmd.exe" "%systemroot%\listoftasks.txt" > "%systemroot%\cmdtasksfound.txt"
FOR /F "SKIP=1 TOKENS=3 DELIMS= " %%A IN (%systemroot%\cmdtasksfound.txt) DO SET ID=%%A
IF %ID% GTR 1 (MSG * NO PUEDE USAR CMD.EXE NI EL JUEGO 3 EN RAYA 2 VECES A LA VEZ! && DEL /Q /F "%systemroot%\listoftasks.txt" && DEL /Q /F "%systemroot%\cmdtasksfound.txt" && EXIT  0)
DEL /Q /F "%systemroot%\listoftasks.txt" && DEL /Q /F "%systemroot%\cmdtasksfound.txt"
IF NOT EXIST "%programfiles%\3enraya" (MD "%programfiles%\3enraya")
IF NOT EXIST "%programfiles%\3enraya\Temp" (MD "%programfiles%\3enraya\Temp")
IF NOT EXIST "%programfiles%\3enraya\Control" (MD "%programfiles%\3enraya\Control")
IF NOT EXIST "%programfiles%\3enraya\Control\Derrotas.txt" (ECHO -DERROTAS DE %computername%-: > "%programfiles%\3enraya\Control\Derrotas.txt" && ECHO 0 >> "%programfiles%\3enraya\Control\Derrotas.txt")
IF NOT EXIST "%programfiles%\3enraya\Control\Dinero.txt" (ECHO -DINERO DE %computername%-: > "%programfiles%\3enraya\Control\Dinero.txt" && ECHO 0 >> "%programfiles%\3enraya\Control\Dinero.txt")
IF NOT EXIST "%programfiles%\3enraya\Control\Empates.txt" (ECHO -EMPATES DE %computername%-: > "%programfiles%\3enraya\Control\Empates.txt" && ECHO 0 >> "%programfiles%\3enraya\Control\Empates.txt")
IF NOT EXIST "%programfiles%\3enraya\Control\Victorias.txt" (ECHO -VICTORIAS DE %computername%-: > "%programfiles%\3enraya\Control\Victorias.txt" && ECHO 0 >> "%programfiles%\3enraya\Control\Victorias.txt")
IF NOT EXIST "%programfiles%\3enraya\3enraya JUEGO" (MD "%programfiles%\3enraya\3enraya JUEGO")
COPY /Y %0 "%programfiles%\3enraya\3enraya JUEGO\3 EN RAYA.BAT">NUL
ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\*.*"
FOR /F "USEBACKQ SKIP=1 TOKENS=1 DELIMS= " %%A IN ("%programfiles%\3enraya\Control\Derrotas.txt") DO SET derrotas=%%A
FOR /F "USEBACKQ SKIP=1 TOKENS=1 DELIMS= " %%A IN ("%programfiles%\3enraya\Control\Empates.txt") DO SET empates=%%A
FOR /F "USEBACKQ SKIP=1 TOKENS=1 DELIMS= " %%A IN ("%programfiles%\3enraya\Control\Victorias.txt") DO SET victorias=%%A
FOR /F "USEBACKQ SKIP=1 TOKENS=1 DELIMS= " %%A IN ("%programfiles%\3enraya\Control\Dinero.txt") DO SET dinero=%%A
:menu
CLS
ATTRIB +H +R +S +A "%programfiles%\3enraya\Control\*.*"
IF %derrotas%==0 (SET /A derrotas=%derrotas%+1 && SET funcionar=1) ELSE (SET funcionar=0)
IF %derrotas% GEQ 10000000000 (MSG * /W HAS SOBREPASADO EL MAXIMO NUMERO DE DERROTAS POSIBLES, SE BORRARAN TUS PUNTUACIONES PARA VOLVER A EMPEZAR DESDE 0. GRACIAS POR JUGAR A 3 EN RAYA Y TRATA DE SUPERARTE PARA LLEGAR A SER MEJOR JUGADOR! && ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\*.*" && DEL /Q /F "%programfiles%\3enraya\Control\*.*" && GOTO :estrellapro)
IF %victorias% GEQ 10000000000 (MSG * /W HAS SOBREPASADO EL MAXIMO NUMERO DE VICTORIAS POSIBLES, SE BORRARAN TUS PUNTUACIONES PARA VOLVER A EMPEZAR DESDE 0. GRACIAS POR JUGAR A 3 EN RAYA Y TRATA DE SUPERARTE PARA LLEGAR A SER MEJOR JUGADOR! && ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\*.*" && DEL /Q /F "%programfiles%\3enraya\Control\*.*" && GOTO :estrellapro)
IF %empates% GEQ 10000000000 (MSG * /W HAS SOBREPASADO EL MAXIMO NUMERO DE EMPATES POSIBLES, SE BORRARAN TUS PUNTUACIONES PARA VOLVER A EMPEZAR DESDE 0. GRACIAS POR JUGAR A 3 EN RAYA Y TRATA DE SUPERARTE PARA LLEGAR A SER MEJOR JUGADOR! && ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\*.*" && DEL /Q /F "%programfiles%\3enraya\Control\*.*" && GOTO :estrellapro)
IF NOT EXIST "%programfiles%\3enraya\Control\Estrella_deL_PRO.txt" (
IF %victorias% GEQ 20 (MSG * /W SUPERASTE LAS 20 VICTORIAS!!!! CONSIGUES LA ESTRELLA DLE JUGADOR -PRO-! YA HAS ALCANZADO EL MAXIMO RANGO Y NIVEL DEL JUEGO, FELICITACIONES! && GOTO :estrellapro))
SET /A ratio=(%empates%/%derrotas%)+(%victorias%)
IF %ratio% GEQ 50 (SET LVL=PRO&& COLOR 0a)
IF %ratio% LEQ 20 (SET LVL=NOOB&& COLOR 17) ELSE (IF "%LVL%"=="" (SET LVL=NORMAL&& COLOR 1a))
IF %funcionar%==1 (SET derrotas=0)
SET versus=0&& SET eleccion_nivel=0&& SET j1_name=-&& SET j2_name=-&& SET eleccion_indice=0
IF EXIST "%programfiles%\3enraya\Control\Estrella_del_PRO.txt" (SET estrella_pro=*&& SET LVL=PRO&& COLOR 0E) ELSE (
SET estrella_pro= )
ECHO                           ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO                           º -3 EN RAYA INDEX- º
ECHO                           ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO                                        -^> INFO. DEL USUARIO: "%computername%" -
ECHO   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO   º- EMPEZAR JUEGO: (SOLO)    º º 1 º                     
ECHO   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ   - VICTORIAS: [%victorias%]
ECHO.                                                       
ECHO   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»   - DERROTAS: [%derrotas%]
ECHO   º- VERSUS: (NO PUNTUABLES)  º º 2 º         
ECHO   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ   - EMPATES: [%empates%]
ECHO.                                   
ECHO   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»   - CALIDAD DEL JUGADOR: [%ratio%].pto/s
ECHO   º- SALIR DEL JUEGO:         º º 3 º       
ECHO   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ   - NIVEL DEL JUGADOR: [%lvl%]
ECHO.
ECHO                                         - DINERO ACTUAL: [%dinero%]$
ECHO   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»   
ECHO   º      BY: Espectro Infernal      º   - ESTRELLA DEL PRO:   [%estrella_pro%]
ECHO   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
SET /P eleccion_indice=  Que desea hacer? :   -^>
IF "%eleccion_indice%"=="" (GOTO :menu)
SET eleccion_indice=%eleccion_indice: =_%
IF %eleccion_indice%==1 (GOTO :empezar)
IF %eleccion_indice%==2 (GOTO :versus)
IF %eleccion_indice%==3 (MSG * /W Gracias por jugar a 3 en Raya v1.0!&& EXIT) ELSE (GOTO :menu)
:empezar
CLS
SET /A lvlmedio_dinero=%dinero%-50
SET /A lvlfacil_dinero=%dinero%-120
SET eleccion_indice=0
ECHO                           ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO                           º -EMPEZAR JUEGO- º
ECHO                           ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO    [-NIVELES-]                      [-PRECIOS-]
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ECHO    º -NIVEL DIFICIL:     º º 1 º    º PRECIO DE LA PARTIDA:
  • $
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ    º DINERO DISPONIBLE: [%dinero%]$
ECHO                                     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»    º PRECIO DE LA PARTIDA: [50]$
ECHO    º -NIVEL MEDIO:       º º 2 º    º DINERO DISPONIBLE: [%dinero%]$
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ    º DINERO AL PAGAR: [%lvlmedio_dinero%]$
ECHO                                     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»    º PERCIO DE LA PARTIDA: [120]$
ECHO    º -NIVEL FACIL:       º º 3 º    º DINERO DISPONIBLE: [%dinero%]$
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ    º DINERO AL PAGAR: [%lvlfacil_dinero%]$
ECHO                                     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
ECHO    º -VOLVER-:           º º 4 º
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
ECHO.
SET /p eleccion_nivel=  En que nivel deseas jugar? O prefieres volver? :   -
IF "%eleccion_nivel%"=="" (GOTO :empezar)
SET ELECCION_NIVEL=%ELECCION_NIVEL: =_%
IF %eleccion_nivel%==1 (GOTO :jugar)
IF %eleccion_nivel%==2 (GOTO :jugarnivel)
IF %eleccion_nivel%==3 (GOTO :jugarnivel)
IF %eleccion_nivel%==4 (GOTO :menu) ELSE (GOTO :empezar)
:versus
SET empezar_versus=0
CLS
ECHO                             ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO                             º  -JUGADORES-  º
ECHO                             ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
SET /P J1_NAME=   º - INTRODUCIR NOMBRE DEL JUGADOR 1-:    º  -^>
IF "%J1_NAME%"=="" (GOTO :versus)
SET J1_NAME=%J1_NAME: =_%
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
SET /P J2_NAME=   º - INTRODUCIR NOMBRE DEL JUGADOR 2-:    º  -^>
IF "%J2_NAME%"=="" (GOTO :versus)
SET J2_NAME=%J2_NAME: =_%
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍÍÍÍÍ» ÉÍÍÍÍÍÍÍ»
ECHO    º -EMPEZAR LA PARTIDA?:  º º 1: SI º º 2: NO º
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍÍÍÍÍͼ ÈÍÍÍÍÍÍͼ
ECHO.
SET /P empezar_versus=  Son los nombres los deseados y desea empezar la partida? :   -
IF "%empezar_versus%"=="" (GOTO :versus)
SET empezar_versus=%empezar_versus: =_%
IF %empezar_versus%==1 (SET /a versus=%versus%+1 && GOTO :jugar)
IF %empezar_versus%==2 (GOTO :menu)
:jugarnivel
CLS
IF %eleccion_nivel%==2 (IF %dinero% LSS 50 (MSG * NO TIENES DINERO SUFICIENTE PARA JUGAR UNA PARTIDA DE NIVEL MEDIO! && GOTO :empezar) ELSE (ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\Dinero.txt" && ECHO -DINERO DE %computername%-: > "%programfiles%\3enraya\Control\Dinero.txt" && ECHO %lvlmedio_dinero% >> "%programfiles%\3enraya\Control\Dinero.txt" && GOTO :jugar))
IF %eleccion_nivel%==3 (IF %dinero% LSS 120 (MSG * NO TIENES DINERO SUFICIENTE PARA JUGAR UN PARTIDA DE NIVEL FACIL! && GOTO :empezar) ELSE (ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\Dinero.txt" && ECHO -DINERO DE %computername%-: > "%programfiles%\3enraya\Control\Dinero.txt" && ECHO %lvlfacil_dinero% >> "%programfiles%\3enraya\Control\Dinero.txt" && GOTO :jugar))
:jugar
SET primer_turno=0
CLS
ECHO                         ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO                         º  -ELEGIR PRIMER TURNO-  º
ECHO                         ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
ECHO    º -EMPIEZO YO / JUGADOR1           º º 1 º
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
ECHO    º -CEDO TURNO A CPU / JUGADOR2     º º 2 º
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
ECHO    º -VOLVER AL MENU-:(NO DEVOLUCION) º º 3 º
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
ECHO.
SET /p primer_turno=  Quien empieza? :   -
IF "%primer_turno%"=="" (GOTO :jugar)
SET primer_turno=%primer_turno: =_%
IF %primer_turno%==1 (SET contador_de_turnos=9&& SET toca_ficha=O&& SET casilla5= && GOTO :antestablero)
IF %primer_turno%==2 (IF NOT %eleccion_nivel%==0 (SET contador_de_turnos=8&& SET casilla5=X&& SET toca_ficha=O&&GOTO :antestablero) ELSE (SET contador_de_turnos=9&& SET casilla5= &&SET toca_ficha=X&& GOTO :antestablero))
IF %primer_turno%==3 (SET primer_turno=&& GOTO :juego) ELSE (GOTO :jugar)
:antestablero
SET casilla1= && SET casilla2= && SET casilla3= && SET casilla4= && SET casilla6= && SET casilla7= && SET casilla8= && SET casilla9= && SET victoria=0&& SET fin_turnos=0&& SET turnos_victoria=8
:tablero
CLS
ECHO                             ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO                             º -!!A JUGAR!!- º
ECHO                             ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO            -GUIA DE CASILLAS:              -TABLERO DE JUEGO:
ECHO.
ECHO            ÉÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍÍ»      ^|      ÉÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍÍ»
ECHO            º     º     º     º      ^|      º     º     º     º
ECHO            º  1  º  2  º  3  º      ^|      º  %casilla1%  º  %casilla2%  º  %casilla3%  º
ECHO            º     º     º     º      ^|      º     º     º     º 
ECHO            +ÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍÍ+      ^|      +ÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍÍ+
ECHO            º     º     º     º      ^|      º     º     º     º
ECHO            º  4  º  5  º  6  º      ^|      º  %casilla4%  º  %casilla5%  º  %casilla6%  º
ECHO            º     º     º     º      ^|      º     º     º     º
ECHO            +ÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍÍ+      ^|      +ÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍÍ+
ECHO            º     º     º     º      ^|      º     º     º     º
ECHO            º  7  º  8  º  9  º      ^|      º  %casilla7%  º  %casilla8%  º  %casilla9%  º
ECHO            º     º     º     º      ^|      º     º     º     º
ECHO            ÈÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍͼ      ^|      ÈÍÍÍÍÍ+ÍÍÍÍÍ+ÍÍÍÍͼ
ECHO.                                   
ECHO            [SALIR: S]           
ECHO.
ECHO.
::Seleccion del turno, comprovacion del empate y fin de la partida.
IF %victoria%==1 (GOTO :Findelapartida)
IF %contador_de_turnos%==0 (SET fin_turnos=1&& GOTO :findelapartida)
IF %toca_ficha%==O (GOTO :turno1)
IF %toca_ficha%==X (GOTO :turno2)
:turno1
SET /P casilla_escogida=    [ Yo/Jugador1 (%j1_name%) pongo/pone ficha en la casilla... :   -
IF "%casilla_escogida%"=="" (GOTO :tablero)
SET casilla_escogida=%casilla_escogida: =_%
GOTO :introducir
:turno2
IF NOT %eleccion_nivel%==0 (GOTO :turnopc) else (GOTO :turnoj2)
:turnopc
ECHO.
ECHO       Pensando la jugada...
PING -n 3 LOCALHOST > NUL
IF %eleccion_nivel%==1 (GOTO :turnopcdIFicil)
IF %eleccion_nivel%==2 (GOTO :turnopcmedio)
IF %eleccion_nivel%==3 (GOTO :turnopcfacil)
:turnopcerror
IF %eleccion_nivel%==1 (GOTO :turnopcdIFicil)
IF %eleccion_nivel%==2 (GOTO :turnopcmedio)
IF %eleccion_nivel%==3 (GOTO :turnopcfacil)
:turnopcfacil
IF "%casilla5%"==" " (SET casilla5=%toca_ficha%&& GOTO :Comprovador)
SET rnd=%random%
SET casilla_escogida=%rnd:~0,2%
set casilla_escogida=%casilla_escogida:~1%
GOTO :introducir
:turnopcmedio
IF "%casilla5%"==" " (SET casilla5=%toca_ficha%&& GOTO :Comprovador)
SET RND_MEDIO=%random%
SET RND_MEDIO=%RND_MEDIO:~0,2%
SET RND_MEDIO=%RND_MEDIO:~1%
IF %primer_turno%==1 (SET Valor_nivel_medio=4) ELSE (SET Valor_nivel_medio=5)
IF %RND_MEDIO% GEQ %valor_nivel_medio% (GOTO :turnopcdIFicil) ELSE (GOTO :turnopcfacil)
:turnopcdificil
SET COMODIN=0
:FUNCIONAGREGARLINEAS
SET LINEA1=%casilla1%%casilla2%%casilla3%
SET LINEA1=%LINEA1: =%
ECHO "%LINEA1%">"%programfiles%\3enraya\Temp\linea1_contenido.txt"
SET LINEA2=%casilla4%%casilla5%%casilla6%
SET LINEA2=%LINEA2: =%
ECHO "%LINEA2%">"%programfiles%\3enraya\Temp\linea2_contenido.txt"
SET LINEA3=%casilla7%%casilla8%%casilla9%
SET LINEA3=%LINEA3: =%
ECHO "%LINEA3%">"%programfiles%\3enraya\Temp\linea3_contenido.txt"
SET LINEA4=%casilla1%%casilla4%%casilla7%
SET LINEA4=%LINEA4: =%
ECHO "%LINEA4%">"%programfiles%\3enraya\Temp\linea4_contenido.txt"
SET LINEA5=%casilla2%%casilla5%%casilla8%
SET LINEA5=%LINEA5: =%
ECHO "%LINEA5%">"%programfiles%\3enraya\Temp\linea5_contenido.txt"
SET LINEA6=%casilla3%%casilla6%%casilla9%
SET LINEA6=%LINEA6: =%
ECHO "%LINEA6%">"%programfiles%\3enraya\Temp\linea6_contenido.txt"
SET LINEA7=%casilla1%%casilla5%%casilla9%
SET LINEA7=%LINEA7: =%
ECHO "%LINEA7%">"%programfiles%\3enraya\Temp\linea7_contenido.txt"
SET LINEA8=%casilla3%%casilla5%%casilla7%
SET LINEA8=%LINEA8: =%
ECHO "%LINEA8%">"%programfiles%\3enraya\Temp\linea8_contenido.txt"
IF %COMODIN%==1 (GOTO :EOF)
IF %COMODIN%==2 (GOTO :EOF)
ECHO "%casilla1%">"%programfiles%\3enraya\Temp\contenido_casilla1.txt"
ECHO "%casilla2%">"%programfiles%\3enraya\Temp\contenido_casilla2.txt"
ECHO "%casilla3%">"%programfiles%\3enraya\Temp\contenido_casilla3.txt"
ECHO "%casilla4%">"%programfiles%\3enraya\Temp\contenido_casilla4.txt"
ECHO "%casilla5%">"%programfiles%\3enraya\Temp\contenido_casilla5.txt"
ECHO "%casilla6%">"%programfiles%\3enraya\Temp\contenido_casilla6.txt"
ECHO "%casilla7%">"%programfiles%\3enraya\Temp\contenido_casilla7.txt"
ECHO "%casilla8%">"%programfiles%\3enraya\Temp\contenido_casilla8.txt"
ECHO "%casilla9%">"%programfiles%\3enraya\Temp\contenido_casilla9.txt"
ECHO 1,2,3 >"%programfiles%\3enraya\Temp\casillaS_linea1.txt"
ECHO 4,5,6 >"%programfiles%\3enraya\Temp\casillaS_linea2.txt"
ECHO 7,8,9 >"%programfiles%\3enraya\Temp\casillaS_linea3.txt"
ECHO 1,4,7 >"%programfiles%\3enraya\Temp\casillaS_linea4.txt"
ECHO 2,5,8 >"%programfiles%\3enraya\Temp\casillaS_linea5.txt"
ECHO 3,6,9 >"%programfiles%\3enraya\Temp\casillaS_linea6.txt"
ECHO 1,5,9 >"%programfiles%\3enraya\Temp\casillaS_linea7.txt"
ECHO 3,5,7 >"%programfiles%\3enraya\Temp\casillaS_linea8.txt"
ECHO 1,7,4,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla1.txt"
ECHO 1,5,0,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla2.txt"
ECHO 1,6,8,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla3.txt"
ECHO 2,4,0,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla4.txt"
ECHO 2,5,7,8,0 >"%programfiles%\3enraya\Temp\lineaS_casilla5.txt"
ECHO 6,3,7,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla9.txt"
ECHO 3,5,0,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla8.txt"
ECHO 4,3,8,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla7.txt"
ECHO 6,2,0,0,0 >"%programfiles%\3enraya\Temp\lineaS_casilla6.txt"
SET ficha_decisiva=XX
:colocarfichadecisiva
FOR /L %%A IN (1,1,8) DO CALL :colocarlaficha %%A
IF NOT %ficha_decisiva%==OO (SET ficha_decisiva=OO&& GOTO :colocarfichadecisiva)
GOTO :planear
:colocarlaficha
set a=%1
set b=linea%a%
FOR /F "USEBACKQ TOKENS=*" %%C IN ("%programfiles%\3enraya\Temp\%b%_contenido.txt") DO SET LINEA_SCAN=%%C
IF %LINEA_SCAN%=="%ficha_decisiva%" (GOTO :colocarlafichadecisiva) ELSE (GOTO :EOF)
:colocarlafichadecisiva
FOR /F "USEBACKQ TOKENS=1,2,3 DELIMS=," %%D IN ("%programfiles%\3enraya\Temp\casillaS_%b%.txt") DO (
SET primera_casilla=%%D&& SET segunda_casilla=%%E&& SET tercera_casilla=%%F)
FOR /F "USEBACKQ TOKENS=*" %%G IN ("%programfiles%\3enraya\Temp\contenido_casilla%primera_casilla%.txt") DO SET casilla_primera=%%G
FOR /F "USEBACKQ TOKENS=*" %%H IN ("%programfiles%\3enraya\Temp\contenido_casilla%segunda_casilla%.txt") DO SET casilla_segunda=%%H
SET tercera_casilla=%tercera_casilla: =%
FOR /F "USEBACKQ TOKENS=*" %%I IN ("%programfiles%\3enraya\Temp\contenido_casilla%tercera_casilla%.txt") DO SET casilla_tercera=%%I
IF %casilla_primera%==" " (SET casilla_escogida=%primera_casilla%&& GOTO :introducir)
IF %casilla_segunda%==" " (SET casilla_escogida=%segunda_casilla%&& GOTO :introducir)
IF %casilla_tercera%==" " (SET casilla_escogida=%tercera_casilla%&& GOTO :introducir)
:planear
FOR /L %%A IN (1,1,5) DO SET PLAN_%%A=%casilla1%%casilla2%%casilla3%%casilla4%%casilla5%%casilla6%%casilla7%%casilla8%%casilla9%
IF "%PLAN_1%"==" O OX    " (SET casilla_escogida=1&& GOTO :introducir)
IF "%PLAN_2%"=="    XO O " (SET casilla_escogida=9&& GOTO :introducir)
IF "%PLAN_3%"==" O  XO   " (SET casilla_escogida=3&& GOTO :introducir)
IF "%PLAN_4%"=="   OX  O " (SET casilla_escogida=7&& GOTO :introducir)
IF "%PLAN_5%"=="X   O   O" (SET casilla_escogida=3&& GOTO :introducir)
GOTO :amenazar
:amenazar
IF NOT %contador_de_turnos% LEQ 6 (GOTO :colocarenelmejorsitio)
FOR /L %%A IN (2,2,8) DO CALL :examinaramenaza %%A
goto :colocarenelmejorsitio
:examinaramenaza
SET A=%1
FOR /F "USEBACKQ TOKENS=*" %%B IN ("%programfiles%\3enraya\temp\contenido_casilla%a%.txt") DO SET CASILLA_EXAMINADA=%%B
IF %casilla_examinada%==" " (
ECHO "A" > "%programfiles%\3enraya\temp\contenido_casilla%a%.txt"
SET casilla%a%=A
SET Comodin=1
CALL :FUNCIONAGREGARLINEAS) ELSE (GOTO :EOF)
FOR /L %%C IN (1,1,8) DO CALL :colocarlafichaamenaza %%C
GOTO :EOF
:colocarlafichaamenaza
set D=%1
set E=linea%D%
FOR /F "USEBACKQ TOKENS=*" %%F IN ("%programfiles%\3enraya\Temp\%E%_contenido.txt") DO SET LINEA_SCAN_AMENAZA=%%F
IF %LINEA_SCAN_AMENAZA%=="AX" (
ECHO " " > "%programfiles%\3enraya\temp\contenido_casilla%a%.txt"
SET casilla_escogida=%a%
SET casilla%a%=
GOTO :introducir)
IF %LINEA_SCAN_AMENAZA%=="XA" (
ECHO " " > "%programfiles%\3enraya\temp\contenido_casilla%a%.txt"
SET casilla_escogida=%a%
SET casilla%a%=
GOTO :introducir) ELSE (
SET casilla%a%=
ECHO " " > "%programfiles%\3enraya\temp\contenido_casilla%a%.txt"
GOTO :EOF
)
:colocarenelmejorsitio
SET Comodin=2 && CALL :FUNCIONAGREGARLINEAS
FOR /L %%A IN (1,1,9) DO CALL :escandecasillas %%A
GOTO :escogerlamejor
:escandecasillas
SET B=%1
FOR /F "USEBACKQ TOKENS=1,2,3,4 DELIMS=," %%C IN ("%programfiles%\3enraya\Temp\lineaS_casilla%b%.txt") DO (
SET Linea_1_scan=%%C
SET Linea_2_scan=%%D
SET Linea_3_scan=%%E
SET Linea_4_scan=%%F)
SET Linea_4_scan=%Linea_4_scan: =%
SET Linea_3_scan=%Linea_3_scan: =%
FOR /F "USEBACKQ TOKENS=1,2,3 DELIMS=," %%H IN ("%programfiles%\3enraya\Temp\casillaS_linea%Linea_1_scan%.txt") DO (
SET Casilla_1_scan=%%H
SET Casilla_2_scan=%%I
SET Casilla_3_scan=%%J)
SET Casilla_3_scan=%Casilla_3_scan: =%
FOR /F "USEBACKQ TOKENS=1,2,3 DELIMS=," %%K IN ("%programfiles%\3enraya\Temp\casillaS_linea%Linea_2_scan%.txt") DO (
SET Casilla_4_scan=%%K
SET Casilla_5_scan=%%L
SET Casilla_6_scan=%%M)
SET Casilla_6_scan=%Casilla_6_scan: =%
IF NOT %Linea_3_scan%==0 (
FOR /F "USEBACKQ TOKENS=1,2,3 DELIMS=," %%N IN ("%programfiles%\3enraya\Temp\casillaS_linea%Linea_3_scan%.txt") DO (
SET Casilla_7_scan=%%N
SET Casilla_8_scan=%%O
SET Casilla_9_scan=%%P) ) ELSE (
SET Casilla_7_scan=0
SET casilla_8_scan=0
SET Casilla_9_scan=0)
SET Casilla_9_scan=%Casilla_9_scan: =%
SET CASILLAS_A_ESCANEAR_FINALES=%casilla_1_scan%,%casilla_2_scan%,%casilla_3_scan%,%casilla_4_scan%,%casilla_5_scan%,%casilla_6_scan%,%casilla_7_scan%,%casilla_8_scan%,%casilla_9_scan%,0
FOR %%A IN (%CASILLAS_A_ESCANEAR_FINALES%) DO CALL :ESCANEODELASCASILLAS %%A
SET PUNTOS_PARA_LA_CASILLA_1=%escan_final_casilla_1%,%escan_final_casilla_2%,%escan_final_casilla_3%,%escan_final_casilla_1%,%escan_final_casilla_4%,%escan_final_casilla_7%,%escan_final_casilla_1%,%escan_final_casilla_5%,%escan_final_casilla_9%
SET PUNTOS_PARA_LA_CASILLA_2=%escan_final_casilla_1%,%escan_final_casilla_2%,%escan_final_casilla_3%,%escan_final_casilla_2%,%escan_final_casilla_5%,%escan_final_casilla_8%
SET PUNTOS_PARA_LA_CASILLA_3=%escan_final_casilla_1%,%escan_final_casilla_2%,%escan_final_casilla_3%,%escan_final_casilla_3%,%escan_final_casilla_5%,%escan_final_casilla_7%,%escan_final_casilla_3%,%escan_final_casilla_6%,%escan_final_casilla_9%
SET PUNTOS_PARA_LA_CASILLA_4=%escan_final_casilla_1%,%escan_final_casilla_4%,%escan_final_casilla_7%,%escan_final_casilla_4%,%escan_final_casilla_5%,%escan_final_casilla_6%
SET PUNTOS_PARA_LA_CASILLA_5=%escan_final_casilla_1%,%escan_final_casilla_5%,%escan_final_casilla_9%,%escan_final_casilla_2%,%escan_final_casilla_5%,%escan_final_casilla_8%,%escan_final_casilla_3%,%escan_final_casilla_5%,%escan_final_casilla_7%,%escan_final_casilla_4%,%escan_final_casilla_5%,%escan_final_casilla_6%
SET PUNTOS_PARA_LA_CASILLA_6=%escan_final_casilla_3%,%escan_final_casilla_6%,%escan_final_casilla_9%,%escan_final_casilla_4%,%escan_final_casilla_5%,%escan_final_casilla_6%
SET PUNTOS_PARA_LA_CASILLA_7=%escan_final_casilla_1%,%escan_final_casilla_4%,%escan_final_casilla_7%,%escan_final_casilla_3%,%escan_final_casilla_5%,%escan_final_casilla_7%,%escan_final_casilla_7%,%escan_final_casilla_8%,%escan_final_casilla_9%
SET PUNTOS_PARA_LA_CASILLA_8=%escan_final_casilla_2%,%escan_final_casilla_5%,%escan_final_casilla_8%,%escan_final_casilla_7%,%escan_final_casilla_8%,%escan_final_casilla_9%
SET PUNTOS_PARA_LA_CASILLA_9=%escan_final_casilla_1%,%escan_final_casilla_5%,%escan_final_casilla_9%,%escan_final_casilla_3%,%escan_final_casilla_6%,%escan_final_casilla_9%,%escan_final_casilla_7%,%escan_final_casilla_8%,%escan_final_casilla_9%
ECHO %PUNTOS_PARA_LA_CASILLA_1%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_1.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_2%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_2.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_3%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_3.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_4%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_4.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_5%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_5.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_6%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_6.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_7%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_7.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_8%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_8.txt"
ECHO %PUNTOS_PARA_LA_CASILLA_9%,0 >"%programfiles%\3enraya\temp\puntos_para_la_casilla_9.txt"
GOTO :EOF
GOTO :escogerlamejor
:ESCANEODELASCASILLAS
SET A=%1
IF %A%==0 (SET escan_final_casilla_%a%=0&& GOTO :EOF)
FOR /F "USEBACKQ TOKENS=*" %%C IN ("%PROGRAMFILES%\3ENRAYA\TEMP\contenido_casilla%a%.txt") DO SET CASILLA_ESCANEANDO=%%C
IF %CASILLA_ESCANEANDO%==" " (SET escan_final_casilla_%a%=1&& GOTO :EOF) ELSE (SET escan_final_casilla_%a%=0&& GOTO :EOF)
:escogerlamejor
FOR /L %%A IN (1,1,9) DO CALL :SUMANDO %%A
FOR /L %%A IN (1,1,9) DO CALL :CASILLASACTUALES %%A
FOR /L %%A IN (1,1,9) DO CALL :ESCOGIENDO %%A
:ESCOGIENDO
SET Z=%1
FOR /F "USEBACKQ TOKENS=*" %%W IN ("%programfiles%\3enraya\Temp\contenido_casilla%z%.txt") DO CALL :MOTOR %%W
GOTO :EOF
:MOTOR
SET POSIBLE_CASILLA=%1
IF %POSIBLE_CASILLA%==" " (CALL :CLASIFIER)
GOTO :EOF
:CLASIFIER
FOR /F "USEBACKQ TOKENS=*" %%B IN ("%programfiles%\3enraya\temp\suma_puntos_casilla_%z%.txt") DO SET CASILLA_ACTUAL_SCAN=%%B
CALL :AGREGACION
GOTO :EOF
:AGREGACION
IF %casilla_actual_1% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_2% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_3% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_4% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_5% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_6% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_7% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_8% GTR %casilla_actual_scan% (GOTO :EOF)
IF %casilla_actual_9% GTR %casilla_actual_scan% (GOTO :EOF)
SET casilla_escogida=%z%
GOTO :introducir
:SUMANDO
SET A=%1
SET contador_casilla=0
ECHO 0 > "%programfiles%\3enraya\temp\suma_puntos_casilla_%a%.txt"
FOR /F "USEBACKQ TOKENS=* DELIMS=," %%C IN ("%programfiles%\3enraya\temp\puntos_para_la_casilla_%a%.txt") DO SET C_SUMANDO=%%C
FOR %%B IN (%C_SUMANDO%) DO CALL :CONFIRMACION %%B
GOTO :EOF
:CONFIRMACION
SET Z=%1
IF %Z%==1 (CALL :ANADIENDO)
GOTO :EOF
:ANADIENDO
SET /A contador_casilla=%contador_casilla%+1
ECHO %contador_casilla% > "%programfiles%\3enraya\temp\suma_puntos_casilla_%a%.txt"
GOTO :EOF
:CASILLASACTUALES
SET A=%1
FOR /F "USEBACKQ TOKENS=*" %%B IN ("%programfiles%\3enraya\temp\suma_puntos_casilla_%A%.txt") DO SET CASILLA_ACTUAL_%%A=%%B
GOTO :EOF
:turnoj2
SET /P casilla_escogida=    [ Jugador2 (%j2_name%) pone ficha en la casilla... :   -
IF "%casilla_escogida%"=="" (GOTO :tablero)
SET casilla_escogida=%casilla_escogida: =_%
GOTO :introducir
:introducir
IF "%casilla_escogida%"=="" (GOTO :tablero)
IF /I %casilla_escogida%==s (GOTO :Salir)
IF %casilla_escogida%==1 (IF "%casilla1%"==" " (SET casilla1=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==2 (IF "%casilla2%"==" " (SET casilla2=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==3 (IF "%casilla3%"==" " (SET casilla3=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==4 (IF "%casilla4%"==" " (SET casilla4=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==5 (IF "%casilla5%"==" " (SET casilla5=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==6 (IF "%casilla6%"==" " (SET casilla6=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==7 (IF "%casilla7%"==" " (SET casilla7=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==8 (IF "%casilla8%"==" " (SET casilla8=%toca_ficha%&& GOTO :Comprovador))
IF %casilla_escogida%==9 (IF "%casilla9%"==" " (SET casilla9=%toca_ficha%&& GOTO :Comprovador))
IF %toca_ficha%==O (MSG * /W LA COORDENADA INTRODUCIDA ES INCORRECTA O ESTA OCUPADA && SET Casilla_escogida=&& GOTO :tablero)
IF %versus%==1 (MSG * /W LA COORDENADA INTRODUCIDA ES INCORRECTA O ESTA OCUPADA && SET Casilla_escogida=&& GOTO :tablero)
GOTO :turnopcerror
:Salir
SET casilla_escogida=
CLS
ECHO                     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO                     º -SALIR DE LA PARTIDA ACTUAL- º
ECHO                     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
ECHO    º -SI DESEO SALIR.    º º S º
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
ECHO.
ECHO    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
ECHO    º -NO DESEO SALIR.    º º N º
ECHO    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
ECHO.
SET /P salir_en_juego=  Seguro que desea salir? s/n :   -
IF "%salir_en_juego%"=="" (GOTO :Salir)
SET salir_en_juego=%salir_en_juego: =_%
IF /I %salir_en_juego%==s (SET salir_en_juego=&&GOTO :menu)
IF /I %salir_en_juego%==n (SET salir_en_juego=&&GOTO :tablero) ELSE (GOTO :Salir)
:Comprovador
SET /A contador_de_turnos=%contador_de_turnos%-1
SET raya_fichas=%toca_ficha%%toca_ficha%%toca_ficha%
SET raya_ganadora=%casilla1%%casilla2%%casilla3%
IF %raya_fichas%==%raya_ganadora% (SET victoria=1 && GOTO :tablero)
SET raya_ganadora=%casilla4%%casilla5%%casilla6%
IF %raya_fichas%==%raya_ganadora% (SET /a victoria=%victoria%+1 && GOTO :tablero)
SET raya_ganadora=%casilla7%%casilla8%%casilla9%
IF %raya_fichas%==%raya_ganadora% (SET /a victoria=%victoria%+1 && GOTO :tablero)
SET raya_ganadora=%casilla1%%casilla4%%casilla7%
IF %raya_fichas%==%raya_ganadora% (SET /a victoria=%victoria%+1 && GOTO :tablero)
SET raya_ganadora=%casilla2%%casilla5%%casilla8%
IF %raya_fichas%==%raya_ganadora% (SET /a victoria=%victoria%+1 && GOTO :tablero)
SET raya_ganadora=%casilla3%%casilla6%%casilla9%
IF %raya_fichas%==%raya_ganadora% (SET /a victoria=%victoria%+1 && GOTO :tablero)
SET raya_ganadora=%casilla1%%casilla5%%casilla9%
IF %raya_fichas%==%raya_ganadora% (SET /a victoria=%victoria%+1 && GOTO :tablero)
SET raya_ganadora=%casilla3%%casilla5%%casilla7%
IF %raya_fichas%==%raya_ganadora% (SET /a victoria=%victoria%+1 && GOTO :tablero)
IF %toca_ficha%==X (SET toca_ficha=O&& GOTO :tablero) ELSE (SET toca_ficha=X&& GOTO :tablero)
:findelapartida
SET casilla_escogida=
IF %fin_turnos%==1 (MSG * /W NO HAY MAS TURNOS! RESULTADO: ___[-EMPATE-]___ && GOTO :empate)
IF %toca_ficha%==O (IF %eleccion_nivel%==0 (MSG * /W JUGADOR1: -%j1_name%- GANA LA PARTIDA! && GOTO :jugar) ELSE (MSG * /W FELICITACIONES, GANAS LA PARTIDA! && GOTO :victoria)) ELSE (IF %eleccion_nivel%==0 (MSG * /W JUGADOR2: -%j2_name%-  GANA LA PARTIDA! && GOTO :jugar) ELSE (MSG * /W LA CPU GANA LA PARTIDA! && GOTO :derrota))
:empate
SET /A PROV_EMPATE=%empates%+1
IF NOT %eleccion_nivel%==0 (
ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\*.*"
SET /A empates=%empates%+1
SET /A dinero_empate_dificil=%dinero%+25
SET /A dinero_empate_medio=%lvlmedio_dinero%+5
SET /A dinero_empate_facil=%lvlfacil_dinero%+1
ECHO -EMPATES DE %computername%-: > "%programfiles%\3enraya\Control\Empates.txt"
ECHO %prov_empate% >> "%programfiles%\3enraya\Control\Empates.txt"
IF %eleccion_nivel%==1 (
CALL :PONIENDODINERO && GOTO :juego) ) ELSE (GOTO :jugar)
IF %eleccion_nivel%==2 (
ECHO -DINERO DE %computername%-: > "%programfiles%\3enraya\Control\Dinero.txt"
ECHO %dinero_empate_medio% >> "%programfiles%\3enraya\Control\Dinero.txt"
MSG * HAS GANADO 5$ POR TU EMPATE!
goto :juego)
IF %eleccion_nivel%==3 (
ECHO -DINERO DE %computername%-: > %programfiles%\3enraya\Control\Dinero.txt"
ECHO %dinero_empate_facil% >> "%programfiles%\3enraya\Control\Dinero.txt"
MSG * HAS GANADO 1$ POR TU EMPATE!
goto :juego)
:derrota
ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\*.*"
SET /A derrotas=%derrotas%+1
ECHO -DERROTAS DE %computername%-: > "%programfiles%\3enraya\Control\Derrotas.txt"
ECHO %derrotas% >> "%programfiles%\3enraya\Control\Derrotas.txt"
MSG * NO GANAS DINERO POR TU DERROTA.
goto :juego
:victoria
ATTRIB -H -R -S -A "%programfiles%\3enraya\Control\*.*"
SET /A victorias=%victorias%+1
SET /A dinero_victoria_medio=%lvlmedio_dinero%+15
SET /A dinero_victoria_facil=%lvlfacil_dinero%+10
ECHO -VICTORIAS DE %computername%-: > "%programfiles%\3enraya\Control\Victorias.txt"
ECHO %victorias% >> "%programfiles%\3enraya\Control\Victorias.txt"
IF %eleccion_nivel%==2 (
ECHO -DINERO DE %computername%-: > "%programfiles%\3enraya\Control\Dinero.txt"
ECHO %dinero_victoria_medio% >> "%programfiles%\3enraya\Control\Dinero.txt"
MSG * HAS GANADO 15$ POR TU VICTORIA!
goto :juego)
IF %eleccion_nivel%==3 (
ECHO -DINERO DE %computername%-: > "%programfiles%\3enraya\Control\Dinero.txt"
ECHO %dinero_victoria_facil% >> "%programfiles%\3enraya\Control\Dinero.txt"
MSG * HAS GANADO 10$ POR TU VICTORIA!
goto :juego)
:estrellapro
ECHO PRO > "%programfiles%\3enraya\Control\Estrella_del_PRO.txt"
ATTRIB +h +r +s +a "%programfiles%\3enraya\Control\Estrella_del_PRO.txt"
GOTO :juego

:PONIENDODINERO
ECHO -DINERO DE %computername%-: > "%programfiles%\3enraya\Control\Dinero.txt"
ECHO %dinero_empate_dificil% >> "%programfiles%\3enraya\Control\Dinero.txt"
MSG * HAS GANADO 25$ POR TU EMPATE!
GOTO :EOF

El code es muy largo simplemente por la sposibilidades que le añadí al juego, tomen el codigo en tiempo de juego y no el d ela creacion de interfaz polimorfika ni sistema de usuario, victorias, derrotas, etc. si quieren contar lineas o algo. Finalmente les diré el algoritmo que yo pensé:

1- Si puedo meter ficha y gano, pongo ficha.
2- Si puedo evitar que el otro gane poniedno ficha, la pongo.
3- Si puedo poner ficha y amenazo al cntrincante con dos ficha smias en una linea, calculo las amenazas qeue me realizará el contrincante al cubrirme mi amenaza y de ese modo, amenazo donde menos veces me amenaze el al impedir que pueda ganar.
4- Realizo un calculo numerico en el que se guardan por puntuaciones las mejores casillas para poner ficha.

Bytes, Espectro Infernal.
« Última modificación: Marzo 01, 2008, 05:16:20 por Espectro Infernal » En línea





Anibal784
Miembro
*****
Desconectado Desconectado

Mensajes: 28

ajr784@hotmail.com
Ver Perfil WWW Email
« Respuesta #2 en: Marzo 02, 2008, 07:40:21 »

Bueno, yo posteo el mio:

Nick: Anibal784
Lenguaje: C
Código:
/************************************
 * Tateti.
 * autor: Anibal José Rindisbacher.
 * e-mail: ajr784 @hotmail.com
 ************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define TRUE    1
#define FALSE   0
/**
 * Para el tablero se escogió una representación un poco fuera de lo
 * convencional, 2 enteros. La elección de ésta representación se debe
 * pura y absolutamente a mi afán por querer aprender y ver la potencia
 * que tiene el lenguaje c para el manejo de bajo nivel.
 *
 * Al ser números enteros, éstos guardan en dónde se encuentra la ficha
 * en su representación binaria (a nivel de máquina).
 * La razón de que sean 2 enteros es que con 1 sólo no alcanza para
 * representar 3 estados (FICHA_USR, FICHA_PC o NADA) ya que sólo se
 * puede mantener 2 representaciones (1 o 1). Entonces escogí usar 2
 * enteros, 1 mantiene sólo las posiciones fichas que tiene el usuario y
 * el otro las posiciones de las fichas de la pc.
 * Para armar todo el tablero, es necesario ambos enteros y con un
 * simple or a nivel de bit('|') se completa.
 *
 * A lo largo del código se ve el uso de los operadores a nivel de bit,
 * por ejemplo para agregar una ficha al tablero se utiliza:
 *      tablero |= posicion
 * para saber si una posición ya ha sido ocupada, se utiliza el &:
 *      (tablero_pc|tablero_usr)&posicion
 */

/* Primer fila */
#define F0C0    (0x1)
#define F0C1    (F0C0<<1)
#define F0C2    (F0C1<<1)

/* Segunda fila */
#define F1C0    (F0C2<<1)
#define F1C1    (F1C0<<1)
#define F1C2    (F1C1<<1)

/* Tercer fila */
#define F2C0    (F1C2<<1)
#define F2C1    (F2C0<<1)
#define F2C2    (F2C1<<1)

/* Dice si la posicion está ocupada en el tablero */
#define ocupada(pos, tablero)   (pos&(tablero))

/* Cantidad de fichas que hay en el tablero */
#define cant_fichas(tablero)                                        \
    ((tablero)&F0C0?1:0)+((tablero)&F0C1?1:0)+((tablero)&F0C2?1:0)+ \
    ((tablero)&F1C0?1:0)+((tablero)&F1C1?1:0)+((tablero)&F1C2?1:0)+ \
    ((tablero&F2C0)?1:0)+((tablero)&F2C1?1:0)+((tablero)&F2C2?1:0)

/* Tablero vacío */
#define VACIO       0x0
/* Tablero con todas las fichas puestas */
#define COMPLETO    (F0C0|F0C1|F0C2|F1C0|F1C1|F1C2|F2C0|F2C1|F2C2)

/* Dadas las coordenadas x e y, dice cuál es el número que lo representa
 * en el tablero
 */
#define COORD2REPR(x,y)    0x1<<((x)*3 + (y))

#define foreach_celda(i) for(i = F0C0; i <= F2C2; i<<=1)

#define tateti_fila(tablero)\
    ((tablero)&(F0C0|F0C1|F0C2))==(F0C0|F0C1|F0C2)||\
    ((tablero)&(F1C0|F1C1|F1C2))==(F1C0|F1C1|F1C2)||\
    ((tablero)&(F2C0|F2C1|F2C2))==(F2C0|F2C1|F2C2)

#define tateti_columna(tablero)\
    ((tablero)&(F0C0|F1C0|F2C0))==(F0C0|F1C0|F2C0)||\
    ((tablero)&(F0C1|F1C1|F2C1))==(F0C1|F1C1|F2C1)||\
    ((tablero)&(F0C2|F1C2|F2C2))==(F0C2|F1C2|F2C2)

#define tateti_diagonal(tablero)\
    ((tablero)&(F0C0|F1C1|F2C2))==(F0C0|F1C1|F2C2)||\
    ((tablero)&(F0C2|F1C1|F2C0))==(F0C2|F1C1|F2C0)

#define tateti(tablero)             \
    (tateti_fila((tablero))    ||   \
     tateti_columna((tablero)) ||   \
     tateti_diagonal((tablero)))


/***
 * Macros útiles
 *****************/
/* Vacía el buffer de entrada */
#define vaciar_buffer               \
    int c;                          \
    do{                             \
        c = getc(stdin);            \
    }while(c != '\n' && c != EOF)

#define print_bienvenida \
    printf("********************************************\n" \
           "    Bienvenido al juego de TATETI           \n" \
           "    autor: Rindisbacher Anibal José         \n" \
           "    email: ajr784 @hotmail.com               \n" \
           "********************************************\n")

/*====================================================================*/
/*                  PROTOTIPOS DE FUNCIONES                           */
/*====================================================================*/
/** Funciones útilies **/
int get_int_input(char *msg);
int menu(int cant,char *title, char *opciones[]);


/** Interacción con  usuario **/
int get_coordenadas();

/** IA **/
int seguro(int t1, int t2);
int donde_se_puede_tateti(int t1, int t2);
int get_coordenadas_ia(int tablero_user, int tablero_pc);

void jugar(int t1, int t2, short int quien_es_pc);
void print_tablero(int tablero_O, int tablero_X);

/*========================================================================*/

/**
 * main:
 ********/
int main(int argc, char *argv[]){
    int tablero_pc = VACIO;
    int tablero_user = VACIO;
    int opcion;

    char *menu_principal[] = {"Comenzar nueva partida", "Salir"};
    char *menu_patida_nueva[] =
        {"Ceder turno", "Yo quiero empezar", "Volver al menu anterior"};

    do{
        print_bienvenida;
        opcion = menu(2, "Principal", menu_principal);
        switch(opcion){
            case 1:
                opcion = menu(3, "Nuevo Juego", menu_patida_nueva);
                switch(opcion){
                    case 1:
                        jugar(tablero_pc, tablero_user, 0);
                        break;
                    case 2:
                        jugar(tablero_user, tablero_pc, 1);
                        break;
                    case 3:
                        break;
                }
                break;
            case 2:
                return 0;
        }
    }while(TRUE);
}


/*====================================================================*/
/*              FUNCIONES ÚTILES                                      */
/*====================================================================*/

/**
 * get_int_input:
 *  Pide el ingreso de un entero
 ********************************/
int get_int_input(char *msg){
#define         BUFF_LEN 6
#define LAST    (BUFF_LEN - 1)

    int i;
    char opcion[BUFF_LEN];
    int len;
    char *aux;
    int isNumber = FALSE;

    /*****
     * Iteramos hasta que ingrese un número válido
     */
    do{
        printf("%s: ", msg);
        fgets(opcion, BUFF_LEN, stdin);
        len = strlen(opcion);
        if( len == (BUFF_LEN - 1) && opcion[LAST-1] != '\n'){
            vaciar_buffer;
        }
        isNumber = TRUE;    /* Asumimos que es un número */
        for(aux = opcion; *aux; ++aux){
            if(!isdigit(*aux) && *aux != '\0' && *aux != '\n'){
                /* Si encontramos uno que no es número, terminamos el for */
                isNumber = FALSE;
                break;
            }
        }

        if(isNumber){
            i = atoi(opcion);
            return i;
        }
        /* Borramos el último salto de linea (si lo tiene) para mejorar
         * la forma de ver el mensaje */
        opcion[len-1] = (opcion[len-1] == '\n')?'\0':opcion[len-1];
        printf("%s no es una opción correcta, intenta de nuevo!\n", opcion);
    }while(TRUE);   /* La única forma de salir del while es ingresando un número válido de opción */
}

/**
 * menu:
 * Imprime el menu y espera que el usuario ingrese una opción válida. Se
 * queda dentro del bucle hasta que se ingrese una opción válida
 * sus parámetros son:
 *  cant: la cantidad de opciones que se quiere mostrar, debe ser menor
 *  o igual al tamaño de arreglo de opciones.
 *  title: el título que se quiere mostrar para ese menú.
 *  opciones: un arreglo de strings que muestran la descripción de la
 *  opción.
 ***********************************************************************/
int menu(int cant,char *title, char *opciones[]){
    int opcion;
    int i;

    printf("Menu %s:\n", title);

    /* Mostrar las opciones del menú */
    for(i=0; i < cant; ++i){
        printf("\t%3d. %s\n",(i+1), opciones[i]);
    }
    opcion = get_int_input("Tu opcion?");
    while(opcion <= 0 && opcion > cant){
        /* Pedir el valor hasta que sea válido */
        printf("%d no es una opcion válida\n", opcion);
        opcion = get_int_input("Tu opcion?");
    }
    return opcion;
}

/*====================================================================*/
/*                  INTERACCION CON EL USUARIO                        */
/*====================================================================*/
/**
 * get_coordenadas:
 * Pide las coordenadas de dónde se quiere que se coloque la ficha
 */
int get_coordenadas(){
    short int x, y;
    do{
        /* Pedir el valor de x hasta que se ingrese uno válido */
        x = get_int_input("fila?");
        if(x < 3 && x >= 0){
            break;
        }
        printf("Opcion incorrecta, intenta de nuevo\n");
    }while(TRUE);
    do{
        /* Pedir el valor de y hasta que se ingrese uno válido */
        y = get_int_input("columna?");
        if(y < 3 && y >= 0){
            break;
        }
        printf("Opcion incorrecta, intenta de nuevo\n");
    }while(TRUE);
    return COORD2REPR(x,y);
}

/*====================================================================*/
/*                      INTELIGENCIA ARTIFICIA                        */
/*====================================================================*/

/**
 * seguro:
 * Devuleve verdadero si a partir de la disposición de los
 * tableros pasados como parámetros, es posible llegar a un empate o que
 * gane el jugador cuyo tablero es t2. En caso de que no sea factible
 * retornará falso.
 */
int seguro(int t1, int t2){
    int *tableros = &t1;
    short int i = 0;
    int pos;

    while((tableros[0]|tableros[i]) != COMPLETO){
       
        /* Primero hay que ver si se puedo hacer tateti */
        pos = donde_se_puede_tateti(tableros[i], tableros[1-i]);
        if(pos != -1){
            return tableros[i] == t2;   /* Seguro sólo si tablero 2
                                           puedo hacer tateti */
        }

        /* Intentar parar el tateti del otro */
        pos = donde_se_puede_tateti(tableros[1-i], tableros[i]);   
        if(pos == -1){
            return cant_fichas((t1|t2)) >= 6;
        }
        tableros[i] |= pos;
        i = (i+1)%2;
    }
    return TRUE;
}

/**
 * donde_se_puede_tateti:
 * Devuelve dónde se puede hacer tateti...
 * t1 es el tablero sobre el cual se quiere hacer tateti, y t2 sólo se
 * usa para averiguar que esa posicion no esté ocupada por el jugador
 * contrario
 */
int donde_se_puede_tateti(int t1, int t2){
    int i;
    foreach_celda(i){
        if(!ocupada(i, t1|t2)){
            if(tateti(t1|i)){
                return i;
            }
        }
    }
    return -1;
}

/**
 * get_coordenadas_ia:
 * Pide las coordenadas para la pc
 **********************************/
int get_coordenadas_ia(int tablero_user, int tablero_pc){
    int pos;

    if(tablero_pc == VACIO){
        /* La pc aún no ha movido */
        if(!ocupada(F1C1,tablero_pc|tablero_user)){
            return F1C1; /* Ocupamos el centro si aún no se ha hecho */
        }
        /* El usuario si y ha ocupado la casilla del medio */
        return F0C0;
    }

    /* Queremos saber si se puede hacer tateti en el tablero de la pc */
    pos = donde_se_puede_tateti(tablero_pc, tablero_user);
    if(pos != -1){
        return pos;
    }

    /* Ahora si podemos detener al tateti del otro jugador */
    pos = donde_se_puede_tateti(tablero_user, tablero_pc);
    if(pos != -1){
        return pos; /* Se ha encontrado una casilla en la cual el
                     * otro jugador puede llegar a hacer tatei */
    }

    foreach_celda(pos){
        if(!ocupada(pos,tablero_pc|tablero_user)){
            if(seguro(tablero_user, tablero_pc|pos)){
                return pos;    /* En éste posicion es seguro el
                                  movimiento */
            }
        }
    }

    /* Nunca debería suceder ésto */
    printf("***Fatal error!\n"
           "No se encuentra una jugada factible para que la PC gane, fin del juego\n");
    exit(-1);
}

/*====================================================================*/
/*                  JUEGO                                             */
/*====================================================================*/
/**
 * jugar:
 * Es el juego en si, se juega turnandose los jugadores de a 1 por vez,
 * los parámetros son los tableros que manejan ambos jugadores y un
 * parámetro adicional que indica cuál de los tableros pertenece a la PC
 ************************************************************************/
void jugar(int t1, int t2, short int quien_es_pc){
    int *tableros = &t1;
    short int i=-1;
    int casilla;

    do{
        i = (i + 1) % 2;
        if(i != quien_es_pc){
            /* Mostrar el tablero sólo cuando juega el usuario */
            print_tablero(tableros[1-quien_es_pc], tableros[quien_es_pc]);
            /* Pedimos las coordenadas de dónde quiere colocar su ficha */
            casilla = get_coordenadas();
            while(ocupada(casilla, tableros[0]|tableros[1])){
                /* Hata que no ingrese una casilla desocupada no salimos */
                printf("Has ingresado una casilla ocupada\n");
                casilla = get_coordenadas();
            }
        }else{
            /* Sólo vemos dónde pone la ficha la IA */
            casilla = get_coordenadas_ia(tableros[1-quien_es_pc], tableros[quien_es_pc]);
            if(ocupada(casilla, tableros[0]|tableros[1])){
                    /* Si el que puso la ficha en un lugar ocupado es la pc
                     * es un error fatal ya que siempre retornará el mismo
                     * valor y nunca se podrá seguir con el juego
                     */
                    printf("***Fatal error!:\n"
                           "la pc intenta ingresar en una casilla ya ocupada\n");
                    exit(-1);
            }

        }

        tableros[i] |= casilla;    /* Poner la ficha en la casilla */
       
    }while(!tateti(tableros[i]) && (tableros[0]|tableros[1]) != COMPLETO);

    /* Imprimimos el tablero final */
    print_tablero(tableros[1-quien_es_pc], tableros[quien_es_pc]);

    if(tateti(t1) || tateti(t2)){
        /* El ganador es el último que puso la ficha, es decir el valor
         * de i */
        printf("\n\n^^^^^^^^Ha ganado el jugador %s^^^^^^^^\n\n",
                (quien_es_pc==i)?"PC":"HUMANO");
    }else{
        printf("\n\n^^^^^^^^Ha ocurrido un EMPATE^^^^^^^^\n\n");
    }
}

/**
 * Imprime el tablero en pantalla en una representación agradable para
 * el usuario humano
 */
void print_tablero(int tablero_O, int tablero_X){
    printf("\n\n*************\n"
               "* %c | %c | %c *\n"
               "*-----------*\n"
               "* %c | %c | %c *\n"
               "*-----------*\n"
               "* %c | %c | %c *\n"
               "*************\n",
            ((tablero_O&F0C0)?'O':(tablero_X&F0C0)?'X':' '),
            ((tablero_O&F0C1)?'O':(tablero_X&F0C1)?'X':' '),
            ((tablero_O&F0C2)?'O':(tablero_X&F0C2)?'X':' '),
            ((tablero_O&F1C0)?'O':(tablero_X&F1C0)?'X':' '),
            ((tablero_O&F1C1)?'O':(tablero_X&F1C1)?'X':' '),
            ((tablero_O&F1C2)?'O':(tablero_X&F1C2)?'X':' '),
            ((tablero_O&F2C0)?'O':(tablero_X&F2C0)?'X':' '),
            ((tablero_O&F2C1)?'O':(tablero_X&F2C1)?'X':' '),
            ((tablero_O&F2C2)?'O':(tablero_X&F2C2)?'X':' ')
          );
}

   Bueno, un par de cositas, que aclaro el tablero es representado por 2 enteros donde los bits de dichos enteros son los que tienen la información de dónde se colocan las fichas de cada jugador.
   La inteligencia artificial no es muy complicada:
       1- Si nadie ocupó el centro, lo ocupa la pc.
       2- Si ya está ocupado, pero es la primera vez que juega la pc, entonces coloca en (0,0).
       3- Si puede ganar, gana.
       4- Si es amenazado de perder, tapa para no perder.
       5- Si no se cumple ninguna de las anteriores, para cada celda vacía:
                  fijarse si es seguro colocar la ficha en esa posición (seguro == llegar a un empate o gana la pc)

   bueno, nada más, el código está bastante documentado, he leído rumores de que alguien le ha ganado pero no tengo pruebas de eso  Grin
« Última modificación: Marzo 02, 2008, 07:42:43 por Anibal784 » En línea

"UNIX is simple. It just takes a genius to understand its simplicity."
Deeo
Miembro
*****
Conectado Conectado

Mensajes: 128


Ozzy Slave.

MrRaiser@gmail.com
Ver Perfil Email
« Respuesta #3 en: Marzo 08, 2008, 04:04:53 »

Holas gente bueno vengo a postear mi código, es muy cavernícola pero funciona y eso es lo que a mí me importa.

Mi tres en raya esta creado en visual basic 6.0, consta de 2 Formularios

Form1:
9 Etiquetas (Label)
Llamadas LBL1, LBL2, LBL3, LBL4, LBL5, LBL6, LBL7, LBL8, LBL9
Un menú Reiniciar
Llamado Reiniciar



Form2:
2 OptionButton
Llamados Opt1 con el Valor caption "X" y un Opt2 con el valor caption de "O"
2 CommandButton
Llamados Command1, con el Caption "Cancelar" y Command2, Con el Caption "Aceptar"






CODIGO FORM1

Public Usuario As String
Public Maquina As String

Private Sub Form_Load()
Form2.Show
Me.Hide
End Sub

Sub Primer_Mov()
LBL5.Caption = "X"
End Sub

Private Sub Turno_Maquina()
'*****************************************************************
'Combinación 123 Maquina

If LBL1.Caption = Maquina And LBL2.Caption = Maquina And LBL3.Caption = "" Then
    LBL3.Caption = Maquina
ElseIf LBL1.Caption = Maquina And LBL2.Caption = Maquina And LBL3.Caption = "" Then
    LBL2.Caption = Maquina
ElseIf LBL3.Caption = Maquina And LBL2.Caption = Maquina And LBL1.Caption = "" Then
    LBL1.Caption = Maquina


'----------------------------------------------------------
'Combinación 456 Maquina

ElseIf LBL4.Caption = Maquina And LBL5.Caption = Maquina And LBL6.Caption = "" Then
    LBL6.Caption = Maquina
ElseIf LBL4.Caption = Maquina And LBL6.Caption = Maquina And LBL5.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL6.Caption = Maquina And LBL5.Caption = Maquina And LBL4.Caption = "" Then
    LBL4.Caption = Maquina


'-----------------------------------------------------------
'Combinación 789 Maquina

ElseIf LBL7.Caption = Maquina And LBL8.Caption = Maquina And LBL9.Caption = "" Then
    LBL9.Caption = Maquina
ElseIf LBL7.Caption = Maquina And LBL9.Caption = Maquina And LBL8.Caption = "" Then
    LBL8.Caption = Maquina
ElseIf LBL9.Caption = Maquina And LBL8.Caption = Maquina And LBL7.Caption = "" Then
    LBL7.Caption = Maquina

'-----------------------------------------------------------
'Combinación 147 Maquina

ElseIf LBL1.Caption = Maquina And LBL4.Caption = Maquina And LBL7.Caption = "" Then
    LBL7.Caption = Maquina
ElseIf LBL1.Caption = Maquina And LBL7.Caption = Maquina And LBL4.Caption = "" Then
    LBL4.Caption = Maquina
ElseIf LBL7.Caption = Maquina And LBL4.Caption = Maquina And LBL1.Caption = "" Then
    LBL1.Caption = Maquina
   
'-----------------------------------------------------------
'Combinación 852 Maquina

ElseIf LBL8.Caption = Maquina And LBL5.Caption = Maquina And LBL2.Caption = "" Then
    LBL2.Caption = Maquina
ElseIf LBL2.Caption = Maquina And LBL8.Caption = Maquina And LBL5.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL2.Caption = Maquina And LBL5.Caption = Maquina And LBL8.Caption = "" Then
    LBL8.Caption = Maquina
   
'------------------------------------------------------------
'Combinación 963 Maquina

ElseIf LBL9.Caption = Maquina And LBL6.Caption = Maquina And LBL3.Caption = "" Then
    LBL3.Caption = Maquina
ElseIf LBL3.Caption = Maquina And LBL9.Caption = Maquina And LBL6.Caption = "" Then
    LBL6.Caption = Maquina
ElseIf LBL3.Caption = Maquina And LBL6.Caption = Maquina And LBL9.Caption = "" Then
    LBL9.Caption = Maquina
   
'------------------------------------------------------------
'Combinación 753 Maquina

ElseIf LBL9.Caption = Maquina And LBL5.Caption = Maquina And LBL1.Caption = "" Then
    LBL1.Caption = Maquina
ElseIf LBL1.Caption = Maquina And LBL5.Caption = Maquina And LBL9.Caption = "" Then
    LBL9.Caption = Maquina
ElseIf LBL9.Caption = Maquina And LBL1.Caption = Maquina And LBL5.Caption = "" Then
    LBL5.Caption = Maquina


'---------------------------------------------------------------
'Combinación 753 Maquina

ElseIf LBL7.Caption = Maquina And LBL5.Caption = Maquina And LBL3.Caption = "" Then
    LBL3.Caption = Maquina
ElseIf LBL3.Caption = Maquina And LBL5.Caption = Maquina And LBL7.Caption = "" Then
    LBL7.Caption = Maquina
ElseIf LBL7.Caption = Maquina And LBL3.Caption = Maquina And LBL5.Caption = "" Then
    LBL5.Caption = Maquina
'****************************************************************
'****************************************************************
'ARREGLO PARA JUGADA PERDIDA - 1 -

ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = Usuario And LBL4.Caption = "" And LBL5.Caption = Maquina And LBL6.Caption = "" And LBL7.Caption = Usuario And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL6.Caption = Maquina

'================================================================
'ARREGLO PARA JUGADA PERDIDA - 2 -
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = Usuario And LBL4.Caption = "" And LBL5.Caption = Maquina And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = Usuario And LBL9.Caption = "" Then
    LBL4.Caption = Maquina

'================================================================
'ARREGLO PARA JUGADA PERDIDA - 3 -
ElseIf LBL1.Caption = Usuario And LBL2.Caption = Maquina And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = Maquina And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = Usuario And LBL9.Caption = "" Then
    LBL4.Caption = Maquina

'================================================================
'ARREGLO PARA JUGADA PERDIDA - 4 -
ElseIf LBL1.Caption = Usuario And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = Maquina And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = Usuario And LBL9.Caption = "" Then
    LBL9.Caption = Maquina

'================================================================
'ARREGLO PARA JUGADA PERDIDA - 5 -
ElseIf LBL1.Caption = Usuario And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = Maquina And LBL6.Caption = Usuario And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL4.Caption = Maquina
'================================================================
'ARREGLO PARA JUGADA PERDIDA - 6 -
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = Maquina And LBL6.Caption = Usuario And LBL7.Caption = Usuario And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL3.Caption = Maquina

'ARREGLO PARA JUGADA PERDIDA - 6 -
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = Maquina And LBL6.Caption = Usuario And LBL7.Caption = "" And LBL8.Caption = Usuario And LBL9.Caption = "" Then
    LBL3.Caption = Maquina

'*****************************************************************
'*****************************************************************
'Combinación 123 Usuario

ElseIf LBL1.Caption = Usuario And LBL2.Caption = Usuario And LBL3.Caption = "" Then
    LBL3.Caption = Maquina
ElseIf LBL1.Caption = Usuario And LBL2.Caption = Usuario And LBL3.Caption = "" Then
    LBL2.Caption = Maquina
ElseIf LBL3.Caption = Usuario And LBL2.Caption = Usuario And LBL1.Caption = "" Then
    LBL1.Caption = Maquina


'----------------------------------------------------------
'Combinación 456 Usuario

ElseIf LBL4.Caption = Usuario And LBL5.Caption = Usuario And LBL6.Caption = "" Then
    LBL6.Caption = Maquina
ElseIf LBL4.Caption = Usuario And LBL6.Caption = Usuario And LBL5.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL6.Caption = Usuario And LBL5.Caption = Usuario And LBL4.Caption = "" Then
    LBL4.Caption = Maquina


'-----------------------------------------------------------
'Combinación 789 Usuario

ElseIf LBL7.Caption = Usuario And LBL8.Caption = Usuario And LBL9.Caption = "" Then
    LBL9.Caption = Maquina
ElseIf LBL7.Caption = Usuario And LBL9.Caption = Usuario And LBL8.Caption = "" Then
    LBL8.Caption = Maquina
ElseIf LBL9.Caption = Usuario And LBL8.Caption = Usuario And LBL7.Caption = "" Then
    LBL7.Caption = Maquina

'-----------------------------------------------------------
'Combinación 147 Usuario

ElseIf LBL1.Caption = Usuario And LBL4.Caption = Usuario And LBL7.Caption = "" Then
    LBL7.Caption = Maquina
ElseIf LBL1.Caption = Usuario And LBL7.Caption = Usuario And LBL4.Caption = "" Then
    LBL4.Caption = Maquina
ElseIf LBL7.Caption = Usuario And LBL4.Caption = Usuario And LBL1.Caption = "" Then
    LBL1.Caption = Maquina
   
'-----------------------------------------------------------
'Combinación 852 Usuario

ElseIf LBL8.Caption = Usuario And LBL5.Caption = Usuario And LBL2.Caption = "" Then
    LBL2.Caption = Maquina
ElseIf LBL2.Caption = Usuario And LBL8.Caption = Usuario And LBL5.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL2.Caption = Usuario And LBL5.Caption = Usuario And LBL8.Caption = "" Then
    LBL8.Caption = Maquina
   
'------------------------------------------------------------
'Combinación 963 Usuario

ElseIf LBL9.Caption = Usuario And LBL6.Caption = Usuario And LBL3.Caption = "" Then
    LBL3.Caption = Maquina
ElseIf LBL3.Caption = Usuario And LBL9.Caption = Usuario And LBL6.Caption = "" Then
    LBL6.Caption = Maquina
ElseIf LBL3.Caption = Usuario And LBL6.Caption = Usuario And LBL9.Caption = "" Then
    LBL9.Caption = Maquina
   
'------------------------------------------------------------
'Combinación 753 Usuario

ElseIf LBL9.Caption = Usuario And LBL5.Caption = Usuario And LBL1.Caption = "" Then
    LBL1.Caption = Maquina
ElseIf LBL1.Caption = Usuario And LBL5.Caption = Usuario And LBL9.Caption = "" Then
    LBL9.Caption = Maquina
ElseIf LBL9.Caption = Usuario And LBL1.Caption = Usuario And LBL5.Caption = "" Then
    LBL5.Caption = Maquina


'------------------------------------------------------------
'Combinación 753 Usuario

ElseIf LBL7.Caption = Usuario And LBL5.Caption = Usuario And LBL3.Caption = "" Then
    LBL3.Caption = Maquina
ElseIf LBL3.Caption = Usuario And LBL5.Caption = Usuario And LBL7.Caption = "" Then
    LBL7.Caption = Maquina
ElseIf LBL7.Caption = Usuario And LBL3.Caption = Usuario And LBL5.Caption = "" Then
    LBL5.Caption = Maquina



'------------------------------------------------------------
'En caso de que no....

ElseIf LBL1.Caption = Usuario And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = "" And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = Usuario And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = "" And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = Usuario And LBL4.Caption = "" And LBL5.Caption = "" And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = Usuario And LBL5.Caption = "" And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = Usuario And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL7.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = "" And LBL6.Caption = Usuario And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = "" And LBL6.Caption = "" And LBL7.Caption = Usuario And LBL8.Caption = "" And LBL9.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = "" And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = Usuario And LBL9.Caption = "" Then
    LBL5.Caption = Maquina
ElseIf LBL1.Caption = "" And LBL2.Caption = "" And LBL3.Caption = "" And LBL4.Caption = "" And LBL5.Caption = "" And LBL6.Caption = "" And LBL7.Caption = "" And LBL8.Caption = "" And LBL9.Caption = Usuario Then
    LBL5.Caption = Maquina

ElseIf LBL1.Caption = "" Then
    LBL1.Caption = Maquina

ElseIf LBL2.Caption = "" Then
    LBL2.Caption = Maquina

ElseIf LBL3.Caption = "" Then
    LBL3.Caption = Maquina

ElseIf LBL4.Caption = "" Then
    LBL4.Caption = Maquina

ElseIf LBL5.Caption = "" Then
    LBL5.Caption = Maquina

ElseIf LBL6.Caption = "" Then
    LBL6.Caption = Maquina

ElseIf LBL7.Caption = "" Then
    LBL7.Caption = Maquina

ElseIf LBL8.Caption = "" Then
    LBL8.Caption = Maquina

ElseIf LBL9.Caption = "" Then
    LBL9.Caption = Maquina

End If
End Sub

Private Sub Reiniciar_Click()
Form2.Show
Unload Me
End Sub

Private Sub LBL1_Click()
If LBL1.Caption = "" Then
    LBL1.Caption = Usuario
    LBL1.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub Comprovar()
'Usuario
If LBL1.Caption = Usuario And LBL2.Caption = Usuario And LBL3.Caption = Usuario Then
    Usuario_Gana
ElseIf LBL4.Caption = Usuario And LBL5.Caption = Usuario And LBL6.Caption = Usuario Then
    Usuario_Gana
ElseIf LBL7.Caption = Usuario And LBL8.Caption = Usuario And LBL9.Caption = Usuario Then
    Usuario_Gana
ElseIf LBL7.Caption = Usuario And LBL5.Caption = Usuario And LBL3.Caption = Usuario Then
    Usuario_Gana
ElseIf LBL1.Caption = Usuario And LBL5.Caption = Usuario And LBL9.Caption = Usuario Then
    Maquina_Gana
ElseIf LBL7.Caption = Usuario And LBL4.Caption = Usuario And LBL1.Caption = Usuario Then
    Usuario_Gana
ElseIf LBL8.Caption = Usuario And LBL5.Caption = Usuario And LBL2.Caption = Usuario Then
    Usuario_Gana
ElseIf LBL9.Caption = Usuario And LBL6.Caption = Usuario And LBL3.Caption = Usuario Then
    Usuario_Gana

'Maquina
ElseIf LBL1.Caption = Maquina And LBL2.Caption = Maquina And LBL3.Caption = Maquina Then
    Maquina_Gana
ElseIf LBL4.Caption = Maquina And LBL5.Caption = Maquina And LBL6.Caption = Maquina Then
    Maquina_Gana
ElseIf LBL7.Caption = Maquina And LBL8.Caption = Maquina And LBL9.Caption = Maquina Then
    Maquina_Gana
ElseIf LBL7.Caption = Maquina And LBL5.Caption = Maquina And LBL3.Caption = Maquina Then
    Maquina_Gana
ElseIf LBL1.Caption = Maquina And LBL5.Caption = Maquina And LBL9.Caption = Maquina Then
    Maquina_Gana
ElseIf LBL7.Caption = Maquina And LBL4.Caption = Maquina And LBL1.Caption = Maquina Then
    Maquina_Gana
ElseIf LBL8.Caption = Maquina And LBL5.Caption = Maquina And LBL2.Caption = Maquina Then
    Maquina_Gana
ElseIf LBL9.Caption = Maquina And LBL6.Caption = Maquina And LBL3.Caption = Maquina Then
    Maquina_Gana








'Si todos los casilleros estan llenos
ElseIf LBL1.Caption > "" And LBL2.Caption > "" And LBL3.Caption > "" And LBL4.Caption > "" And LBL5.Caption > "" And LBL6.Caption > "" And LBL7.Caption > "" And LBL8.Caption > "" And LBL9.Caption > "" Then
    Dim o As String
    o = MsgBox("                  EMPATE" & vbCrLf & "             Desea continuar", vbYesNo, "  ")
    If o = vbYes Then
        Limpiar
    Else
    End
    End If
End If
End Sub
Private Sub Limpiar()
Form2.Show
Me.Hide
LBL1.Caption = ""
LBL2.Caption = ""
LBL3.Caption = ""
LBL4.Caption = ""
LBL5.Caption = ""
LBL6.Caption = ""
LBL7.Caption = ""
LBL8.Caption = ""
LBL9.Caption = ""

LBL1.ForeColor = &H80&
LBL2.ForeColor = &H80&
LBL3.ForeColor = &H80&
LBL4.ForeColor = &H80&
LBL5.ForeColor = &H80&
LBL6.ForeColor = &H80&
LBL7.ForeColor = &H80&
LBL8.ForeColor = &H80&
LBL9.ForeColor = &H80&


End Sub

Private Sub Usuario_Gana()
    MsgBox "Bueno acabo de perder el proyecto por el cual estaba casi seguro que ganaria, bueno no todo en la vida se puede.", vbExclamation, "Noooooooooooooo"
    End
End Sub

Private Sub Maquina_Gana()
    MsgBox "Este Reto parece que es posible, No Crees ?? COMPRUEVALO", vbInformation, " "
    Dim r As String
    r = MsgBox("           Desea continuar ?? ", vbYesNo, "")
    If r = vbYes Then
        Limpiar
    Else
    End
    End If
End Sub

Private Sub LBL2_Click()
If LBL2.Caption = "" Then
    LBL2.Caption = Usuario
    LBL2.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub LBL3_Click()
If LBL3.Caption = "" Then
    LBL3.Caption = Usuario
    LBL3.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub LBL4_Click()
If LBL4.Caption = "" Then
    LBL4.Caption = Usuario
    LBL4.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub LBL5_Click()
If LBL5.Caption = "" Then
    LBL5.Caption = Usuario
    LBL5.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub LBL6_Click()
If LBL6.Caption = "" Then
    LBL6.Caption = Usuario
    LBL6.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub LBL7_Click()
If LBL7.Caption = "" Then
    LBL7.Caption = Usuario
    LBL7.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub LBL8_Click()
If LBL8.Caption = "" Then
    LBL8.Caption = Usuario
    LBL8.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub

Private Sub LBL9_Click()
If LBL9.Caption = "" Then
    LBL9.Caption = Usuario
    LBL9.ForeColor = &HC00000
    Turno_Maquina
    Comprovar
End If
End Sub


========================================================


CODIGO FORM2


Private Sub Command1_Click()
End
End Sub

Private Sub Command2_Click()
If Opt1.Value = True Then
    Form1.Usuario = "X"
    Form1.Maquina = "O"
    Form1.Show
    Unload Me
Else
    Form1.Usuario = "O"
    Form1.Maquina = "X"
    Form1.Primer_Mov
    Form1.Show
    Unload Me
End If
End Sub
En línea

Espectro Infernal
Moderación
Colaborador
*****
Desconectado Desconectado

Mensajes: 797



Ver Perfil
« Respuesta #4 en: Julio 21, 2008, 04:03:50 »

Que vas a hacer con el reto sami? Sad

Bytes, Espectro Infernal.
En línea





Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación (Moderador: programas gratis)  |  Tema: 3 en raya « anterior próximo »
Ir a: