シェル名 |
引数 |
リストファイル |
リストファイルの内容 |
janken_game.sh |
なし |
なし |
- |
#!/bin/bash
###########################################################
#
# じゃんけんゲーム
# ルール: 普通のじゃんけんゲーム
# 何回勝負にするか設定可能
# 引数:なし
#
# 作成日:2013/06/23
# 作成者:
#
###########################################################
#何回勝負
HOW_MANY_TIMES=3
#初期値代入
COUNT=1
PLAYER_WIN=0
CPU_WIN=0
#ゲーム説明
echo "じゃんけんゲームを開始します"
echo "先に${HOW_MANY_TIMES}回勝った方が勝ちです"
echo
sleep 3
echo "それではじゃんけんゲームを開始します"
echo
sleep 3
#メイン処理
while [ ${PLAYER_WIN} -lt ${HOW_MANY_TIMES} -a ${CPU_WIN} -lt ${HOW_MANY_TIMES} ]
do
NG_FLAG=1
#プレイヤー入力値チェックのループ処理
while [ ${NG_FLAG} -eq 1 ]
do
echo
echo "${COUNT}回戦!!"
echo
sleep 2
echo "じゃん"
sleep 1
echo "けん、"
echo
sleep 1
#プレイヤーの手を決定
echo "数字を入力してください"
echo "0:グー 1:チョキ 2:パー"
read PLAYER_NUM
echo
#入力値が正しいか判別
case ${PLAYER_NUM} in
0) NG_FLAG=0
;;
1) NG_FLAG=0
;;
2) NG_FLAG=0
;;
*) echo "正しい数字を入力してください"
;;
esac
done
#コンピュータの手を決定
CPU_NUM=`expr $RANDOM % 3`
case ${PLAYER_NUM} in
0) PLAYER_HAND="グー"
;;
1) PLAYER_HAND="チョキ"
;;
2) PLAYER_HAND="パー"
;;
esac
case ${CPU_NUM} in
0) CPU_HAND="グー"
;;
1) CPU_HAND="チョキ"
;;
2) CPU_HAND="パー"
;;
esac
#勝敗判定
if [ ${CPU_NUM} -eq $((PLAYER_NUM+1)) ]; then
#プレイヤーの勝ち数加算
PLAYER_WIN=`expr ${PLAYER_WIN} + 1`
JUDGE=0
elif [ ${CPU_NUM} -eq 0 -a ${PLAYER_NUM} -eq 2 ]; then
#プレイヤーの勝ち数加算
PLAYER_WIN=`expr ${PLAYER_WIN} + 1`
JUDGE=0
elif [ ${CPU_NUM} -eq ${PLAYER_NUM} ]; then
#引き分け
JUDGE=2
else
#CPUの勝ち数加算
CPU_WIN=`expr ${CPU_WIN} + 1`
JUDGE=1
fi
#結果を表示
case ${JUDGE} in
0) echo "YOU: ${PLAYER_HAND}"
echo "CPU: ${CPU_HAND}"
echo "あなたの勝ち !!"
COUNT=`expr ${COUNT} + 1`
;;
1) echo "YOU: ${PLAYER_HAND}"
echo "CPU: ${CPU_HAND}"
echo "あなたの負け !!"
COUNT=`expr ${COUNT} + 1`
;;
2) echo "YOU: ${PLAYER_HAND}"
echo "CPU: ${CPU_HAND}"
echo "あいこです"
;;
esac
echo "${PLAYER_WIN}勝${CPU_WIN}負"
echo
sleep 1
done
if [ ${PLAYER_WIN} -eq ${HOW_MANY_TIMES} ]; then
echo "おめでとう、あなたの勝ちです!"
else
echo "あなたの負けです"
fi
最終更新:2014年01月26日 12:46