見出し画像

「かめののろい」でPython #15時間目

15時間目 今まで学習したメソッドを駆使して図形を描く①

こんにちは!ヒラバヤシヤスキです。1ヵ月半ぶりの更新です汗
年明けから、塾の新規校舎の開校や、センター試験、一般試験などイベント盛りだくさんということもあり、「かめののろい」をサボっておりました…!

今日からまた更新していきます!

星型を描いてみる

15時間目の初めは、以下のような星型を描くそうです!

テキストには色々ヒントが書いてありましたが、ゼロから考えてみます。

カメさんの ①曲がる回数と、 ②その時の角度を求めれば描けます。
まず①は、4回ですね!意外と少ない!

②について考えます。色々考え方はありそうですが、下記の図のように、
赤い二等辺三角形について考えて外角を求めてみました。

まずaは正五角形の内角なので、
a=180°×(5-2)/5 より a=108°
二等辺三角形よりb=b'なので、
b=(180°-108°)/2 より b=36°(=b')
求めるべき外角は、180°-36°=144°
となります。

①も②も求まったので、あとは記述するだけですね!

from turtle import *
shape('turtle')
shapesize(2,2)
penup()
goto(-150,100) #テキトーな場所からスタートさせる
pendown()
pencolor('red')
for i in range(5): #4回繰り返す
   forward(300)
   right(144) #右に144°曲がる

こんな感じですね。

実行してみます…!

いい感じですね!
ちなみに、テキストでの外角の求め方は以下の通りでしたので紹介しておきます!

な、なるほど!これは思いつかなかった…。
他には、カメさんの動きに着目して、5回曲がると、ちょうどカメさんが2回転するということに気が付くと、360°×2/5=144°という解き方もできそうです。

色々考えるとおもしろい!!
実際、中学生や高校生を教えていると、図形が苦手な生徒ってたくさんいますが、こういう風にプログラミングと組み合わせると楽しく学べそうですね!

 夜空 に 星 を30 個表示 する

つづいては、夜空に星を30個表示するプログラムを作ります。

お手本はこんな感じ。

ランダム関数を使うので、8時間目や9時間目が役立ちそうです。

これは、8時間目と今回の内容を組み合わせればよいので、そんなに難しくはありませんね。
こんな感じになりました。

from turtle import*
from random import*
bgcolor('black')
pencolor('white')
shape('turtle')
shapesize(1,1)

for i in range(30):
    penup()

    a=randint(-300,300)
    b=randint(-300,300)
    c=randint(1,100)
    goto(a,b)
    pendown()
    for i in range(5): #4回繰り返す
        forward(c)
        right(144) #右に144°曲がる

さて、実行!

いい感じにできました!カメさんがとても見えずらいですが、どこにいるかわかりますか?笑

今日は、以上です。


【今回の学び】
・特に技術的に新しいことは使わなかったので、python的な学びはない
・プログラミングは、1つの問題でも解法が自由に発想できるので、頭の体操によさそう
【未解決の疑問】
・kame=turtle と kame=turtle.Turtle() は同じ働きをする。テキストではあえて後者なのはなぜか?
・長い動画をアップする方法はあるか?
・undo()の挙動が良くわからない
 (どの時点までやり直し?)


「かめののろい」の目次

0時間目 まずパソコンにPythonをインストール
1時間目 IDLEを起ち上げ まずはコマンドラインでカメさん登場
2時間目 楽してカメさん エディターを使いこなそう!
3時間目 変数(箱)を使ってturtleを操ってみる
4時間目 同じ命令の繰り返しfor を使ってturtleを操ってみる
5時間目 for を使ってturtleをさらに操ってみる②
6時間目 for を入れ子にしてturtleをさらに操ってみる③
7時間目 for と変数でturtleをさらにさらに操ってみる④
8時間目 randomを使ってturtleを操ってみる①
9時間目 randomを使ってturtleをさらに操ってみる②
10時間目 条件文if elseともう1つのくり返しwhileで数当てゲームを作る
11時間目 条件文ifとelif・elseでおみくじを作る
12時間目 おみくじの結果でカメがよろこぶ
13時間目 座標(ざひょう)を操って多角形を書く
14時間目 座標(ざひょう)を操って多角形を書く②
15時間目 今まで学習したメソッドを駆使して図形を描く①
16時間目 今まで学習したメソッドと演算子で図形を描く
17時間目 今まで学習したメソッドを駆使して図形を描く②
18時間目 同じ模様の書き方をアルゴリズムのちがいで書いてみる
19時間目 inputを使って大きさのちがう複雑な図形を描いてみる
20時間目 少し複雑な図形を描いてみる
21時間目 変数とfor・if文で少し複雑な図形を書いてみる
22時間目 図形から離れて少し遊んでみる
23時間目 関数を作って遊んでみる
24時間目 自動計算とループ処理で多角形を書く


https://www.amazon.co.jp/dp/B07FZ1NMMZ


この記事が気に入ったらサポートをしてみませんか?