第10回 簡単なゲーム2(構造体の利用)

今回の内容

各課題に取り組む手順

  1. まず自力でプログラムを書いてみる. 間違っていても構わない.教科書やWeb上のリファレンスを見ても構わない.
  2. ひととおり入力を終えたら,ビルドする前にソースをレポートに貼り付けておく
  3. ビルドする.ビルドエラーをレポートに貼り付けておく.
  4. エラーを取り除き,正しく動作するプログラムを作成する.
  5. 自力で考えた限界のソースコードをレポートに貼り付けておく.
  6. 友人と相談した場合,誰と相談したか,また,相談した結果気がついた間違いをレポートに記述する.
  7. 完成版のソースコード,および,実行結果の画像をレポートに貼り付ける.

[準備]

[演習10.1]

実行結果

 void drawCircle(double pos_x, double pos_y, double *color, double radius, int startAngle, int endAngle)
 
 void drawFace3(int type)
 
 void display(void)
 
 void init(void)
 
 int main(int argc, char* argv[])

[演習10.2]

そうすると、眉(左)は、

 pos_0 = posGiven[0];
 sing1 = -1.0;
 size = 0.3;
 param1 = 0.3;
 pos_1 = posGiven[1];
 sing2 = 1.0;
 param2 = 0.4;
 color = color_f
 param3 = 0.1;
 startangle = 0;
 endangle = 180;

上記の左辺が構造体メンバとなるような構造体 face を考えてみよう

 typedef  struct {
 	double pos_0;	// 位置x座標
 	double pos_1;	// 位置y座標
 	double size;	// サイズ
 	double sign1;	// 符号
 	double sign2;	// 符号
 	double param1;	// パラメータ1
 	double param2;	// パラメータ2
 	double param3;	// パラメータ3
 	double color[3];// カラー
 	int  startangle;// 円の開始角度
 	int  endangle;	// 円の終了角度
 } face;

ここでは、typedef宣言を利用し、構造体の宣言と同時にその構造体をface型としている

[課題10.1]

以上を踏まえて、演習10.1と同じ結果になるプログラムを構造体を用いて書いてみよう。

[課題10.2] (応用)

課題10.1では、face型の構造体変数をそれぞれ

 brow_left, brow_right, eye_left, eye_right, nose, mouth_t0, mouth_t1, faceline

という変数名で作成した。これらの変数を構造体配列にしたプログラムに書き直してみよう。
構造体配列へのデータの格納の順序は、基本的には上記の構造体変数の順序とするが、異なっていてもよい。

レポート

提出先・期限
https://www.kagoshima-u.ac.jp/manaba/の「プログラミング言語I及び演習」のレポートより提出
演習当日の23:55まで
内容
Microsoft Wordを用いてレポートを作成すること.

下記について記述すること.

提出ファイル
Wordファイルにソースコードやキャプチャした実行画面などを貼り付けてmanabaのレポートから提出すること.
(*.cファイルを送る必要はありません。)
テンプレート等(Word)
Word表紙 (回数やタイトルなどを適宜修正して使うこと.)