T-kazu1234
2/12/2020 - 11:13 AM

バッチファイルでじゃんけんゲーム

@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

------------------------------------------------------------------------------------------