Busy Wait

Busy Wait

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使用率を比較せよ。


Shinji KONO / Mon Dec 16 16:47:30 2019