Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: edogawa93 en 9 Junio 2007, 11:05 am



Título: Ayuda codigo batch
Publicado por: edogawa93 en 9 Junio 2007, 11:05 am
Hola, soy nuevo, y no muy avanzado en batch, le podríais echar un vistazo al code? No se donde esta el fallo, a ver si alguien lo descubre xDD
Código:
@echo off
title PingPong
:menu
echo Introducir la puntuacion del Jugador 1
set /p p1=
echo Introducir la puntuacion del Jugador 2
set /p p2=
set /a punt=p1+p2
set /a op1=punt/2
set /a op2=op1*2
set /a res=punt-op2
if res=0(
echo Toca cambiar de saque
pause
) else (
echo No toca cambiar de saque
pause
)
exit


Título: Re: Ayuda codigo batch
Publicado por: zhynar_X en 9 Junio 2007, 21:15 pm
Hola, el fallo lo tienes al comprar y en la variable.

-Para cargar una variable tienes que ponerla asi "%variable% y para comprar has uesto "=" y tienes que poner "==". Te dejo el codigo un poco cambiado para que funcione:
Código:
@echo off
title PingPong
:menu
echo Introducir la puntuacion del Jugador 1
set /p p1=
echo Introducir la puntuacion del Jugador 2
set /p p2=

set /a punt=p1+p2
set /a op1=punt/2
set /a op2=op1*2
set /a res=punt-op2

if %res%==0 goto c
if %res% NEQ 0 goto incorrecto

:incorrecto
echo No toca cambiar de saque
pause
exit

:c
echo Toca cambiar de saque
pause
exit

Saludos


Título: Re: Ayuda codigo batch
Publicado por: D4RIO en 9 Junio 2007, 23:55 pm
Mmm, estás seguro de que así funciona??
Mira, usaste:
Código:
.
.
.
set /a punt=p1+p2
set /a op1=punt/2
set /a op2=op1*2
set /a res=punt-op2
.
.
.

y en la parte derecha de las expresiones aritméticas tenías que usar %% en las variables que querés que se reemplacen por su valor, o sea, la primer línea:

Código:
set /a punt=%p1%+%p2%

Y otra cosa, las expresiónes de las strings a comparar en una if se ponen entre corchetes, así ésta línea te quedaría:

Código:
if [%res%]==[0] goto c

En fin, tu código mejorado quedaría:
Código:
@echo off
title PingPong
:menu
echo Introducir la puntuacion del Jugador 1
set /p p1=
echo Introducir la puntuacion del Jugador 2
set /p p2=

set /a punt=%p1%+%p2%
set /a op1=%punt%/2
set /a op2=%op1%*2
set /a res=%punt%-op2

if [%res%]==[0] goto c
if %res% NEQ 0 goto incorrecto

:incorrecto
echo No toca cambiar de saque
pause
exit

:c
echo Toca cambiar de saque
pause
exit

No lo probé por falta de ganas, pero me la paso el dia escribiendo bats así que creo que eso está correcto.


Título: Re: Ayuda codigo batch
Publicado por: zhynar_X en 10 Junio 2007, 09:45 am
Hola, tienes razon no me di cuenta, pero aun asi lo prove y funciona.

Saludos