Так недавно я начал изучать Batch-файл, и сегодня я решил попробовать с ним сделать игру. У меня есть несколько ошибок, и я не могу понять, что не так с кодом. Heres код:Confusion with Batch-file code
@echo off
title Batch Rpg
color 07
echo Welcome to Batch Rpg!
echo.
echo.
pause
:menu
cls
echo.
echo -Menu-
echo.
echo.
echo.
echo 1) Begin
echo.
echo 2) How to play
echo.
echo 3) Exit
echo.
echo.
echo.
echo ---------
echo.
set /p c=Choice:
if %c%==1 goto prestart1
if %c%==2 goto howtoplay
if %c%==3 goto cfr_exit
if NOT %c%==1 if NOT %c%==2 if NOT %c%==3 goto menu
:cfr_exit
cls
echo.
echo Are you sure you want to exit?
echo.
set /p c=(Y/N):
if %c%=="Y" exit
if %c%=="N" goto menu
if NOT %c%=="Y" if NOT %c%=="N" goto cfr_exit2
:cfr_exit2
cls
echo.
echo You must enter a valid option.
echo.
pause
goto cfr_exit
:howtoplay
cls
echo.
echo -How to play-
echo.
echo.
echo.
echo This game is very simple. There will be a number with an option after it, type the option in and it will perform an action(As the option would say).
echo.
pause
goto menu
:prestart1
cls
echo.
echo Welcome to land of Fageryth!
echo.
echo What is your name, adventurer?
echo.
set /p playername=Name:
goto prestart2
:prestart2
cls
echo.
echo What would be your more valued statistic, Attack damage, or Hit points?
echo.
echo.
echo.
echo 1)Attack damage(Atk)
echo.
echo 2)Hit points(Hp)
echo.
echo.
echo.
echo ---------
echo.
set /p playermorevaluedstat=Choice:
if %playermorevaluedstat%==1
set playeratk=6
set playerhp=25
if %playermorevaluedstat%==2
set playeratk=4
set playerhp=30
if NOT %playermorevaluedstat%==1 if NOT %playermorevaluedstat%==2 goto prestart2
cls
echo playeratk
echo playerhp
pause
У меня возникли проблемы с :prestart2
части моего кода. В конце этого я попытался сделать это, если переменная не была равна 1 или 2, которые были параметрами, затем снова отправляет плеер обратно в начало раздела, а также, когда он заканчивается проверяя, я пытаюсь отобразить две переменные playeratk
и playerhp
, но вместо этого она просто закрывается. Я действительно потерян здесь и буду благодарен за помощь!
Почему такая сложная логика? существует также предложение 'else', которое упрощает:' if '% playermorevaluedstat% "==" 2 "(делать некоторые вещи) иначе, если"% playermorevaluedstat% "==" 1 "(делать другие вещи) else (иначе) делать что-то еще); обратите внимание на '' '' вокруг выражений сравнения, чтобы избежать проблем в случае, если '% playermorevaluedstat%' пуст; прочитайте текст справки 'if /?', чтобы найти точный синтаксис для 'if' /' else' clauses ... – aschipfl