ChatGTPでプログラミング学習ー01
tutleGraphics を使ってみる
1. 円を描く
ChatGPTを使って、最初に何をやろうと思いますか?
僕は円を描こうと思いました。四角でもいいですよ。最初からもっと複雑な絵を描こうと思う人もいるかもしれませんね。
とにかく、円を描くお願いをしました。
プログラミング言語は一般的に薦められている感じがしたPythonにしました。
そして、次のようなプログラムを作ってくれました
import turtle
# ウィンドウの初期設定
window = turtle.Screen()
window.bgcolor("white")
window.title("円を描く")
# turtleの設定
pen = turtle.Turtle()
pen.color("blue")
pen.speed(0)
pen.penup()
# 円を描く
pen.goto(0, -100)
pen.pendown()
pen.circle(100)
# 終了処理
turtle.done()
これが基本的なpythonでturtleモジュールを使って円を描くプログラムです。penというスプライト(turtle)を使って、(0,-100)の位置に行き、pen.circle(100)で 円を描きます。最後に終了処理のおまじないも忘れないようにお願いします。
Scratchと英語に少し慣れている皆さんは大体理解できるのではないでしょうか。
この結果を次に示します。
コードを生成した後の説明として次のことが書かれています
これでばっちりですね。pythonを知らなくてもturtleモジュールを知らなくても初体験でしっかりとした円を描くことができました。
ステージの大きさも、円の大きさも円の色も適当に見計らって作ってくれたようですね。
参考1
youtubeにこのことを挙げておきました
参考2
エディターは Mu-Editorを使いました。初心者には使いやすいエデイターです
2. 円を動かしてみる
次のステップとして、二つの円を動かしてみました。
これに対して次のcodeを作ってくれました。
次の説明が付きます。
このプログラムでは、前と違ってcircle1,circle2というオブジェクトが作られます。また、circleを動かす関数が作られます。さらにWhile trueというループを使ってますね。Scratchの「ずーと」という機能ですね。
ここまで、Scratchに慣れていれば容易に理解できることかと思います。
1秒かかって目的地に行くというつもりでしたが、Scratchの1秒待つに相当する time.sleep(1) を使っているので、ちょっと思ったものと違います。あれこれといじったのですが、やはり、turtleはturtleと思った方がいいでしょう。また、別なモジュールを使ってやった方がいいかと思います。
結果の動画を次に示します。https://drive.google.com/file/d/14UYXA3wyTStyGzncRmHgT_I-mrIZHxLI/view?usp=share_link
3. 星をランダムに配置する
最初の例で典型的にペンを使った円を描きました。次の例ではオブジェクトとしての円を用いました。今度はChatGPTと対話をしながら夜空に星をちりばめてみましょう。
まずは次のお願いから始まります。
意気揚々と始まりました。次のCodeを生成しました。
ここでエラーが出ました。star.shape('star')が間違いのようです。タートルスターというのがありません。タートルスターというのが理解できなかったようです。
タートルスターというのを自分で描いてみることにしました。
for i in range(15):
………………………….
というのが出てきています。Scratchの15回くりかえすに対応します。その下に書いてあるのは条件付き文ですね。
これも変な絵が描かれておかしいことになりました。本来、おかしなとこをもっと詰めるべきかもしれまっせんが、次を急ぎました。
5角形の星でやることにしました
とりあえずは星がランダムに10個配置されました。
次は色を決めます。少しずつのちがいを比べてみてください
もう一つ、お願いしました。
最終形として次のようなcodeを示してくれました。
このcodeで星が大きすぎたので、つぎの手直しをしました。
num_of_stars = 20
star.forward(40)
実施結果は次の通りです。
今回、Code作成に当たって、指示を小さくすることによってCodeが読みやすくなり最終的なCodeが作りやすくなったかと思う。
仕様という意味で整理することも必要だと思うことを頭に入れながら、次に進みたいと思う。
4.まとめ
turtle graphicsの基本的な例題を3つ行ってみた。基本的な枠組みと記述方法は理解できたかと思う。
turtle graphicsの位置づけについて、ChatGPTは次のように述べている。
いくつかのプログラムを作って、次のモジュールを勉強しよう。
次はtkinter を扱います
この記事が気に入ったらサポートをしてみませんか?