第3回BASHゼミ解答

問題

乱数を取得し、その乱数を当てる数当てゲームを作成しなさい。
  なお、数を当てたときに数を当てるまでの回数も
  表示せよ。
  while版とuntil版を作成すること。

  ヒント:○ 乱数を取得するのは、$RANDOM
        0から32767まで。
           ○ 標準入力を取得するには、read

解答

*while版

#!/bin/bash

num=$RANDOM

count=0
x=-1

echo "***** ある隠された値を当ててください *****"

while [ $x -ne $num ]
do
    echo "0から32767までの数字を入力してください"
    read x
    if [ $x -gt $num ]
    then
        echo "もっと小さいですよ"
    elif [ $x -lt $num ]
    then
        echo "もっと大きいですよ"
    fi
    let count++
done

echo "ずばり当たりです!"
echo "当たるまで$count回かかりました。"

*until版

#!/bin/bash

num=$RANDOM

count=0
x=-1

echo "***** ある隠された値を当ててください *****"

until [ $x -eq $num ]
do
    echo "0から32767までの数字を入力してください"
    read x
    if [ $x -gt $num ]
    then
        echo "もっと小さいですよ"
    elif [ $x -lt $num ]
    then
        echo "もっと大きいですよ"
    fi
    let count++
done

echo "ずばり当たりです!"
echo "当たるまで$count回かかりました。"