答えを作成する(答え作成サブルーチン)

答え作成サブルーチン

異なる数字からなる3桁の数を作成します。配列を使って重複した数を選ばないようにすることもできますが、ここでは安直に異なる数になるまで繰り返し乱数を発生させます。手順としては

  1. 一桁目の1〜9の乱数を発生させる。
  2. 一桁目と異なる数になるまで繰り返し1〜9の乱数を発生させる。
  3. 一桁目、二桁目と異なる数になるまで繰り返し1〜9の乱数を発生させる。

となります。

【サブルーチン】

# 答え作成サブルーチン
sub make_answer {
	my $n0, $n1, $n2; # 各桁の変数を用意

	$n0=int(rand(9))+1; # 1〜9の乱数を作成

	do {
		$n1=int(rand(9))+1; # 1〜9の乱数を作成
	} until ($n1!=$n0); # $n0と$n1が異なるまで繰り返し

	do {
		$n2=int(rand(9))+1; # 1〜9の乱数を作成
	} until ($n2!=$n1 && $n2!=$n0); # $n0と$n1と$n2が異なるまで繰り返し

	return $n0*100+$n1*10+$n2; 
}

【呼び出し側】

print &make_answer;