Saved from https://dixq.net/forum/viewtopic.php?t=441
@echo off
setlocal enabledelayedexpansion
REM ----------------------------------
REM 値の設定
REM ----------------------------------
set input_str=じゃんけん:
set hand0=グー
set hand1=チョキ
set hand2=パー
REM ----------------------------------
REM ゲーム開始
REM ----------------------------------
echo じゃんけんゲームです。
echo 自分が出す手は
echo 0:グー
echo 1:チョキ
echo 2:パー
echo です。
echo それではゲームを開始します。
set /p aaa=""
:game_start
REM ----------------------------------
REM 画面のクリア
REM ----------------------------------
cls
REM ----------------------------------
REM プレイヤーの手を取得
REM ----------------------------------
set ply_val=
set /p ply_val=%input_str%
if "%ply_val%" equ "" (
echo 0か1か2を入力してください。
set /p aaa=""
goto game_start
)
if %ply_val% lss 0 (
echo 0か1か2を入力してください。
set /p aaa=""
goto game_start
) else if %ply_val% gtr 2 (
echo 0か1か2を入力してください。
set /p aaa=""
goto game_start
)
REM ----------------------------------
REM CPUの手を取得
REM ----------------------------------
set ene_val=%RANDOM%
set /a ene_val%%=3
REM ----------------------------------
REM 互いの手を表示
REM ----------------------------------
echo 自分:!hand%ply_val%!
echo 相手:!hand%ene_val%!
REM ----------------------------------
REM あいこの判定
REM ----------------------------------
if %ply_val% equ %ene_val% (
set input_str=あいこで:
set /p aaa=""
goto game_start
)
set /a tmp=%ply_val%+1%%3
if %tmp% equ %ene_val% (
REM ----------------------------------
REM 勝ち
REM ----------------------------------
echo あなたの勝ちです。
) else (
REM ----------------------------------
REM 負け
REM ----------------------------------
echo あなたの負けです。
)
REM ----------------------------------
REM リトライ
REM ----------------------------------
set retry=
set /p retry="もう一度行いますか?(y/n)"
if /i "%retry%" equ "Y" (
set input_str=じゃんけん:
goto game_start
)
endlocal
pause
------------------------------------------------------------------------------------------