2023年度 電子情報通信課程 計算機実習II

今日の説明動画

本日の説明は,2本の動画に分かれています.それぞれ視聴して,理解ができたら次に進むようにして下さい.

動画の長さは次の通りです.自分のペースで進めながらも,1コマで終わるように頑張ってください.

  1.  計算機実習2/計算機基礎実習2-11回目ex11-1 - 06分07秒
  2.  計算機実習2/計算機基礎実習2-11回目ex11-2 - 04分17秒
  3. 計 10分24秒

講義に関して,ちょびっとコメント

前回のレポート採点結果は,こちらです.

ゲームらしくしましょう

素材について

いらすとやさんをもとに作成した素材は, です.名前をつけて保存して下さい.

鍵を利用

前回は地図の上を主人公が動けるようになりました.

そして,移動できない場所が設定でき,RPGのフィールド移動の基本ができあがりました.

次は,「鍵」を利用しましょう.

鍵を取ってからゴールに進むというストーリーを考えます.

これは,条件として考えると次のように言い換えることができます.

  • 鍵を取っていないと,ゴールについても何も起こらない.
  • ゴールに着いたときに鍵を持っていたら,次に進む.

いずれにしても「鍵を持っているか否か」の情報が必要です.これを「フラグ」を用いて管理します.

スポーツの審判(線審など)が持っている旗をイメージして下さい.普段は旗を降ろしていますが,条件を満たしたときに旗を揚げますよね.それと同じです.

初期状態(=鍵を持っていない状態)では旗は降りています(= 0(False))が,条件を満たした(=鍵を持った状態になった)ら旗を揚げます(= 1(True))

※ぜひ,旗の上げ下げでイメージするようにして下さい.というのも,CPUには「ゼロ・フラグ」という演算結果がゼロになったら立つフラグがあります.これを0/1で説明すると混乱します.

※「フラグが立つ」をいじった表現としては,「恋愛フラグが立つ」とか「死亡フラグが立つ」などがあります….


なお,今回はチェック対象が鍵1つでしたので,flag_key という変数で扱っていますが,実際のRPGでは複数のフラグが存在しますので配列変数で用意し,「何番のフラグ」という形で扱います.

課題 11-1
  1. 教科書pp.186-188を読み,chap6.pyを更新しましょう.鍵を拾えるようになりましたか?

ゴールの判定

鍵の有無の扱いができましたので,次はゴールの判定を考えます.

条件を満たしてゴールしたときは,エンディングの画面に変わります.

画面に文字を表示するには,create_text 関数を用います.

また,その後ゲームを続ける必要がありませんので,ボタンを無効化(["state"] = "disabled")します.

課題 11-2
  • 教科書pp.189-192を読み,chap6.pyを更新しましょう.エンディングに到達できましたか?
課題 11-3
  • 教科書では,鍵は1つしかありませんが,2つ設置する場合を考えましょう.
    ※「2つとも取らないとゴールに到達できない」という条件で考えて下さい.

変更すべき項目,追加すべき項目があるはずです.それらを挙げて,理由を説明して下さい.

課題 11-4
  • 教科書では,ゴールに到達したら矢印ボタンを無効化しています.もし,無効化しなかったらどんな問題が起こるかを説明してください

起こる問題を挙げて,その理由を説明して下さい.ただし,現状のプログラムでは(致命的な)問題は起こりません.だから「セーフ」という訳ではありません.今後,ゲームの中身を追加していく場合を考えて,「その時に,このような問題が起こる」ということを挙げて下さい.

今日の課題

上記の課題11-1,11-2,11-3,11-4です.

提出が必要なのは,11-3と11-4の課題です.

課題はメールで提出して下さい.

件名はreport11,アドレスはcom02@elec.ryukoku.ac.jp です.

締切は,「翌週水曜日が終わるまで(今回は12月13日中の提出がセーフ)」です.


次に進むには,■こちら■をクリックして下さい.