#/!bin/bash #出力先を指定 txt=quiz3.txt #重複しないよう1桁目から順に正解となる4桁の数を決定 A1=`expr $RANDOM % 9 + 1`; A2=$A1 until [ $A2 != $A1 ]; do A2=`expr $RANDOM % 9 + 1`; done; A3=$A2 until [ $A3 != $A1 -a $A3 != $A2 ]; do A3=`expr $RANDOM % 9 + 1`; done; A4=$A3 until [ $A4 != $A1 -a $A4 != $A2 -a $A4 != $A3 ]; do A4=`expr $RANDOM % 9 + 1`; done ANSWER=""$A1""$A2""$A3""$A4"" #最初の回答を促す echo 'Type your first answer!' while :; do read answer #入力した4桁の数字を1桁ずつ読み込み、重複がある場合は打ち直し a1=`echo "$answer" | cut -c1` a2=`echo "$answer" | cut -c2` a3=`echo "$answer" | cut -c3` a4=`echo "$answer" | cut -c4` if [ $a1 = $a2 -o $a1 = $a3 -o $a1 = $a4 -o $a2 = $a3 -o $a2 = $a4 -o $a3 = $a4 ] then echo 'Your Answer has some OVERLAPPED DIGITS. Try Again.'; continue else break; fi; done #最初の回答を出力 echo $answer >> $txt #正解するまでループを繰り返す n=1 until [ $answer = $ANSWER ]; do #Hitの数を計算する if [ $a1 = $A1 ]; then h1=1; else h1=0; fi if [ $a2 = $A2 ]; then h2=1; else h2=0; fi if [ $a3 = $A3 ]; then h3=1; else h3=0; fi if [ $a4 = $A4 ]; then h4=1; else h4=0; fi hit=`expr $h1 + $h2 + $h3 + $h4` #Blowの数を計算する if [ $a1 = $A2 -o $a1 = $A3 -o $a1 = $A4 ]; then b1=1; else b1=0; fi if [ $a2 = $A1 -o $a2 = $A3 -o $a2 = $A4 ]; then b2=1; else b2=0; fi if [ $a3 = $A1 -o $a3 = $A2 -o $a3 = $A4 ]; then b3=1; else b3=0; fi if [ $a4 = $A1 -o $a4 = $A2 -o $a4 = $A3 ]; then b4=1; else b4=0; fi blow=`expr $b1 + $b2 + $b3 + $b4` #HitとBlowの数を表示し、次の回答を入出力、重複がある場合は打ち直し echo "$hit Hit $blow Blow" | tee -a $txt while :; do read answer a1=`echo "$answer" | cut -c1` a2=`echo "$answer" | cut -c2` a3=`echo "$answer" | cut -c3` a4=`echo "$answer" | cut -c4` if [ $a1 = $a2 -o $a1 = $a3 -o $a1 = $a4 -o $a2 = $a3 -o $a2 = $a4 -o $a3 = $a4 ] then echo 'Your Answer has some OVERLAPPED DIGITS. Try Again.'; continue else break; fi; done echo $answer >> $txt #回答回数をカウントし次のループへ移行 n=`expr $n + 1` done #正解するとメッセージと合計回答数を表示して終了 echo 'Your number matches the answer!!' | tee -a $txt echo "You answered $n times to get the answer." | tee -a $txt