2014
3/4
講義概要
概要説明
- 時間: 春学期水曜2時限
- 場所: 4-108
- 対象: S科2年(田村クラス)
- 担当: 田村仁(創造システム工学科)
目的
リアルタイムプログラミングの基礎として,リアルタイムパズルゲームの代表格であるテトリスを,C言語を用いて作成する方法について解説する.C言語の基礎はわかったが,実際に何か実用的なプログラムを作成しようと思ったときに,どのように開発していくのかが分からないという人が多い.このクラスでそうした人のために,どのように考えて一からプログラムを作り上げていくのか,全手順を説明している.
ここでのテトリスは合計500行程度のプログラム量である.プログラミング初心者には大きな目標に見えるかもしれない.しかしテトリスのような一見複雑なプログラムも,「ブロックを回転させる」「揃ったラインを一つ消す」などの機能に分けて考えると,10個程度の機能からなっていることがわかる.それぞれの機能を実現するだけの単機能プログラムならば,どれも10行20行程度のプログラムでしかない.これはC言語入門の練習課題程度のものである.
テトリスはこうした各機能のプログラムを寄せ集めて,合計だけ見れば数百行のプログラムになっているだけである.つまり,テトリスのようなゲームであっても,結局はC言語入門程度の簡単なプログラム課題を,ただ根気よく積み上げるだけで作成可能なのである.
とにかく,挑戦してみよう(毎週1コマで6週間).

テキスト
評価方法
- 作成プログラムによる
質問などの連絡先
- 居室: 4号館201室
- 在室時間:田村の在室時間
- E-mail:tamura@nit.ac.jp
2014
3/4
授業
日付 | 回 | 内容 | 課題 |
---|---|---|---|
1週目 | 第1回 | UbuntuでのC言語の開発方法,STEP1 端末の任意の場所に文字に任意の色で表示する方法 | 課題1と課題2 |
2週目 | 第2回 | STEP2 文字を時間とともに移動させる方法STEP3 ブロックのセルを落下させるようにするSTEP4セル落下プログラムの整理 | 課題3と課題4と課題5 |
3週目 | 第3回 | STEP5 ブロックを落下させるSTEP6 リアルタイムキー入力を行うSTEP7 矢印キーでブロックを左右に動かす | 課題6と課題7と課題8 |
4週目 | 第4回 | STEP8 左右に動かしながら落下させるSTEP9 ブロックの回転STEP10 ランダムなブロック落下の繰り返し処理 | 課題9と課題10と課題11 |
5週目 | 第5回 | STEP11 ブロックの積み重ねSTEP12 ライン消滅STEP13 Next表示 | 課題12と課題13と課題14 |
6週目 | 第6回 | STEP14 得点表示と時間調整 | 課題15と講評 |