[ 情報基礎演習[全学向]  >  情報基礎演習[全学向](2024・前期・月4/月5) 課題 >  [課題11] プログラミング ー タートルグラフィクスによる自由制作 ]

[課題11] プログラミング ー タートルグラフィクスによる自由制作

課題

タートルグラフィクスで絵を描くプログラムを作成し,そのプログラムを提出してください. 描く絵は自由です.いろいろ工夫してみてください.

注意

プログラムで描く絵は自由に決めてください. ただしこのページで示しているサンプルプログラムそのもの,あるいはそれらを少し変更した(実質的にサンプルと同じ)プログラムを提出しても,課題としては評価の対象とはしません. (自分なりの)工夫をこらして絵を描くプログラムを作ることで,プログラミングの実体験を積むことが本課題の目的です. なお自分のプログラムで描画する絵の構成要素として,サンプルプログラムで描かれる図形を採り入れることは問題ありません.

プログラムの作成にChatGPT,Gemini,CoPilotなどの生成AIは使わないでください. プログラミングスキルを身につけるためには,プログラムを自分で書いてみることが重要です.

目次

  1. はじめに
  2. プログラムの作成・編集
    1. プログラムのコメント
    2. プログラムの空行
  3. プログラムの実行
  4. プログラムの提出
  5. 参考資料 (タートルグラフィクス,色表,よくある質問)
  6. 注意
  7. Tips
    1. タートルグラフィクスでの「上描き」
    2. 四則演算に関する注意
    3. 演算の優先順位とその制御
    4. 数学関数,定数
    5. プログラムにランダム性を採り入れる
  8. サンプルプログラム

はじめに

課題に取りかかる前に,まず次を確認してください.

プログラムの作成・編集

今回の課題では,新しいファイルを作成して,プログラムを記述した上で実行します. プログラムを作成する手順については,以下を参照してください.

  1. 端末ツールを起動
    Windows:Anaconda (Miniconda3) > Anaconda Prompt (miniconda3)
    Mac:アプリケーション > ユーティリティ > ターミナル
  2. 端末ツールからIDLEを起動
    • Windows: Anaconda Promptに次を入力
      idle 
      
      Mac: ターミナルに次を入力
      idle3 
      
    IDLEの「Shell」が起動します.

  3. 新しいファイルを作成する
    IDLEの「Shell」のメニューを使って,新しいファイルを「Editor」で開きます.
    [File] > [New File]
    空の「Editor」の画面が開きます.

  4. [option] 編集するファイルに行番号を表示する
    IDLEのEditorのメニューから[Options]>[Show Line Numbers]を選ぶと左端に行番号が表示されます.

  5. プログラムを記述する

    新しいファイルが開かれたら,まず最初に次のように書きましょう.

    
    from pyturtle import *
    
    def draw():
        # 描画の速さ('slowest','slow','normal','fast','fastest'のいずれか)
        speed('normal') 
        # ここから亀の動作等を順に記述していく(1行に1つ)
    
    # プログラムの最後の行に次を書く
    launch(draw)
    
    
    • 最初の行(from ...)はタートルグラフィクス(pyturtle)の機能をプログラムに取り込むことを意味しています.
    • defの行は亀の動作の定義の開始を意味しています. プログラムを実行すると,defの次の行から(インデントがつけられている限り)1行ずつ順に上から処理されていきます. 亀の動作を記述するにあたっては,このことを意識してください.
    • speed('normal')ではタートルグラフィクスでの描画の速さを指定しています.
    • 最後の行(launch ...)は,キャンバスを開いた上で,drawで定義した内容に従って描画する準備を行うことを意味します. このlaunchの行はプログラムの末尾に配置します.またこの行は行頭にインデントをつけませんので注意してください(自動的にインデントされるかと思いますが,インデントは削除してください).
    • '#'から行末までにはプログラムに関するコメント(注釈)を記述しています.コメントは書かなくてもプログラムの動作には影響しません.
    • 空行(何も書かない行)はプログラムの動作には影響しません.
    • プログラムでの亀の動作や設定などはすべて直接入力モード(いわゆる半角モード)で記述します. 日本語を使うのはコメントの本文と画面に表示するメッセージだけにします.

    上の部分が書けたら「speed('normal')」の次の行から(launchの行より前に)亀の動作等を順番に追加していきます. このとき各行にインデントをつけることを忘れないでください. インデントは自動的に付けられるはずです. 自動的にインデントが入らない場合には[TAB]キーを押してください.


  6. プログラムを保存する
    プログラムが記述できたら最後に必ずファイルを保存します. プログラム作成の途中でもこまめにファイルを保存するとよいでしょう.
    [File] > [Save]
    最初に保存する際にはファイルを保存するフォルダとファイル名を決めることになります. 次のルールに従ってください.
    • ファイルを保存するフォルダ
      ファイルはサンプルプログラムが置いてあるフォルダに保存するようにしてください.
        ExBasicInfo > Programming
      
      タートルグラフィクスのプログラムは必ずこのフォルダに保存してください.

    • ファイル名の付け方
      ファイル名は以下のルールに従って決めてください.
      • (いわゆる)半角の英数字および『.』『_』『-』で構成する
      • 1文字めは英数字にする
      • 「空白文字」と(いわゆる)全角の文字は使わない
      • 半角のカタカナは使わない
      • 末尾は必ず「.py」とする(「.py」はPythonプログラムを表す拡張子)
      • turtle.py」「pyturtle.py」は避ける(プログラムが動作しなくなります).

