현재 설득 시스템이있는 게임을 만들고 있습니다. 나는 시스템 중 하나에 대한 모든 코드를 설정했지만, 그 다음에 2 개를 더 설정하고 나에게 '(숫자)가 이번에는 예상되지 않았다'는 오류를 내게했습니다. 두 번째 선택은 2, 세 번째 선택은 3입니다.시간에 예상치 못한 결과가 발생했습니다.
코드는 다음과 같습니다.
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
set name=Quantum
cls
color 0a
Echo King Redwood: So 2000?
pause >nul
echo.
call :colorText 09 "1. 2500"
echo.
call :colorText 0e "2. 3000"
echo.
call :colorText 0c "3. 4000"
echo.
echo 4. 2000
echo.
set /p "purs=Enter:"
if /i %purs% == 1 (
goto CheckB)
if /i %purs% == 2 (
goto CheckY)
if /i %purs% == 3 (
goto CheckR)
if /i %purs% == 4 (
goto Convo)
:CheckB
set bleu=%random:~-2,1%
if %bleu% GTR 10 (
goto CheckB)
if %bleu% LSS 0 (
goto CheckB)
set /a num = 3
set /a reward = 2500
goto Res
:CheckY
set Yel=%random:~-2,1%
if %Yel% GTR 10 (
goto CheckY)
if %Yel% LSS 0 (
goto CheckY)
set /a num = 5
set reward = 3000
goto Res
:CheckR
set red=%random:~-2,1%
if %red% GTR 10 (
goto CheckB)
if %red% LSS 0 (
goto CheckB)
set /a num = 7
set /a reward = 4000
goto Res
:Convo
set /a reward = 2000
Echo %name%: I think that is a reasonable price.
Echo King Redwood: Very well.
Echo King Redwood: We will now take you to make sure you are
echo ready.
pause >nul
:Res
if %bleu% GEQ %num% goto Succeed
if NOT %bleu% GEQ %num% goto Fail
:Succeed
Echo %name%: I think that the struggles for such a long trip will be more then that
Echo %name%: How about %reward%?
Echo King Redwod: OK %reward% will work.
pause >nul
goto end
:Fail
Echo %name%: I think that you can give me %reward%.
Echo %name%: You know, for the struggles that there will be along the way.
echo If 2000 isn't good enough for you, I'll just have someone else do it.
pause >nul
:end
exit
:colorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
나는 편집을 만들었고, num을 변경하고, CheckR과 Y를 설정하여/a를 대신 설정했습니다. 그러나 그것은 여전히 나에게 오류를 준다. – QuantumPrimus
'@echo off'를 주석 처리하여 실제로 어떤 일이 발생하는지 확인하십시오. 배치 파일을 두 번 클릭하지 말고 명령 프롬프트 창을 열고 경로를 입력하여 실행하십시오. – aschipfl
예를 들어,'% bleu %'는'bleu'가 없기 때문에': res'에서 빈 문자열입니다 ': CheckY' 또는': CheckR' 또는': Convo' (이 목록은 불완전 할 수도 있음) 중 하나를 통해 설정됩니다. 따라서'% % bleu % GEQ % num % goto Succeed'가'GEQ 3 goto Success ... '와 같은 결과를 얻었습니다 ... 분명히 잘못된 구문 ... – JosefZ