プログラミング演習 II B (12/16)


課題10:スコア表示

マウスを使ってゲームができることを確認したら、 スコア表示をつけてみよう。
LEVEL は面の番号、TURN は通算の操作回数、LEFT は残っているライトの数である。


1)次のように座標と長さを宣言する。

lights.h の次の定数を追加・変更せよ。

#define SCREEN_WIDTH  300
#define SCREEN_HEIGHT 400

#define LIGHTS_XPOS    25
#define LIGHTS_YPOS   125

#define LIGHT_WIDTH    50
#define LIGHT_HEIGHT   50

#define LEVEL_XPOS     25
#define LEVEL_YPOS     20
#define LEVEL_WIDTH   100
#define LEVEL_HEIGHT   20

#define TURN_XPOS      25
#define TURN_YPOS      40
#define TURN_WIDTH    100
#define TURN_HEIGHT    20

#define LEFT_XPOS      25
#define LEFT_YPOS      60
#define LEFT_WIDTH    100
#define LEFT_HEIGHT    20

2)display.c に次の関数を追加せよ。

/*
 * void print_turn( int level, int turn, int left )
 * XpSetFont( "rk14" ) を実行後、LEVEL, TURN, LEFT それぞれの
 * 表示領域を黒く塗り潰し、その後、XpDrawString() で各文字を
 * 白色で表示せよ。
 * ヒント: sprintf() を使用するとよい。
 *
 * XpDrawString() で指定する座標は文字の左下であることに注意せよ。
 * もし日本語を使いたければ XpDrawString16() を用いよ。
 */

3)main.c の main() 関数内の適切な場所に print_turn() 関数の呼び出しを 追加せよ。


4)Makefile の末尾に次の記述を追加せよ。
これらは、lights.h が変更されたときに display.c および main.c を 再コンパイルせよ、という指示である。

display.o : display.c lights.h
main.o : main.c lights.h

5)make コマンドで再コンパイルし、動作を確認せよ。


Takuya NISHIMOTO
Last modified: Sun Dec 8 20:10:50 1996