こんにちはダダです
以前の記事でfor文を利用した繰り返しについての記事を書きました
↓↓↓以前の参考記事はこちら↓↓↓
【Processing python】for文を使った繰り返しで模様を描こう
同じ内容のものをまとめたり、繰り返したり、パソコンがランダムに決めたりと少しずつ成長が見えるので、私自身少し喜んでいます
そんな中、少し違った作風があるということ学びました
それは・・・
if文(条件分岐)
![村人A](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/pose_warau_kuchi_kakusu_man.png?resize=150%2C150&ssl=1)
はい!!
難しいやつですね、わかります
![村人B](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/smartphone_neru_woman.png?resize=150%2C150&ssl=1)
はい!!解散!!
お疲れさまでした~
![](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2022/04/S__58163222.jpg?resize=150%2C150&ssl=1)
村人さんたちちょっと待って~
if文って面白いですよ
こんなのを作っていきます
ということで、今回の記事はプログラミング言語Pythonの文法でif文という条件分岐を記事にしていきます。
if文(条件分岐)ってなに?
ifを翻訳すると『もし』です
プログラミングでも使い方は『もし〇〇ならば〇〇』といった感じで使っていきます
if文の使い方は?
if文を使って条件式を作成していきます
1 2 3 4 5 6 7 8 |
if 条件式①: 条件式①に一致した場合 elif 条件式②: 条件式②に一致した場合 else: 条件式①、②に一致しない場合 |
よく使われる条件式一覧
演算式 | 意味 | 例 | 日本語にした場合 |
== | 同じ値か | x == 5 | xと5が同じ値か |
!= | 違う値か | x != 5 | xと5が違う値か |
> | より大きい | x > 5 | 5よりxが大きい |
< | より小さい | x < 5 | 5よりxが小さい |
>= | 以上 | x >= 5 | xが5以上 |
<= | 以下 | x <= 5 | xが5以下 |
以上のような内容になってきます
ただわかりにくいので、実際にif文を使って何かを作ってみましょう
下準備
使い方を確認するためにsetup関数とdraw関数を使ってアニメーションを作っていきます
\\\アニーメーションについての記事はこちらから///
【超初心者向け】Processingでプログラミング言語pythonを使ったアニメーション作成方法
コード作成
1 2 3 4 5 6 7 8 9 10 11 12 13 |
x, y = 100, 650 dx = 3 def setup(): size(2100, 1300) def draw(): background(0) global x,dx fill(0, 255, 255) x = x + dx ellipse(x, y, 100, 100) |
入力・実行
こんな感じでできて右にそのまま去っていきます
また、戻ってきてほしいと思いませんか?
そんな時に使えるのがif文(条件分岐)
if文を使って条件を追加していきましょう
以下のコードを追加していきます
1 2 |
if x > 2100 or x < 0: dx *= -1 |
コード作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
x, y = 1050, 650 dx = 7 def setup(): size(2100, 1300) def draw(): background(0) global x, dx fill(0, 255, 255) x = x + dx if x > 2100 or x < 0: dx *= -1 ellipse(x, y, 100, 100) |
入力・実行
![海外の人A](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/pose_english_wow_man.png?resize=150%2C150&ssl=1)
壁に跳ね返って戻ってきました~
スゴイデース
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
あなたは誰?
![村人A](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/question_head_boy.png?resize=150%2C150&ssl=1)
なんでそうなるの?
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
少し不思議ですよね
では、少し詳しくコードの内容を見ていきましょう
コードの説明
1 2 |
if x > 2100 or x < 0: dx *= -1 |
今回はこのコードを追加しましたが、どのような内容で書いてあるのか
少しコードを日本語訳してみます
if x > 2100 or x < 0:
もし、xの値が2100より大きい時 または 0より小さい時は
dx *= -1
dxの符号を逆にします(ー1倍)
という内容になります
![村人A](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/question_head_boy.png?resize=150%2C150&ssl=1)
ん?
壁に当たるように条件を付けたわけじゃないの?
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
村人さんいい質問です
Processingでは数値で動きを出したりしています
なので壁に当たって跳ね返るように見える数値を入れています
![村人A](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/pistol_pose_man.png?resize=150%2C150&ssl=1)
本当にー?
他の人は騙せても、私は無理ですよ~
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
では、少し数値を変化させてみましょう
2100→1500へ
0→500へ
それぞれ変更してみます
コード作成
1 2 |
if x > 1500 or x < 500: dx *= -1 |
入力・実行
![海外の人A](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/pose_english_wow_man.png?resize=150%2C150&ssl=1)
壁がないところで跳ね返ってきました
スゴイデース
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
だから、あなたは誰?
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
上記のようにProcessingでは数値入力することができるので自分で好きな場所で変化を出すことができます
![村人A](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/09/sick_panic_man.png?resize=150%2C150&ssl=1)
もっと簡単に壁に当たるようにできないの~
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
という方のために、こちらの変数をご用意しております
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2021/08/rogokarikannsei_kai_hennsyuu-2021_05_30-11_37_26-2.png?resize=150%2C150&ssl=1)
width,height変数です
この変数を使用すると簡単に壁あてができますよ
では、width、height関数を使用してコードを作成していきます
また、条件式を追加して動きの幅を広くしていきます
コード作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
x, y = 1050, 650 dx, dy = 7, 8 def setup(): size(2100, 1300) def draw(): background(0) fill(0) rect(0, 0, width, height) global x, y, dx, dy fill(0, 255, 255) x = x + dx y = y + dy if x > width or x < 0: dx *= -1 if y > height or y < 0: dy *= -1 ellipse(x, y, 100, 100) |
入力・実行
このように、ブロック崩しのようなボールの動きを再現することができました
では、ここで一つ手品をお見せします
random関数をしようして動くボールを消します
コード作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
x, y = 1050, 650 dx, dy = 5, 5 def setup(): size(2100, 1300) def draw(): background(0) fill(0) rect(0, 0, width, height) global x, y, dx, dy fill(0, 255, 255) x = x + dx y = y + dy if x > width or x < 0: dx *= random(-3) if y > height or y < 0: dy *= random(-3) ellipse(x, y, 100, 100) |
入力・実行
![ダダ](https://i0.wp.com/dsdiary.blog/wp-content/uploads/2022/04/S__58163222.jpg?resize=150%2C150&ssl=1)
この度Udemyで講座を作りました
【プログラミングxアート】直感的・視覚的に学ぶ Processing×Python 入門講座
ブログに書いてある内容を一つの講座にしています
まとめ
if文の使用方法をまとめてみましたが、まだif文のポテンシャルを生かせていません
ボールが跳ね返るようなものはできたのですが、もっとゲームっぽいことができれば楽しいかもしれませんね
これからも、知識量を増やしていくことでいろいろできるようになると思うの頑張ります
もっとPythonをを学んでみたい方は以下のリンクから無料のカウンセリングを受けることができます
python特化型オンラインスクールの無料カウンセリング申し込み
実際に第三者よりカウンセリングを受けることでわかることも多いと思います
今後のプログラミングを学ぶ上で一つのきっかけになるかもしれませんので、よかったら試してみてください