我已经在批处理脚本中“编程”了石头、剪刀、布。它曾经工作得很好,直到我合并了 ASCII 艺术。该脚本运行平稳,直到我输入 1 到 3 之间的数字,之后脚本因某种原因突然终止。有人可以帮我找出问题吗? 批处理脚本:
@echo off
setlocal
chcp 65001 >nul
set Sieg=0
set Niederlage=0
set Unentschieden=0
:menu
cls
color f
echo Willkommen im Spiel!
echo.
echo 1. Schere
echo 2. Stein
echo 3. Papier
echo.
echo.
echo Ergebnisse:
echo Siege: %Sieg%
echo Niederlagen: %Niederlage%
echo Unentschieden: %Unentschieden%
set /p Userwahl="Bitte wählen Sie eine Zahl (1/2/3): "
set /a Scriptwahl=%random% %% 3 + 1
cls
if "%Userwahl%"=="1" set Userwahl=Schere
if "%Userwahl%"=="2" set Userwahl=Stein
if "%Userwahl%"=="3" set Userwahl=Papier
if "%Scriptwahl%"=="1" set Scriptwahl=Schere
if "%Scriptwahl%"=="2" set Scriptwahl=Stein
if "%Scriptwahl%"=="3" set Scriptwahl=Papier
if "%Userwahl%"=="%Scriptwahl%" (
if "%Userwahl%"=="Schere" (
echo _______ _______
echo ---' ____)____ # # #### ____(____ '---
echo ______) # # # (______
echo __________) # # #### (__________
echo (____) # # # (____)
echo ---.__(___) # # # # (___)__.---
echo ## ####
timeout /t 3 > nul
) else if "%Userwahl%"=="Stein" (
echo _______ _______
echo ---' ____) # # #### (____ '---
echo (_____) # # # (_____)
echo (_____) # # #### (_____)
echo (____) # # # (____)
echo ---.__(___) # # # # (___)__.---
echo ## ####
timeout /t 3 > nul
) else if "%Userwahl%"=="Papier" (
echo _______ _______
echo ---' ____)____ # # #### ____(____ '---
echo ______) # # # (______
echo _______) # # #### (_______
echo _______) # # # (_______
echo ---.__________) # # # # (__________.---
echo ## ####
timeout /t 3 > nul
color 6
echo # #
echo # # # # ###### # # ##### #### #### # # # ###### ##### ###### # #
echo # # ## # # ## # # # # # # # # # # # # ## #
echo # # # # # ##### # # # # #### # ###### # ##### # # ##### # # #
echo # # # # # # # # # # # # # # # # # # # # # #
echo # # # ## # # ## # # # # # # # # # # # # # ##
echo ##### # # ###### # # # #### #### # # # ###### ##### ###### # #
timeout /t 3 > nul
set /a Unentschieden+=1
) else if "%Userwahl%"=="Schere" (
if "%Scriptwahl%"=="Papier" (
echo _______ _______
echo ---' ____)____ # # #### ____(____ '---
echo ______) # # # (______
echo __________) # # #### (_______
echo (____) # # # (_______
echo ---.__(___) # # # # (__________.---
echo ## ####
timeout /t 3 > nul
color a
echo #####
echo # # # ###### ####
echo # # # # #
echo ##### # ##### #
echo # # # # ###
echo # # # # # #
echo ##### # ###### ####
timeout /t 3 > nul
set /a Sieg+=1
) else (
echo _______ _______
echo ---' ____)____ # # #### (____ '---
echo ______) # # # (_____)
echo __________) # # #### (_____)
echo (____) # # # (____)
echo ---.__(___) # # # # (___)__.---
echo ## ####
timeout /t 3 > nul
color 4
echo # #
echo ## # # ###### ##### ###### ##### # ## #### ######
echo # # # # # # # # # # # # # # # #
echo # # # # ##### # # ##### # # # # # # #####
echo # # # # # # # # ##### # ###### # ### #
echo # ## # # # # # # # # # # # # #
echo # # # ###### ##### ###### # # ###### # # #### ######
timeout /t 3 > nul
set /a Niederlage+=1
)
) else if "%Userwahl%"=="Stein" (
if "%Scriptwahl%"=="Schere" (
echo _______ _______
echo ---' ____) # # #### ____(____ '---
echo (_____) # # # (______
echo (_____) # # #### (__________
echo (____) # # # (____)
echo ---.__(___) # # # # (___)__.---
echo ## ####
timeout /t 3 > nul
color a
echo #####
echo # # # ###### ####
echo # # # # #
echo ##### # ##### #
echo # # # # ###
echo # # # # # #
echo ##### # ###### ####
timeout /t 3 > nul
set /a Sieg+=1
) else (
echo _______ _______
echo ---' ____) # # #### ____(____ '---
echo (_____) # # # (______
echo (_____) # # #### (_______
echo (____) # # # (_______
echo ---.__(___) # # # # (__________.---
echo ## ####
timeout /t 3 > nul
color 4
echo # #
echo ## # # ###### ##### ###### ##### # ## #### ######
echo # # # # # # # # # # # # # # # #
echo # # # # ##### # # ##### # # # # # # #####
echo # # # # # # # # ##### # ###### # ### #
echo # ## # # # # # # # # # # # # #
echo # # # ###### ##### ###### # # ###### # # #### ######
timeout /t 3 > nul
set /a Niederlage+=1
)
) else if "%Userwahl%"=="Papier" (
if "%Scriptwahl%"=="Stein" (
echo _______ _______
echo ---' ____)____ # # #### (____ '---
echo ______) # # # (_____)
echo _______) # # #### (_____)
echo _______) # # # (____)
echo ---.__________) # # # # (___)__.---
echo ## ####
timeout /t 3 > nul
color a
echo #####
echo # # # ###### ####
echo # # # # #
echo ##### # ##### #
echo # # # # ###
echo # # # # # #
echo ##### # ###### ####
timeout /t 3 > nul
set /a Sieg+=1
) else (
echo _______ _______
echo ---' ____)____ # # #### ___(____ '---
echo ______) # # # (______
echo _______) # # #### (__________
echo _______) # # # (____)
echo ---.__________) # # # # (___)__.---
echo ## ####
timeout /t 3 > nul
color 4
echo # #
echo ## # # ###### ##### ###### ##### # ## #### ######
echo # # # # # # # # # # # # # # # #
echo # # # # ##### # # ##### # # # # # # #####
echo # # # # # # # # ##### # ###### # ### #
echo # ## # # # # # # # # # # # # #
echo # # # ###### ##### ###### # # ###### # # #### ######
timeout /t 3 > nul
set /a Niederlage+=1
)
)
goto menu
我搜索了一下,但似乎没有人对与我类似的 ASCII 艺术有疑问。我发现的所有其他案例都与“|”的问题有关,但我没有使用这个符号。
将您的图片移至函数中,然后您可以重复使用它们,并且右括号是无害的。
...
if "%Userwahl%"=="%Scriptwahl%" (
if "%Userwahl%"=="Schere" (
call :show_schere_schere
timeout /t 3 > nul
) else if "%Userwahl%"=="Stein" (
call :show_stein_stein
timeout /t 3 > nul
...
:show_schere_schere
echo _______ _______
echo ---' ____)____ # # #### ____(____ '---
echo ______) # # # (______
echo __________) # # #### (__________
echo (____) # # # (____)
echo ---.__(___) # # # # (___)__.---
echo ## ####
exit /b
:show_stein_stein
echo _______ _______
echo ---' ____) # # #### (____ '---
echo (_____) # # # (_____)
echo (_____) # # #### (_____)
echo (____) # # # (____)
echo ---.__(___) # # # # (___)__.---
echo ## ####
exit /b