#!/bin/bash # 第一引数を自分の手(MyHand)とする case $1 in gu) MH=0 ;; choki) MH=1 ;; pa) MH=2 ;; *) echo "Error: chose from "gu" or "choki" or "pa"" exit 1 esac # RANDOM変数から0~2の3つの値(OpponetHand)をとる OH=`expr $RANDOM % 3` # OHを数字から名前に変更 case $OH in 0) OHN=gu ;; 1) OHN=choki ;; 2) OHN=pa esac # お互いに出したものを表示 echo "Your hand : $1"; echo "Opponent's hand : $OHN"; # 勝敗は!? echo -n "Result : " # MH = 0(gu),1(choki),2(pa) # OH = 0(gu),1(choki),2(pa) # 勝つ条件は以下の通り # MH:OH # 0:1 # 1:2 # 2:0 # 同じ値ならあいこ if [ $MH -eq $OH ]; then echo aiko # 上記から[MH+1=OH]という条件と[MH=2 & OH=0]という条件時には勝利とする elif [ `expr $MH + 1` -eq $OH ] || [ $MH -eq 2 -a $OH -eq 0 ]; then then echo "you win" else # それ以外、負け echo "you lose" fi
実際にじゃんけんしてみる
$ ./janken.sh Error: chose from "gu" or "choki" or "pa" $ $ ./janken.sh pa Your hand : pa Opponent's hand : gu Result : you win $ $ ./janken.sh pa Your hand : pa Opponent's hand : choki Result : you lose $ $ ./janken.sh pa Your hand : pa Opponent's hand : pa Result : aiko $ $ ./janken.sh gu Your hand : gu Opponent's hand : pa Result : you lose $ ./janken.sh choki Your hand : choki Opponent's hand : choki Result : aiko $ $ ./janken.sh choki Your hand : choki Opponent's hand : gu Result : you lose $
コメント