課題
タートルグラフィクスで,
次のようなチェッカーボードを描くプログラムを作成して,プログラムを提出してください.
- チェッカーボードの各マスは正方形で1辺の長さはsであるとして(s>0), マスが横方向にはm個,縦方向にはn個並んでいるとします(m,n>0). 上の例では,m=7, n = 5です.
- s,m,nの値を設定したとき,設定された値に応じて,チェッカーボードが描かれるように変数を使ってプログラムを記述してください. s,m,nには適切に値が設定されると仮定して構いません.たとえば0以下の値が指定されるといったことを考える必要はありません.
- チェッカーボードのマスの色(2色)は白以外で自由に決めてください.
- どこからどのように描いても構いません.描画の手順は自由に決めてください.
補足
この課題にはテンプレートは用意していません. 新たなファイルとしてプログラムを作成してください. プログラミングの方法について情報が必要であれば,これまでの課題を参照してください. たとえば「タートルグラフィクスによる自由制作」の課題が参考になるでしょう.
目次
Tips
- タートルグラフィクス
- 色表
- 四則演算に関する注意
- 乗算: 演算子は「*」です.数学のように記号を省略することはできません.
- 除算: 演算子は「/」です.
- 演算の優先順位
数学と同じです.括弧で優先順位を明示できます. ただし計算式での括弧には常に( )を使います. { }や[ ]は使いません. - markとback(タートルグラフィクスの機能)
markすると亀が現在位置と向きを記憶します(markを設置します). その後backすると亀がmarkした状態に戻ります. backするとそのmarkに関する記憶はなくなります(markを回収します).sz = 100 mark() # 現在の位置と向きを記憶する forward(sz) turn(120) forward(sz) back() # 記憶している場所まで線を描いて戻る.向きも記憶したときの状態に合わせる. mark() # 現在の位置と向きを記憶する(上のbackで最初のmarkは忘れられているため再度マークする) forward(sz) turn(-120) forward(sz) # 記憶している場所まで線を描かずに戻る.向きも記憶したときの状態に合わせる. back(hover=True)
2つ以上(backしないまま)続けてmarkすることもできます. markは全て順番に記憶されます. markが2つ以上ある状態でbackすると最後にmarkした状態(最新のmark)に戻ります. この場合もそのmarkに関する記憶はなくなります(markが1つ減ります). backするたびにmarkしたときと逆順に新しいmarkから順に古いmarkに戻っていくことになります. なおmarkがないときにbackしても何も起きません.マークは「スタック」(stack)というデータ構造を使って管理しています.
サンプルプログラム
次のページに繰り返しや条件分岐に関するサンプルプログラムがあります. 必要に応じて「ダウンロード」して参考にしてみてください(注意::画面で開くと文字化けすることが予想されます).
注意
以下のことに注意してください.
- プログラムを変更した場合は,必ずファイルを保存して,その後プログラムを実行してください.
- ファイルを保存する.
- (再度)プログラムを実行する
- プログラムを実行してエラーがでたら「よくある質問」を参照してみてください. もちろん分からないことがある場合には演習中に質問してください.
- プログラムを提出する際には「課題提出に関する注意」を必ず守るようにしてください.