#!/bin/bash #4桁の答えとなる数字を,重複しないように1桁目から順に決定する. x1=`expr $RANDOM % 8 + 1` while : do x2=`expr $RANDOM % 8 + 1` if [ $x2 -ne $x1 ] then break fi done while : do x3=`expr $RANDOM % 8 + 1` if [ $x3 -ne $x1 -a $x3 -ne $x2 ] then break fi done while : do x4=`expr $RANDOM % 8 + 1` if [ $x4 -ne $x1 -a $x4 -ne $x2 -a $x4 -ne $x3 ] then break fi done ra=""$x1""$x2""$x3""$x4"" #正答の完成. x1-x4は,それぞれ1桁目-4桁目に対応する. echo "Right answer is $ra." >> quiz3.txt #正答を,"quiz3.txt"に出力する. n=1 #回答数のカウンターをまず1にする. echo 'Type your first answer!' #予想の回答を促す. read answer #入力した4桁の数字を1桁ずつ読み込み,重複がある場合は打ち直しを促す. y1=`echo "$answer" | cut -c1` y2=`echo "$answer" | cut -c2` y3=`echo "$answer" | cut -c3` y4=`echo "$answer" | cut -c4` if [ $y1 = $y2 -o $y1 = $y3 -o $y1 = $y4 -o $y2 = $y3 -o $y2 = $y4 -o $y3 = $y4 ] then echo 'Your Answer has some OVERLAPPED DIGITS. Try Again.' continue fi echo $answer >> quiz3.txt #最初の回答を出力する. until [ $answer = $ra ] #答えが正しくなるまでループを繰り返す. do #Hitの数を計算する. if [ $y1 = $x1 ] then h1=1 else h1=0 fi if [ $y2 = $x2 ] then h2=1 else h2=0 fi if [ $y3 = $x3 ] then h3=1 else h3=0 fi if [ $y4 = $x4 ] then h4=1 else h4=0 fi hit=`expr $h1 + $h2 + $h3 + $h4` #Blowの数を計算する. if [ $y1 = $x2 -o $y1 = $x3 -o $y1 = $x4 ] then b1=1 else b1=0 fi if [ $y2 = $x1 -o $y2 = $x3 -o $y2 = $x4 ] then b2=1 else b2=0 fi if [ $y3 = $x1 -o $y3 = $x2 -o $y3 = $x4 ]; then b3=1 else b3=0 fi if [ $y4 = $x1 -o $y4 = $x2 -o $y4 = $x3 ] then b4=1 else b4=0 fi blow=`expr $b1 + $b2 + $b3 + $b4` echo "$hit Hit $blow Blow" echo "$hit Hit $blow Blow" >> quiz3.txt #HitとBlowの数を表示し,次の回答を入力/出力する. 重複がある場合は打ち直しを促す. n=`expr $n + 1` #回答回数をカウントして,次のループへ移行する. read answer #新たに読み込む. y1=`echo "$answer" | cut -c1` y2=`echo "$answer" | cut -c2` y3=`echo "$answer" | cut -c3` y4=`echo "$answer" | cut -c4` if [ $y1 = $y2 -o $y1 = $y3 -o $y1 = $y4 -o $y2 = $y3 -o $y2 = $y4 -o $y3 = $y4 ] then echo 'Your Answer has some OVERLAPPED DIGITS. Try Again.' continue fi echo $answer >> quiz3.txt done echo "Your number matches the answer!!" echo "You answered $n times to get the answer." echo "Your number matches the answer!!" >> quiz3.txt echo "You answered $n times to get the answer." >> quiz3.txt #正解すると,メッセージと合計回答数を表示して終了する.