事前準備
課題に取り組む前に「仮想型端末(VDI)」で次の手続きを行ってください(仮想型端末の上で実行することを想定しています.他の環境では動作しない可能性があります). 今後の課題のために環境を更新します. なお「課題12 宝探し」の「事前準備」を実施済みの場合は,今回の事前準備は不要です(再度実施しても問題はありません).
- PandAから次のファイルを「Home」にダウンロードしてください.
リソース > 01_設定ファイル > update_20241118.sh
-
端末(Terminal)で次のコマンドを実行してください.
$ bash update_20241118.sh ⏎
なお「$」は端末画面に最初から出ている「プロンプト」を表しています.これは入力しません.
このコマンドを実行すると,次のように表示されます(表示されるメッセージの一部のみ掲載しています).
+ cd /home/xxxxxxxx/lib/ruby/gtr : : turtle.rb 100%[===================>] 22.69K --.-KB/s in 0.02s 2024-11-18 19:34:15 (929 KB/s) - ‘turtle.rb’ saved [23234/23234] : : + /bin/rm -f update_20241118.sh
最後に上のように表示されていれば設定の更新は完了です. 更新が完了した時点でダウンロードしたファイル(update_20241118.sh)は削除されます.
課題
タートルグラフィクスで七色の虹を描くプログラムを作成して提出してください.
- 配列と繰り返しを利用することでプログラムを構造化することを想定しています.
- 虹の7つの帯は円環の半分(幅のある半円)で描くことにします.
(※ 帯を太い線として描くことは避けてください) - 虹の大きさ,各色の帯の幅は適宜決めてください.
- 帯の色は外側から「赤,橙,黄,緑,青,藍,紫」の順です. 色データの見本を以下に示します(必ずしもこの通りでなくても構いません).
- キャンバスの背景は白(255,255,255)です.

色 | R | G | B |
---|---|---|---|
赤 | 237 | 26 | 61 |
橙 | 243 | 152 | 0 |
黄 | 255 | 212 | 0 |
緑 | 0 | 148 | 0 |
青 | 0 | 103 | 191 |
藍 | 35 | 71 | 148 |
紫 | 167 | 87 | 168 |
プログラムテンプレート
次に示すプログラムのテンプレート(雛型)を使って下さい. このプログラムは名前を適宜変えた上で保存して利用してください.
Tips
- 配列による色データの扱い
色データは3要素の配列によって指定できます. さらに色データ(つまり配列)を配列でまとめることもできます(パレット,カラーマップ).class Turtle # パレット(3色) # (注意) 「メソッドの外」で定義すること(メソッドの中で定義するとエラーになる) PALETTE=[ [255, 0, 0], [ 0,255, 0], [ 0, 0,255] ] def draw set_color(PALETTE[0]) # 色データを配列で指定できる end end
- 配列の要素数(size)
配列の要素の個数はsizeで取得できます.ary = [8,1,25,6,7,1,6] y = ary.size # y == 7 b_dist = [["O",31],["A",38],["B",22],["AB",9]] t = b_dist.size # t == 4
- 円弧と扇形の描画(arc)
arc(r,a,false)で半径r,中心角a度の円弧(3つ目の引数は「false」そのものです), arc(r,a,true)で半径r,中心角a度の扇形(3つ目の引数は「true」そのものです)を描くことができます. 亀が円弧の端点にいると仮定して,亀が向いている方向から左向き(a > 0)か右向き(a < 0)で円弧を描きます. 扇型の場合は円の中心を経て,最初の点に戻ります.このとき亀の向きも描き始めるときの向きに戻ります.# 円弧(左回り) arc(100,60,false) # 扇形(右回り,塗りつぶす) fill { arc(100,-60,true) }