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

2020_k3_python講座第4回

 2020_k3_python講座第4回

2020年度のk3のpython講座第4回の内容になります

k3たっつー

June 20, 2020
Tweet

More Decks by k3たっつー

Other Decks in Education

Transcript

  1. 前回のおさらい  タートル機能  forward, backward – 前進, 後退 

    left, right – 旋回  circle – 半径xの円を描く  up, down – 筆の上げ下げ  color, fillcolor – 筆の色、塗りつぶしの色を指定  begin_fill ~ end_fill – 間で記述した図形を塗りつぶす
  2. 関数の定義 def 関数名(引数): //処理の内容 return x //返り値が欲しい場合  基本はこの形 

    引数は複数指定可能  (引数=デフォルト値)と定義すると、引数が省略され た際デフォルト値が利用される(デフォルト引数) 注意:通常の引数の前にデフォルト引数を置くとエラー を吐きます
  3. 関数の定義(続き) def 関数名(引数): //処理の内容 return x //返り値が欲しい場合  returnを省略すると返り値にNoneが入る 

    呼び出す際はprint()等と同様に、関数名(引数)  必ず関数を定義してから呼び出そう ※Pythonでは「関数を定義し、変数に代入」という処 理を行っているので、関数と変数の名前が被らないよ う気を付けよう
  4. 例題1(L4_1.py)  与えられた数値リストの平均、分散、標準偏差を求 める関数を定義し、以下のリストの平均、分散、標 準偏差を求めよう nums = [14, 2, 13,

    20, 16] 平均をとすると、 分散 σ2 = 1 σ=1 − 2 値と平均の差の二乗を平均したもの 標準偏差 σ = 1 σ =1 − 2 分散のルート
  5. 例題2(L4_2.py)  再帰関数を用いて、ユークリッドの互除法を関数で 定義し、3355と2379の最大公約数を求めよう ユークリッドの互除法: 120 ÷ 66 = 1

    余り 54 66 ÷ 54 = 1 余り 12 54 ÷12 = 4 余り 6 12 ÷ = 2 このように割る方と余りを次式に代入し、 余りが0になった際の割る方が最大公約数となる
  6. 演習(L4_3.py)  ブラックジャックゲームを作ってみよう  最初にトランプの山から手札を二枚引く  その後一枚引くか(ヒット)止めるか(スタンド)を繰り 返し、より21に近い合計値を作れた方の勝ち J, Q,

    Kの値は10、Aは1 21を超えると自動的に敗北(バースト)  実際にはもう少し詳しいルールではあるが、難易度 が高くなるためどの範囲まで実装するかは自由  ヒント:関数の外にあるリストでも関数内で操作は できる
  7. 演習(L4_3.py)  reset_deck() ⋯ トランプの山を生成  hit(hand) ⋯ 手札のリストを引数にとり、山からカードを一枚手札に加え、 手札の点数を随時計算する

     show_hand(hand, player) ⋯ 手札のリストとプレイヤー名(str)を引数に とり、プレイヤー名とその人の手札を表示する  judge(point, dealer_point) ⋯ 自身の点数とディーラーの点数を比較し、 勝利判定を行う  これらの関数を定義してプログラムしてみよう
  8. 演習(L4_3.py)  より詳細なルール  Aは手札によって1か11か値を選べる  Aと10,J,Q,Kのいずれかを揃えるとブラックジャック ディーラーがブラックジャックでなければ勝利  ディーラーの手札は一枚公開、一枚非公開でスタートする

    (プレイヤーに降りるチャンスを与えるためのものだから掛 け金システムつけないならいらないかも)  ディーラーはヒットスタンドを選べない 17以上になるまで引き続ける  掛け金システムを実装すればスプリット,ダブルダウンなど の戦術が使えるようになる(僕はやりません)  自分以外にCOMをプレイヤーとして用意しても面白いです ね(僕は(ry)