プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース

Slides:



Advertisements
Similar presentations
1 C++ における OOP を用いた 書き方講座 H 山崎貴英. 2 今回の内容 OOP とは? C++ の超基礎 注釈 書いてあるコードはすべて一部抜粋。 コピペだと動かないよ!
Advertisements

C 言語講座第 5 回 構造体. 構造体とは ... 異なる型の値をまとめて新しい型とする 機能がある . つまり , 複数の変数を 1 つのまとまりにできる . 配列と違って同じ型でデータをまとめるのではな く違った型のデータをまとめられる .
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作 第4回 マルチスレッドとネットワーク. 今日の内容 マルチスレッド – ローディングの進捗表示とか – 処理高速化も見込めます ネットワーク通信 – 必然的にマルチスレッドを扱います.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
アルゴリズムとデータ構造 第2回 線形リスト(復習).
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
~手続き指向からオブジェクト指向へ(Ⅰ)~
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
アルゴリズムとデータ構造1 2007年6月12日
情報工学演習I 第13回 C++の演習5(仮想関数).
コンピュータと情報 第3回 補遺 ファイルとフォルダ.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
社会人学習講座 「Javaプログラミング概論」
インタラクティブ・ゲーム制作 <プログラミングコース>
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
インタラクティブ・ゲーム制作 <プログラミングコース>
迷宮師 コードレビュー チームカテキン.
ソフトウェア工学 知能情報学部 新田直也.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
アルゴリズムとプログラミング (Algorithms and Programming)
インタラクティブ・ゲーム制作 <プログラミングコース>
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
データ構造と アルゴリズム 第五回 知能情報学部 新田直也.
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
プロジェクト演習Ⅱ インタラクティブゲーム制作
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
演習07-0 “Hello\n” “World!\n”と
第8回放送授業.
アルゴリズムとプログラミング (Algorithms and Programming)
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
オブジェクト指向プログラミング クラス 継承
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
Javaによる Webアプリケーション入門 第4回
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
第5回 プログラミングⅡ 第5回
高度プログラミング演習 (11).
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-2. 属性,アクセサ (C++ オブジェクト指向プログラミング入門)
コンパイラ 2012年10月11日
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
演算子のオーバーロード.
プログラミング演習I 2003年6月11日(第9回) 木村巌.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
プロジェクト演習Ⅱ インタラクティブゲーム制作
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
C言語講座第5回 2017 構造体.
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
プログラミング 2 静的変数.
Presentation transcript:

プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース 第11回 コードレビュー

今日の生け贄 新風「AniminiA」 傾向と対策 継承を積極的に使用 何度も練り直したと思われる設計 設計はいいけど、中身になるとべらんめぇ状態な部分も

よいところ ゲームの処理自体と、状態遷移を担当するクラスとを分離しているのはGood 「管理クラス」の導入 継承の積極的な利用 「敵」クラスを直接利用するのではなく、 敵クラスをまとめて管理するクラスを利用 継承の積極的な利用 もったいない部分もありますが きっちりしたファイル仕分け

つっこみどころ なぜそこでポリモフィズムじゃないのか メモリ管理的にデンジャラスすぎる部分がちらほら 使いづらい気持ちも分かるが。。。 メモリ管理的にデンジャラスすぎる部分がちらほら update()関数は長くなっちゃうよねぇ~ private関数が少ないよね 本来はこうしたいんだけど、時間がなくなると~というのはよく伝わってくる

Javaとの継承の違い デストラクタは必ずvirtual オーバーライドする可能性のあるメンバ関数はvirtual super()がない 致命的なリークが起きる オーバーライドする可能性のあるメンバ関数はvirtual virtualがないと、ポリモフィズムを使った時でも親クラスのメンバ関数が呼ばれてしまう absractに相当するのは純粋仮想関数 (virtual void update() = 0;) super()がない コンストラクタでの書式や、親クラスのメンバ関数呼び出し方法が異なる

親クラスポインタから どの子クラスかを知る方法 親クラスのヘッダに子クラスの種類を列挙したenum型を作り、メンバ変数として持つ そしてその値を返すgetterを作る 子クラスはコンストラクタで、そのメンバ変数に自分自身を表す値を代入する こうしておくとgetterの値によって条件分岐が可能 ただし、ポリモフィズムのメリットがかなり損なわれる方法なので、多用は禁物

private関数をもっと使おう 関数が少ない=1個1個の関数がでかい メンテナンス性、可読性を下げる要因 特に使い回す予定がない処理でも、1ブロックとしてくくれる処理は関数化する update()の見通しがすっきりする せっかくクラス化して、メンバ変数には自由にアクセスできるんだからもったいない

カメラワークにもの申す!