到達目標
(1)簡単なゲームプログラムを作成できる力を身に着ける
(2)発案した解決策を実現するためのアルゴリズムが設計できる.
(3)設計したアルゴリズムをC言語により実装することができる.
(4)課題の達成に必要な情報を文献や書籍から収集し,それを活用する能力がある.
(5)最先端のツールを自ら学習し使いこなせる
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1
| 完成度の高いゲームプログラムを作成できた | ゲームプログラムを作成できた | ゲームプログラムを作成できない |
評価項目2 | 難易度の高いアルゴリズムを設計し、実装できた | アルゴリズムを設計し、実装できた | アルゴリズムを設計、実装ができない |
評価項目3 | 最先端のツールを自ら学習し使いこなせた | 最先端のツールを授業で演習する内容は使うことができた | 最先端のツールを使えない |
学科の到達目標項目との関係
教育方法等
概要:
ゲームプログラムの基礎を学び、C言語を用いてゲームプログラム作成を行い、実践的なプログラミング能力とアルゴリズムを考える能力を身に着けることを目指す。まずはDXライブラリを用いたブロック崩しゲームを作成する。次にオセロを題材としたAI手法を学ぶ。次にシューティングゲームでキャラクターが動く原理を学び、ゲームバランスの調整を行う。次に物理エンジンを使ったゲームプログラムを作成する。
授業の進め方・方法:
到達目標(1)~(5)の到達度を,・課題作品 100% で評価し、合計を本科目の総合評価とする。総合評価が100点満点中60点以上であることを合格の条件とする。
注意点:
C言語、アルゴリズムの基礎を理解していることを条件とする。開発環境はVisual C++を使用する。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
課題演習 ガイダンス、ブロック崩しプログラム1 |
開発環境の構築、ボールとバーの動き作成
|
2週 |
課題演習 ブロック崩しプログラム2 |
ブロック崩しプログラム完成
|
3週 |
課題演習 ブロック崩しプログラム3 |
オリジナルアイデアを加えたブロック崩しプログラム完成
|
4週 |
課題演習 オセロゲーム作成1 |
合法手を選べるオセロプログラム作成
|
5週 |
課題演習 オセロゲーム作成2、オセロAI探索手法の解説、オセロAI 作成1 |
ルール通りプレイできるオセロプログラム完成、オセロAI概要理解、最大評価値の手を選ぶAIの完成
|
6週 |
課題演習 オセロAI 作成2 |
MINMAX探索理解、MINMAX探索でプレイするオセロAI完成
|
7週 |
課題演習 オセロGUI作成 |
オセロGUI完成
|
8週 |
課題演習 シューティングゲーム1 曲線的な動き |
キャラクターを曲線的に動かすバラ曲線など手法の理解、面白い動きをさせるアルゴリズムの作成
|
2ndQ |
9週 |
課題演習 シューティングゲーム2 大量の弾を動かす |
弾を大量に動かす手法の理解、大量の弾を動かす面白いアルゴリズムの作成
|
10週 |
課題演習 シューティングゲーム3 自由に制作 |
ゲームバランスを考慮した面白いシューティングゲームの完成
|
11週 |
課題演習 物理エンジンを使うプログラム1 Box2Dの導入と実装 |
物理エンジンBox2Dの使用方法理解、Box2Dを使った簡単なプログラムの作成
|
12週 |
課題演習 物理エンジンを使うプログラム2 |
Box2Dを使う実体化ゲームに面白いアイデアを加えたプログラムの完成
|
13週 |
作品発表 これまでに作ったプログラムの発表を行う |
自分が作った作品を同級生に紹介し、面白さを伝える
|
14週 |
作品発表2 プログラムの発表をオープンキャンパスで行う |
自分が作った作品をオープンキャンパス参加者に紹介し、面白さを伝える
|
15週 |
作品発表3 プログラムの発表をオープンキャンパスで行う |
自分が作った作品をオープンキャンパス参加者に紹介し、面白さを伝える
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 3 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 1 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 1 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | |
評価割合
| 試験 | 課題 | 相互評価 | 態度 | ポートフォリオ | その他 | 合計 |
総合評価割合 | 0 | 100 | 0 | 0 | 0 | 0 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
専門的能力 | 0 | 100 | 0 | 0 | 0 | 0 | 100 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |