choiceコマンドでアドベンチャーゲーム


アニメ『ナナマルサンバツ』

クイズにハマりそうです。

今回はWindowsプロンプトで実行できるchoiceコマンドを使ってみます。
choiceコマンドは、ユーザに選択式入力をさせる便利なコマンドです。

デフォルトではY(y)またはN(n)が入力できます。メッセージを表示するには、/Mオプションを使います。

C:\Users\takk\Desktop>choice /M "Yと押せば1が返り、Nを押せば2が返ります"
Yと押せば1が返り、Nを押せば2が返ります [Y,N]?Y

C:\Users\takk\Desktop>echo %ERRORLEVEL%
1

C:\Users\takk\Desktop>choice /M "Yと押せば1が返り、Nを押せば2が返ります"
Yと押せば1が返り、Nを押せば2が返ります [Y,N]?N

C:\Users\takk\Desktop>echo %ERRORLEVEL%
2

C:\Users\takk\Desktop>

子供の頃、初めてのプログラミングは、BASICでしたが、簡単なアドベンチャーゲームを作って遊んでいました。コマンドプロンプトでchoiceを使って再現すると、こんなゲームだった気がします。

adventure.bat

:LABEL_01
@choice /M "道が左右に分かれています。右に進みますか?"
@if %ERRORLEVEL% EQU 1 @goto LABEL_03

:LABEL_02
@choice /M "行き止まりでした。引き返しますか?"
@if %ERRORLEVEL% EQU 1 @goto LABEL_01

:LABEL_03
@choice /M "怪獣が現れました。逃げますか?"
@if %ERRORLEVEL% EQU 1 @goto LABEL_02

@echo "倒されました。GAME OVER"

上のバッチファイルを実行すると、アドベンチャーゲームが始まります。

C:\Users\takk\Desktop>adventure
道が左右に分かれています。右に進みますか? [Y,N]?N
行き止まりでした。引き返しますか? [Y,N]?Y
道が左右に分かれています。右に進みますか? [Y,N]?Y
怪獣が現れました。逃げますか? [Y,N]?Y
行き止まりでした。引き返しますか? [Y,N]?N
怪獣が現れました。逃げますか? [Y,N]?N
"倒されました。GAME OVER"
C:\Users\takk\Desktop>

YとNを入力するのに、Enterキーが不要なところが良いです。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA