シェルスクリプト(Bash)でターミナル上で動く足し算ゲームを作る




乱数を使ってランダムな問題を表示させます。乱数は1〜20の範囲で発生させます。

#!/bin/bash
question() {
	echo "$1 + $2 = ?"
}
question $((RANDOM % 20 + 1)) $((RANDOM % 20 + 1))


実行結果

13 + 19 = ?




ユーザーの解答を読み取り、正誤判定を行います。
解答が正解だった場合のみ次の問題へ移行します。
不正解だった場合はそのままゲーム終了となります。

read answer
if [ $answer -eq $(($1 + $2)) ]; then
	echo "正解!"
	question $((RANDOM % 20 + 1)) $((RANDOM % 20 + 1))
else
	echo "不正解!"
fi




全体のコードです。

#!/bin/bash
question() {
	echo "$1 + $2 = ?"
	read answer
	if [ $answer -eq $(($1 + $2)) ]; then
		echo "正解!"
		question $((RANDOM % 20 + 1)) $((RANDOM % 20 + 1))
	else
		echo "不正解!"
	fi
}
question $((RANDOM % 20 + 1)) $((RANDOM % 20 + 1))


実際のゲームの実行画面

12 + 5 = ?
17
正解!
3 + 5 = ?
8
正解!
10 + 19 = ?
29
正解!
15 + 12 = ?
27
正解!
20 + 11 = ?
22
不正解!