Busy Wait
Menu簡単なゲームプログラムをUnix 上で作成したい。
適当なGUI API ( Java AWT, Perl/Tk, Qt, Aqua ) あるいはUnix APIを用いて、
http://ie.u-ryukyu.ac.jp/hg/teacher/kono/os/ex/keyrecord/を参考に、kbhit() という以下のような関数を作成せよ。
kbhit()
ユーザからの入力があったら、その入力に対応する整数値>0を返す ユーザからの入力がなかったら、0を直ちに返すGUIのメインループは以下のようになる。
for (;;) { if ( c=kbhit() ) process(c); move(); }端末上で処理を行なう場合は、system("stty raw"); を呼び出しておくと良い。
例えば、process(c) はユーザの入力を処理し、move() は、ゲームのオブジェクトの動作を行う。簡単な例題を作成し、動作を確認せよ。
もう一つ、kbhit_with_timeout(int msec) というtime を持つ関数を作成し、kbit()とのCPU使用率を比較せよ。