I've "programmed" Rock, Paper, Scissors in a batch script. It used to work fine until I incorporated ASCII art. The script runs smoothly until I input a number between 1 and 3, after which the script abruptly terminates for some reason. Could someone please help me identify the problem? Batchskript:
@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
I've searched a bit, but no one seemed to have an issue with ASCII art similar to mine. All the other cases I found were related to problems with "|", but I'm not using this symbol.