2024年度 電子情報通信課程 計算機実習II今日の説明動画本日の説明は,6本の動画に分かれています.それぞれ視聴して,理解ができたら次に進むようにして下さい. 動画の長さは次の通りです.自分のペースで進めながらも,1コマで終わるように頑張ってください.
講義に関して,ちょびっとコメント前回のレポート採点結果は,こちらです. 気になったところのメモ
素材についていらすとやさんをもとに作成した素材は, , , , です.名前をつけて保存して下さい. 同じ種類の変数を複数扱うには,配列変数を使いました. 同様に,プログラム(関数)やデータを1つの塊として,複数扱う方法として「オブジェクト」という概念があります. 今までに使ってきたtkinter というモジュールを使ったウインドウ作成は,オブジェクトを操作していました. ウインドウというオブジェクトを用意し,その中の関数を利用したり変数を設定したりしていました. オブジェクトの作成は,「オブジェクト変数 = クラス名()」 の形です.「root = tkinter.Tk()」がこれに該当します. オブジェクトが持っている関数を呼び出すのは,「オブジェクト変数.関数名()」です.「root.title("計算機実習2")」がこの形式です. オブジェクトが持つ変数も属性(Attribute)という呼び名で使うことができます.これは今までには出てきていない形式です. 関数を呼び出すときは引数を扱いますので「()」が必要です.一方変数を扱うときには不要です. オブジェクトを作成するには,まず「クラス」を用意する必要があります. そのクラスの関数を呼び出すと,その種類のオブジェクトが作られます. 課題 12-1
python ではオブジェクト生成時に,__init__ という関数が呼び出されるようになっています. そこにオブジェクトの初期設定を書くことができます. この関数のことを「コンストラクタ」といいます. 一般には,変数の設定を行ったりします. また,オブジェクトは生成時に名前が付くため,クラス内ではそのオブジェクト自身を指し示す名前を固定することができません.そのため,クラス内で自分自身(オブジェクト自身)を指し示すときには,「self」を使います.これが先ほどの課題12-1に出てきた「self」です. 課題 12-2
オブジェクト生成時に,引数で情報を渡すことができます. ボタンを作るときに,「Button(text = "ボタン名")」という書き方をしていましたが,この「text = "ボタン名"」の部分を見ていきます. 課題 12-3
RPGの戦闘部分を作りましょう. 戦闘時には,味方(複数?)と敵(複数?)が必要になります. これらをオブジェクトとして用意することで,手軽に「キャラクター」の塊を扱うことができます. 教科書では,主人公としてBraveクラス,敵としてMonsterクラスを考えています. 課題 12-4
マップにモンスターを配置しましょう.モンスターとの遭遇の部分は次のステップです. マップ上のモンスターの画像は1種類ですが,内部的には2種類用意します. そのため,画像データは5番目にモンスターを用意し,地図データには5と6でモンスターを配置します. 課題 12-5
戦闘に勝ったら,マップ上のモンスターを消す必要があります. そのまま考えると,クラス内のプログラム(chap7flight.py)から呼び出し元(chap7.py)の変数を変更することになりますが,そのような構造を作ることはできません. そのため,chap7.pyからクラス内の関数を呼び出すときに,変更したい変数も一緒に渡して,関数の中で変更してもらいます ここで,関数に値を渡すときに変更できる場合とできない場合があることに気をつけて下さい. 教科書のp.216のコラムに書いてありますが,「数値や文字列をやりとりしたらコピーが渡され」「それ以外は共有した扱い」になります. ※C言語のポインタを勉強すると,言語側のメモリ管理が理解できるのですが,python ではその部分はプログラマから見えないようになっています. 課題 12-6
上記の課題12-1,12-2,12-3,12-4,12-5,12-6です. 提出が必要なのは,12-1,12-2,12-3,12-4,12-6の課題です. 課題はメールで提出して下さい. 件名はreport12,アドレスはcom02@elec.ryukoku.ac.jp です. 締切は,「翌週水曜日が終わるまで(今回は12月20日中の提出がセーフ)」です. |
次に進むには,■こちら■をクリックして下さい. |