0

このサイトで質問を検索しましたが、問題の解決策が見つかりませんでした。

システムは、プレイヤーとコンピューターに 2 から 12 までの乱数を与えます。

これには、X が Y よりも大きい場合、X が Y よりも小さい場合、および X が Y と同じ場合の 3 つの部分があります。

を開始する.batと、うまく機能し、 を選択Play Gameし、ベット (たとえば 20) を入力しますが、このプロセスを開始すると、ウィンドウが閉じて、何が書かれているかを読むことができません。点滅するテキストがいくつか表示されます。'Your' と 'syntax' も見ましたが、すぐに消えてしまいます。

3 つのものを削除するとif if if、お金、賭け金、統計、その他すべてが表示され、私が書いた「チート」でそれを増減することさえできるので、うまくいったと確信しています。

だから、ここにあります:

set /p setbet=Please type a number to select bet: 
if "%setbet%"=="1" set bet=20
if "%setbet%"=="2" set bet=50
if "%setbet%"=="3" set bet=100
if "%setbet%"=="4" set bet=150
if "%setbet%"=="5" set bet=200
if "%setbet%"=="6" set bet=250
if "%setbet%"=="7" set bet=300
echo.
echo Your bet is %bet%.
echo.
pause
cls
set /a money-=bet
set /a playernum=%random% %%12 +2
set /a enemynum=%random% %%12 +2
echo.
echo You roll:        %playernum%
echo Enemy rolls:     %enemynum%
echo.
if %playernum% LSS %enemynum%
(
echo Enemy wins. Please try again.
echo Your current money is %money%.
echo You lost %bet% money.
echo.
pause
goto INTRO
)
if %enemynum% LSS %playernum%
(
set /a money+=bet*2
echo You win.
echo Your current money is %money%.
echo You won %bet% money.
echo.
pause
goto INTRO
)
if %enemynum% EQU %playernum%
(
set /a money+=bet
echo It's a tie.
echo You won the bet (%bet%), but your money didn't changed.
echo Your money is now %money%.
echo.
pause
goto INTRO

ありがとうございました!

4

2 に答える 2

0

delayed expansion( )を検索しsetlocal enabledelayedexpansionて括弧を数えます。すべての開き括弧には閉じ括弧が必要です (私が知っている例外がありますが、ここにはありません)。の後の開き括弧if は、 のように同じ行にある必要がありますififパーサーはここで停止します。これ%bet%)は、最後の開き括弧の後の最初の閉じ括弧であるためです。

于 2013-08-25T15:17:27.853 に答える