条件分岐と繰り返し処理は、プログラミングで処理を行わせるときの基本です
「for」を使い繰り返し処理、「if」を使い条件分岐を覚えていきましょう
ゲームが好きなので攻撃する場合と防御する場合で作成していこうと思います。
繰り返し処理
まずは「for」を使い繰り返し処理をしてみましょう
「for」は、指定された回数分処理を繰り返すための予約語です
書き方は
- for 回数を保持する変数 in range (繰り返す回数の上限):
繰り返す処理
になります
画像の場合、「攻撃を10回まで繰り返し行う」ものになります
よく見てほしいのが、printの位置が違う場合にエラーが出てしまっているところです
countが「回数を保持する変数」として書かれていますが、そこに合わせるように書かないと関連がなくなり、正常に動作しなくなってしまっています
「print」以外の場合も書き方は同じなので注意してください
条件分岐
次は「if」による条件分岐です
- if 条件式:
条件式がTrue(真)になると実行される処理 - else :
条件式がFalse(偽)になると実行される処理
書き方の例です
先ほどの繰り返し処理に、条件分岐を書き加えたものになります
「count」の値を3で割ったとき、余りが0なら攻撃
それ以外の場合は防御を実行するようになります
またこの場合は、「count」の数を2で割った値が0より大きい場合は攻撃
それ以外の場合は防御になります
分岐する条件の追加
次に、「True」のA分岐、「else」のB分岐に「elif」を使いCの分岐を追加してみます
「if」の条件を少し複雑化させて「elif」の条件を追加してみました
- カウントが4以上かつ、カウントを2で割った値が余りが0の場合「if」
- カウントを2で割った値のあまりが0の場合「elif」
- それ以外の場合「else」
になります
見て割る通り、「elif」より「if」の処理のほうが優先されます
「if」の条件が満たされているので、そもそも「elif」の処理は行われていません
優先度は重要なので覚えておきましょう
また、「and」もしくは「or」を使うことで条件を複雑化できます
- 「and」が条件1と条件2を満たす場合
- 「or」が条件1か条件2どちらかを満たす場合
になります
疑似ガチャを作ってみる
Pythonのライブラリには「random」という乱数を追加するモジュールがあります
「random」を使いランダム要素を追加してみましょう
追加するときは
これでランダムモジュールが有効になりました
さらに、
こう入力することで0~10の数値がランダムで出力されxに代入されるようになりました
数値はもちろん任意の値にすることができます
例として疑似的なソシャゲのガチャを作ってみました
大爆死してみました
ランダムの数値を確率に模して、画像を参照できるようにすればほぼ本物と変わらないシステムが作れますね
もちろん値がランダムなので実行するたび違う結果が返ってきます
指定した条件成立まで繰り返させる
次は「while」を使って、指定されている条件を満たすまで処理を繰り返させてみましょう
「for」との相違点は「指定された回数まで」か「指定された条件まで」か、というところです
条件が成立するまでは無限に処理を繰り返してしまうので注意しましょう
プログラムの停止ボタンの位置は確認しておいてください
まず条件を指定しておきましょう
- 「counter」に0の値を代入
- 「counter」が5以下の場合に「print」を実行
そして、「print」が実行された際に「counter」に+1されるようにしました
この+1の行を省略すると、値が5以下の状態が続くので無限ループになります
また、条件が成立すると自動的に次の処理に移ります
「値が3以下の場合攻撃を表示する処理」が終わったので、自動的に次の「防御を表示する処理」に移りました