Upgrade to Pro — share decks privately, control downloads, hide ads and more …

系統性を意識したプログラミング教育~ガチャを実装しよう~

 系統性を意識したプログラミング教育~ガチャを実装しよう~

More Decks by アシアル情報教育研究所

Other Decks in Education

Transcript

  1. 昨年度との比較 • 昨年度はJavaScript • アプリ制作がメイン • JavaScript本を使用した授業 • 今年度はPython •

    共通テストを意識 • オリジナルスライドで授業 配当時間:14時間 ① スマホアプリ企画書作成(2時間) ② 企画発表会(1時間) ③ JavaScript本を使用して基礎を学習 第1章~第6章+DOM(7時間) ④ アプリ制作(3時間) ⑤ アプリ発表会(1時間) 配当時間:12時間 ① 表示関数、変数、計算、乱数などの基本事項を学習 ② くじ引きを例に分岐処理を学習 ③ 当たり確率の調整をする中で、不等号を使った分岐処理を学習 ④ 単発ガチャを作成(レアリティ:LR, UR, SSR, SR, R, N) ⑤ 繰返し処理を学習し、100連ガチャを実装 ⑥ 何が何回排出されたかをカウントする処理を実装 ⑦ 配列を学習し、各レアリティに複数の種類を準備する処理を実装
  2. 丸亀千円 ガチャ ガチャを回す メ ニ ュ ー 合計 ◦◦円 ◦◦kcal

    塩分 〇g 脂質 〇g 戻る もう一回 メ ニ ュ ー 合計 ◦◦円 ◦◦kcal 塩分 〇g 脂質 〇g 戻る メ ニ ュ ー 合計 ◦◦円 ◦◦kcal 塩分 〇g 脂質 〇g 戻る もう一回 昨年度の生徒の作品 もう一回 画面遷移図
  3. 【今年度】 プログラミング 単元について 配当時間:12時間 ① 表示関数、変数、計算、乱数などの基本事項を学習 ② くじ引きを例に分岐処理を学習 ③ 当たり確率の調整をする中で、不等号を使った

    分岐処理を学習 ④ 単発ガチャを作成(レアリティ:LR, UR, SSR, SR, R, N) ⑤ 繰返し処理を学習し、100連ガチャを実装 ⑥ 何が何回排出されたかをカウントする処理を実装 ⑦ 配列を学習し、各レアリティに複数の種類を 準備する処理を実装
  4. 福島県立いわき総合高等学校 ① 期末テストの平均点と偏差値を求める 38 やってみよう! print(5) print(”こんにちは”) num = 123

    print(num) print(1+3) print(3*5) a = 3 b = 5 c = 12 print(a*b-c) まとめてコメントアウトしてみよう
  5. 福島県立いわき総合高等学校 ② アタリ、ハズレのあるくじ引き 41 import random ran = random.randint(1,2) if

    ran == 1: print("アタリ") else: print("ハズレ") 開始 ランダムを使う準備 変数ranに1か2を ランダムに代入 ranの値 は1? アタリと表示する ハズレと表示する Yes No プログラム フローチャート
  6. 福島県立いわき総合高等学校 ③ 1等、2等、3等などのあるくじ引き 42 import random ran = random.randint(1,3) #print(ran)

    if ran == 1: print("1等が当たりました") elif ran == 2: print("2等が当たりました") else: print("3等が当たりました") 開始 ランダムを使う準備 変数ranに1から3を ランダムに代入 ranの値 は1? 1等が当たりました と表示する 2等が当たりました と表示する Yes No ranの値 は2? Yes 3等が当たりました と表示する プログラム フローチャート
  7. 福島県立いわき総合高等学校 ④ くじの出る確率を調整する 44 振り分け:1等(5%),2等(10%),3等(15%),4等(20%),はずれ(50%) import random ran = random.randint(1,100)

    #print(ran) if ran <= 5: print("1等が当たりました") elif ran <= 15: print("2等が当たりました") elif ran <= 30: print("3等が当たりました") elif ran <= 50: print("4等が当たりました") else: print("はずれ")
  8. 福島県立いわき総合高等学校 ① 100連ガチャを作ろう ◼ Pythonにおける繰り返し処理 やってみよう # 1~100までの偶数を表示しよう for i

    in range(1,101): if i % 2 == 0: print(i) 51 もし、i を割った余りが0ならば %は、割った余りを計算する算術演算子 詳しくは前回のスライドを 確認しよう!
  9. 福島県立いわき総合高等学校 ② 100連ガチャで何が何回出たかカウントしよう 54 # 出現した回数をカウントして表示する count1 = 0 count2

    = 0 for i in range(1,101): import random ran = random.randint(1,100) print(ran) if ran <= 10: count1 += 1 elif ran >= 90: count2 += 1 print("10以下は" + str(count1) +"回出ました") print("90以上は" + str(count2) +"回出ました") 数値と文字は同時に出力できないため、数値を文字列に変換する必要がある。 → 変数をstr()で囲む カウントするための変数を初期値0にして作成する カウントするための変数「count1」に1を足す処理 カウントするための変数「count2」に1を足す処理
  10. 福島県立いわき総合高等学校 ③ 標準入力のやり方を覚えよう 56 ◼ キーボードから入力した値を利用する #文字を入力する場合 A = input("文字を入力してください")

    print(A + "が入力されました") #数値を入力する場合 B = int(input("数値を入力してください")) print(str(B) + "が入力されました") Aに入っているのは文字なので、そのままつなげて出力できる。 Bに入っているのは数値なので、文字に変換して出力する。
  11. 福島県立いわき総合高等学校 発展課題 59 次郎君は、一直線の道路上で散歩をしている。 次郎君は以下の行動を、行動 A → 行動 B →

    行動 A → … のように 交互に繰り返す。 行動 A : 3 m 前に進む。 行動 B : 2 m 後ろに戻る。 行動 A と行動 B を合わせて X 回行ったとき、 はじめの位置から何 m 前に移動したことになるかを計算する プログラムを作ろう 入力例 3、出力例 4 入力例 6、出力例 3 ヒント(if を上手に使いましょう)
  12. 福島県立いわき総合高等学校 ① 配列を使ってガチャをよりリアルにする ◼ Pythonにおける配列(リスト) やってみよう sample_list = ["A", "B",

    "C", "D", "E"] print(sample_list[0]) print(sample_list[1]) print(sample_list[2]) print(sample_list[3]) print(sample_list[4]) 65
  13. 福島県立いわき総合高等学校 ① 配列を使ってガチャをよりリアルにする やってみよう import random ran1 = random.randint(1,100) ←レア度の抽選用

    ran2 = random.randint(0,9) ←各レア度における種類の抽選用 #print(ran1) #print(ran2) LR = ["LR①","LR②","LR③","LR④","LR⑤"] UR = ["UR①","UR②","UR③","UR④","UR⑤"] SSR = ["SSR①","SSR②","SSR③","SSR④","SSR⑤"] SR = ["SR①","SR②","SR③","SR④","SR⑤","SR⑥","SR⑦","SR⑧","SR⑨","SR⑩"] R = ["R①","R②","R③","R④","R⑤","R⑥","R⑦","R⑧","R⑨","R⑩"] N = ["N①","N②","N③","N④","N⑤","N⑥","N⑦","N⑧","N⑨","N⑩"] 各レア度における種類を配列で準備する 次ページに続く 66
  14. 福島県立いわき総合高等学校 ① 配列を使ってガチャをよりリアルにする if ran1 <= 1: ← レア度がLRだった場合(1%) if

    ran2 <= 1: print(LR[0] + "が当たりました") elif ran2 <=3: print(LR[1] + "が当たりました") elif ran2 <=5: print(LR[2] + "が当たりました") elif ran2 <=7: print(LR[3] + "が当たりました") else: print(LR[4] + "が当たりました") elif ran1 <= 6: ← レア度がURだった場合(5%) UR,SSR,SR,R,Nの場合も続けて作ってみよう UR,SSRは5種類、SR,R,Nは10種類ある 67 レア度LRの種類を抽選して 表示する処理を追加
  15. 福島県立いわき総合高等学校 ③ 二重ループ(for文)について理解する やってみよう for i in range(1, 10): for

    j in range(1, 10): print(i * j, end=" ") print() 75 外側のループが縦(1の段、2の段) 内側のループが横 を表している 改行せずに 続ける方法 改行だけ出力