プログラムのコメント

プログラムの各行で#(ナンバー記号,ハッシュ記号)以降から行末まで(IDLEのEditorの画面では赤い文字の部分)はプログラムに関するコメント(注釈)として扱われます(#は英数字モードで入力します). プログラムを実行するときにはコメントは無視されます. そこでコメントは書いても書かなくてもプログラムの動作には影響しません.

それではコメントは不要なものかといえば,そうではありません. コメントには(人が読むための)プログラムの注釈(説明)を書きます. プログラミング言語を理解していれば,コメントがなくても, プログラムは理解できるはずではあります. しかしプログラミング言語は,日常で用いる言語(日本語,英語などの自然言語)とは異なっていることもあって,そのままでは理解が難しいことがあります. そのときに自然言語の(適切な)コメントがあれば,理解に役立ちます.

たとえ自分が書いたプログラムでも,コメントがなければ,(プログラムを作成した後にしばらく時間が経つと)理解できなくなることが少なくないでしょう. プログラムには適切にコメントを書くことが重要です(コメントが多すぎても邪魔になるでしょう).

[余談] #と♯   ナンバー記号(#)は,音楽のシャープ記号()とは異なります.ナンバー記号(#)は水平な線2本と縦向きの斜めの線2本で構成されていて,シャープ記号()は垂直な線2本と横向きの斜めの線2本で構成されています.キーボードに配置されているのはナンバー記号(#)です.

プログラムの空行

プログラム内の空行は,プログラムを実行するときには無視されます. プログラムに空行を適切に入れると,プログラムの構成がわかりやすくなります.

Pythonのプログラムの書き方の正式なルールである「PEP8」では,プログラムへの空行の入れ方が定められています.

プログラムの実行

今回のプログラムは「IDLE]の「Editor」を介して次のように実行します.

[Run] > [Run Module]

画面が表示されたら,マウスを左クリックするか,[Enter]で描画が開始されます. 画面上の矢印(亀)が消えたら描画完了です. 描画が完了した後,マウスを左クリックするか,[Enter]で画面を閉じてプログラムを終了します.

プログラムを実行して想定通りに動作しなかった場合にはプログラムを修正することになります. 原因が分からない場合には,次の「よくある質問」を参照してみてください. 解決できない場合は演習中に質問してください. その他プログラムのエラーでなくても分からないことがあれば質問してください.

プログラムの提出

プログラムを作成,実行して,描画の結果を確認して問題がなければ, PandAの課題にPythonのファイルを添付ファイルとして提出してください.

参考資料

亀の動かし方,描画に使う色の指定方法,あるいはプログラムのエラーに関する情報を示します.

注意

以下のことに注意してください.

Tips

サンプルプログラム

参考のために,サンプルプログラムを提供します.

課題として,これらと同じプログラムあるいは実質的に同じプログラムを提出しても評価の対象にはしません. 作成するプログラムの一部にサンプルを利用することは問題ありません.

[ 情報基礎演習[全学向]  >  情報基礎演習[全学向](2024・前期・月4/月5) 課題 >  [課題11] プログラミング ー タートルグラフィクスによる自由制作 ]