Este código está diseñado para parecerse a una versión más simple del juego de batalla de Pokémon. Solo he codificado los ataques. He estado probando a fondo, y encontré que un mensaje de error (Goto era inesperado en este momento) cada vez que el usuario confirmaba su ataque. ¡¡ADVERTENCIA!! El código tiene 96 líneas de longitud. Al final, pondré la sección del problema, para que puedas omitir esta primera gran parte.Goto fue inesperado en este momento por lotes Windows 7 starter
@echo off
Set H1=20
Set A1=8
Set D1=6
Set S1=5
Set H2=14
Set A2=5
Set D2=4
Set S2=8
:Begin
CLS
Echo Bulbasur
Echo %H2%/14 /\
Echo (__) ___
Echo l __lo.ol
Echo l_\ l_\"
Echo.
Echo _
Echo */\
Echo \\l )
Echo \\__l Charmander
Echo %H1%/20
Echo -Attack -Capture
Echo -Item -Run
Set /p Move=Action?
If %move%==Attack goto Attack
If %move%==Catpure goto capture
If %move%==Item goto Item
If %move%==Run Goto Run
Echo I'm sorry, Charmander can't do that.
Pause
goto Begin
:Attack
ClS
Echo Attacks
Echo 1)Tackle
Echo 2)Growl
Echo 3)Ember
Echo 4)Scratch
Set /p attack=Which one?
If %attack%==Tackle goto Tackle
If %attack%==1 goto Tackle
If %attack%==Growl Goto Growl
If %attack%==2 goto Growl
If %attack%==Ember goto Ember
If %attack%==3 goto Ember
If %attack%==Scratch goto Scratch
If %attack%==4 goto Scratch
If %attack%==Cancel goto Begin
Echo I didn't get that
Goto Attack
:Tackle
CLS
Echo Tackle Hits The opponent where it hurts. EVERYWHERE.
Echo Do you want to?
set /p accept=Yes/No?
If %acccept%==Yes goto Combat
If %acccept%==No goto Begin
Echo I didn't get that.
goto Tackle
:Growl
CLS
Echo Growl lowers the opponents attack.
Echo Do you want to?
set /p accept=Yes/No?
If %acccept%==Yes goto Status
If %acccept%==No goto Begin
Echo I didn't get that.
goto Growl
:Scratch
CLS
Echo Scratch hits the foe with a claw.
Echo Do you want to?
set /p accept=Yes/No?
If %acccept%==Yes goto Combat
If %acccept%==No goto Begin
Echo I didn't get that.
goto Scratch
:Ember
CLS
Echo Ember hits the opponent with a small fire.
Echo Do you want to?
set /p accept=Yes/No?
If %acccept%==Yes goto Combat
If %acccept%==No goto Begin
Echo I didn't get that.
goto Ember
:Combat
CLS
If NOT %attack%==Growl If NOT %attack%==2 set /a H2=%H2%-(%A1%^2/%D2%)
set /a H1=%H1%-(%A2%^2/%D1%)
goto Begin
:Status
CLS
Set /a A1=%A1%-1
goto Combat
Área del problema:
:Tackle
CLS
Echo Tackle Hits The opponent where it hurts. EVERYWHERE.
Echo Do you want to?
set /p accept=Yes/No?
If %acccept%==Yes goto Combat
If %acccept%==No goto Begin
Echo I didn't get that.
goto Tackle
El código obtiene aquí bien, pero una vez que estoy aquí, que no espera que los comandos Goto. ¿Alguien puede arreglar esta carne? (Nota: Tackle es solo un ejemplo. Ninguno de los ataques funciona.) EDITAR: Si el usuario pone "Sí", "No", galimatías o nada, sigue emitiendo el mismo mensaje de error (goto fue inesperado en este momento)
Tengo curiosidad sobre los votos hacia abajo; asker publicó el código, seleccionó un área de problema de ejemplo e incluso dio el mensaje de error. Me parece una buena pregunta. ¿Es solo desdén por los archivos por lotes? Eso no debería afectar si la pregunta es buena o no. –
@WesleyPetrowski, probablemente porque publicó todo el guión. Y luego publicó una copia adicional del código problemático. Solo debería haber publicado el código que fue problemático. – mikerobi
'Si% move% == Catpure goto capture' Sé que los gatos ronronean, pero creo que este es un error tipográfico ^^ – Stephan