#!/bin/bash echo "Do you take a card? [y/n]" #Do you take a card?[y/n]と表示する。 read a #入力された文字をaとして読み込む。 b=$RANDOM while [ $b -gt 10 -o $b -eq 0 ] do b=$RANDOM done #$RANDOMで0から32767までのランダムな数が出てくるので、while文により、ランダムな数を10以下の0ではない数に絞る。そして、その数をbとして読み込む。 if [ $a = y ] then echo Your card is $b. echo Now, your score is $b. echo -n "score: $b" > quiz3.txt #始めにyと入力されれば、上記の$bが最初のスコアになり、Your card is $b. Now, your score is $bと表示される。quiz3.txtにはscore: $bが書き込まれる。 elif [ $a = n ] then echo "You can't start this game. Bye-Bye." exit #始めにnと入力されれば、You can't start this game. Bye-Bye.と表示して、終了。 else echo "You must push y or n." exit #始めにyかn以外の文字が入力されれば、You must push y or n.と表示して、終了。 fi while test $b -lt 22 #$bが22より小さいときは、以下を実行する。 do echo "Do you take a card? [y/n]" read a #Do you take a card?と表示して、入力された文字をaとして読み込む。 if [ $a = y ] #yと入力されれば、以下を実行する。 then c=$RANDOM while [ $c -gt 10 -o $c -eq 0 ] do c=$RANDOM done #はじめ、$bを選んだように、$Cも同じ条件だ選ぶ。 b=`expr $c + $b` #次に新しく、bを$cと$bを足したものと定義する。 echo Your card is $c. echo Now, your score is $b. echo -n ", $c" >> quiz3.txt #Your card is $c.とNow, your score is $b.を表示して、, $cをquiz3.txtに書き込む。 if [ $b -ge 22 ] #$bが22をこえた時、以下を実行する。 then echo " " >>quiz3.txt echo "total: $b" >>quiz3.txt echo "Your score is over 21." | tee -a quiz3.txt echo "Game over!! Try again." | tee -a quiz3.txt exit #Your score is over 21.とGame over!! Try again.表示して、quiz3.txtにも書き込む。これで終了です。あとここでecho " " >>quiz3.txtと入力したのは、quiz3.txtの中のscore:の行を改行するためである。 elif [ $b = 21 ] #$bが21のとき、以下を実行する。 then echo "Nice! Black Jack!" echo " " >> quiz3.txt echo "total: $b" >>quiz3.txt echo "Congratulation!!" >> quiz3.txt exit #Nice! Black Jack!と表示して、total: $bとCongratulation!!をquiz3.txtに書き込む。これで終了です。 fi #ここまでがyと入力したときに実行される。 elif [ $a = n ] #nと入力されれば、以下を実行する。 then echo "Finish. Your score is $b. " echo ' ' >> quiz3.txt echo "total: $b" >> quiz3.txt echo "Your score is $b, finish." >> quiz3.txt exit #Finish. Your score is $b.と表示して、total: $bとYour score is $b, finish.をquiz3.txtに書き込む。これで終了です。 else echo "You must push y or n!" exit #yかn以外が入力されれば、You must push y or n!と表示して、終了する。 fi done #これでユーザーのスコアが、21以上になるか、途中でゲームを止めたかになる。