課題 9(余裕のある人)

 提出締切 : 講義期間中  提出先 :

『数当てゲーム』というのを小さい頃にやった人は多いだろう.出題者がたとえば『8351』などの4つの数を問題として出し,回答者に隠しておく.この4つの数を回答者が以下のようにして当てるというものである.

回答者は『3159』などと推測した4つの数をコールできる.すると,出題者は『位置と数があっているものの個数』と『位置は違うが数はあっているものの個数』を答えなければならない.たとえば『8351』に対して『3159』とコールすると,出題者は『2,1』と答える.この出題者の答を手がかりに,回答者は次々と推測した数をコールしていき,できるだけ少ない回数で元の4つの数を当てる,というものである.(本当のゲームでは,お互いに問題を出し合ってどちらが早く正解に達するか,というものであるが,ここでは出題者と回答者がいるというセッティングにしておく.)

この課題 9 では,乱数で数当てゲームの問題を作り,推測した数を入力したら,上記のような2つの個数を出力するような関数 game[] を作ってほしい.このためには数を入力する機能が必要となるが,それは Input[] という関数で実現できる.たとえば n = Input[] という行が実行されると,入力を促すウィンドウが現れ,自分が数を入力するとその数が n に代入される.

ただし,ゲームの問題は1から9までの相異なる4つの数であるとし,入力する際にも1から9までの相異なる4つの数でなければ受け付けない,という仕様にして欲しい.プログラムの実行例は以下の通りである.Input[] によって現れるウィンドウは省略している.


以上.

トップページ