第12回:Small Basicを使ってみよう
こんにちは。「50歳からのプログラミング講座」を担当する JLabo(ジェイラボ)です。
前回に続いて「タートルグラフィックス」をご紹介します。タートルグラフィックスのコマンドは前回ご紹介しました。第一回目のコラムでご紹介したMyHelpでTurtle で検索するとコマンドが表示されますので参考にしてください。
これらのコマンドを使っていろいろな図形を描いてみましょう。プログラムを入力し、動作を確認して、修正することでプログラミングの体験が出来ますのでぜひお孫さんと一緒にお楽しみ頂ければと思います。こんな時間を持てるのは振り返って見ると一瞬のことです。ちょっと大きくなるともう遊んでくれません。各プログラムはWebに登録してありますのでもし、プログラムを打ち込むのが面倒な場合は インポート番号を入力してください。
最初に座標とスタート位置を設定してから始めます。
四角形を描きます。
インポート番号
ZFHM929.000
'画面横サイズの設定
GraphicsWindow.Width = 300
'画面縦サイズの設定
GraphicsWindow.Height = 300
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定
Turtle.X = 100
'亀の縦方向スタート位置を設定
Turtle.Y = 200
'100歩前進
Turtle.Move(100)
'右90度回転
Turtle.TurnRight()
'100歩前進
Turtle.Move(100)
'右90度回転
Turtle.TurnRight()
'100歩前進
Turtle.Move(100)
'右90度回転
Turtle.TurnRight()
'100歩前進
Turtle.Move(100)
'右90度回転
Turtle.TurnRight()
ループで四角形を描きます。
インポート番号
FHCK992.000
'画面横サイズの設定
GraphicsWindow.Width = 300
'画面縦サイズの設定
GraphicsWindow.Height = 300
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定 Turtle.X = 100
'亀の縦方向スタート位置を設定
Turtle.Y = 200
'Wを1から4まで変化させる
For W = 1 To 4
'100歩前進
Turtle.Move(100)
'右90度回転
Turtle.TurnRight()
'Wの変化を管理
EndFor
線に色を付けてみます。
インポート番号
PTDW253.000
'画面横サイズの設定
GraphicsWindow.Width = 300
'画面縦サイズの設定
GraphicsWindow.Height = 300
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定
Turtle.X = 100
'亀の縦方向スタート位置を設定
Turtle.Y = 200
'Wを1から4まで変化させる
For W = 1 To 4
'描画するペンの色をランダムに設定(自由に選んで使える色を取得) GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
'100歩前進
Turtle.Move(100)
'右90度回転
Turtle.TurnRight()
'Wの変化を管理
EndFor
六角形を描きます。
インポート番号
PRZS65.000
'画面横サイズの設定
GraphicsWindow.Width = 300 '画面縦サイズの設定
GraphicsWindow.Height = 300
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定
Turtle.X = 75
'亀の縦方向スタート位置を設定
Turtle.Y = 200
'Wを1から6まで変化させる
For W = 1 To 6
'100歩前進
Turtle.Move(100)
'60度回転(時計回り)
Turtle.Turn(60)
'Wの変化を管理
EndFor
条件を変数にして多角形を描きます。
インポート番号
VJWR846.000
'画面横サイズの設定
GraphicsWindow.Width = 300
'画面縦サイズの設定
GraphicsWindow.Height = 300
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定
Turtle.X = 100
'亀の縦方向スタート位置を設定
Turtle.Y = 150
'辺の数
Sides = 12
'1辺の長さ
Length = 400 / Sides
'角度
Angle = 360 / Sides
'辺の数だけ繰り返す
For W = 1 To Sides
'長さを進む
Turtle.Move(Length)
'指定角度で回る
Turtle.Turn(Angle)
'繰り返しの管理
EndFor
破線を描きます。
インポート番号
HBGJ115.000
'画面横サイズの設定
GraphicsWindow.Width = 300
'画面縦サイズの設定
GraphicsWindow.Height = 300
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定
Turtle.X = 75
'亀の縦方向スタート位置を設定
Turtle.Y = 200
'辺の指定
Sides = 8
'辺の長さ
Length = 400 / Sides
'角度の指定
Angle = 360 / Sides
'Vを辺数だけ繰り返す
For V = 1 To Sides
'点の数を繰り返す
For W = 1 To Sides
'破線の長さを移動
Turtle.Move(Length / 12)
'ペンをあげる(空白)
Turtle.PenUp()
'破線の長さを移動
Turtle.Move(Length / 12)
'ペンを下げる(実線)
Turtle.PenDown()
'Wの変化を管理
EndFor
'方向を変える
Turtle.Turn(Angle)
'Vの変化を管理
EndFor
ちょっと計算がややこしいですが、お守りのマークを描いてみます。
インポート番号
QBVH375.000
'画面横サイズの設定
GraphicsWindow.Width = 400
'画面縦サイズの設定
GraphicsWindow.Height = 400
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定
Turtle.X = 200
'亀の縦方向スタート位置を設定
Turtle.Y = 25
'左に回転
Turtle.TurnLeft()
'Wを360度変化
For W = 1 To 360
'1度回転
Turtle.Turn(-1)
'3歩進める
Turtle.Move(3)
'Wの変化を管理
EndFor
'72度回転
Turtle.Turn(72)
'稜の角度を計算
d = 3 * 360 / Math.Pi
'辺の長さを計算
l = d * Math.Cos(18 / 180 * Math.Pi)
'辺を描画
For W = 1 To 5
'稜の角度を回転
Turtle.Turn(-144)
'辺の長さを移動
Turtle.Move(l)
'Wの変化を管理
EndFor
三角形を描きます。
インポート番号
WTDH722.000
'画面横サイズの設定
GraphicsWindow.Width = 250
'画面縦サイズの設定
GraphicsWindow.Height = 250
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 9
'亀の横方向スタート位置を設定
Turtle.X = 50
'亀の縦方向スタート位置を設定
Turtle.Y = 200
'亀を150歩移動
Turtle.Move(150)
'90度回転
Turtle.Turn(90)
'150歩移動
Turtle.Move(150)
'指定座標に移動
Turtle.MoveTo(50, 200) '45度回転
Turtle.Angle = 45
渦巻きを描きます。
インポート番号
GRTM920.000
'画面横サイズの設定
GraphicsWindow.Height = 300
'画面縦サイズの設定
GraphicsWindow.Width = 300
'ペンの色を青に設定
GraphicsWindow.PenColor = "blue"
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed =9
'亀の横方向スタート位置を設定
Turtle.X = 150
'亀の縦方向スタート位置を設定
Turtle.Y = 150
'Wをスキャン
For W = 0 To 200 Step 5
'W歩進める
Turtle.Move(W)
'90度回転
Turtle.Turn(90)
'Wの変化を管理
EndFor
複数の円を描きます。
インポート番号
GXWC352.000
'画面横サイズの設定
GraphicsWindow.Width = 300
'画面縦サイズの設定
GraphicsWindow.Height = 300
'亀を表示します。
Turtle.Show()
'スピードを9にします。最大10
Turtle.Speed = 10
'亀の横方向スタート位置を設定 Turtle.X = 150
'亀の縦方向スタート位置を設定 Turtle.Y = 150
'辺の数を設定
Sides = 50
'長さを計算
Length = 400 / Sides
'角度を計算
Angle = 360 / Sides
'回転角を計算
Turn=360/Sides
'辺を変化させます。
For V = 1 To Sides
'辺を変化させます。
For W = 1 To Sides
'指定長さを移動
Turtle.Move(Length)
'指定角度で回転
Turtle.Turn(Angle)
'Vの変化を管理
EndFor
'指定回転角で回転
Turtle.Turn(Turn)
'Wの変化を管理
EndFor
最後に、一筆書きを亀に描かせてみましょう。間違えるとすぐわかるのでトレーニングには最適です。
インポート番号
VRRF18.000
最初に座標データを配列に収納します。
Basic の場合
Dim X(20)
X(1)=120
としますが Small Basic では
宣言は不要で カッコではなく大カッコになります。
X[1]=120
Y[1]=80
X[2]=70
Y[2]=120
X[3]=20
Y[3]=160
X[4]=60
Y[4]=190
X[5]=80
Y[5]=180
X[6]=70
Y[6]=195
X[7]=120
Y[7]=220
X[8]=120
Y[8]=150
X[9]=150
Y[9]=130
X[10]=150
Y[10]=170
X[11]=120
Y[11]=150
X[12]=120
Y[12]=80
X[13]=240
Y[13]=160
X[14]=219
Y[14]=170
X[15]=200
Y[15]=160
X[16]=280
Y[16]=120
X[17]=280
Y[17]=200
X[18]=219
Y[18]=170
X[19]=120
Y[19]=220
X[20]=20
Y[20]=200
GraphicsWindow.Width = 300 GraphicsWindow.Height = 300 Turtle.Show()
Turtle.Speed = 9
Turtle.X = x[1]
Turtle.Y = y[1]
For W=1 To 2
Turtle.MoveTo(X[W], Y[W]) EndFor
'目玉を描きます。
For Ax=-1 To 1 Step 2
For Rr=40 To 80 Step 40 Sides = 12
Length = Rr / Sides*Ax Angle = 360 / Sides
For W = 1 To Sides
Turtle.Move(Length)
Turtle.Turn(Angle)
EndFor
EndFor
EndFor
For W=3 To 19
Turtle.MoveTo(X[W], Y[W])
EndFor
'亀を移動します。
Turtle.PenUp()
Turtle.MoveTo(X[20], Y[20])
Turtle.Turn(90)
Turtle.PenUp()
「Small Basic を使ってみよう」のコラムは今回で終了します。1年間ご愛読頂きまして誠に有りがとうございました。皆様のお役に立てたかどうかは全く自信がありませんが自分自身としては大変勉強になりました。この機会を持てたことに感謝しています。
「わが家の工夫」も今回が最後になります。
自作のツールボックスをご紹介します。
ガレージなどに置くスチール製の工具箱が欲しかったのですが なかなか手が出ないのと家庭内では金属の音がうるさいと思い、木で作りました。最初は何となく詰め込んでいましたが そのうち機能区分で分けました。
「測る」 テスター、ノギス
「打つ」 ハンマーその他
「削る」 ヤスリなど
「掴む」 各種ペンチ
「切る」 ニッパー、金切りはさみなど
引出は戻しやすいように若干傾斜を付けてあります。「測る」の引出でノギスやテスターが入っていますが使用頻度の高いドライバも入っています。「打つ」の引出には金槌、ポンチ、その他が入っています。
「測る」の引出でノギスやテスターが入っていますが使用頻度の高いドライバも入っています。
「打つ」の引出には金槌、ポンチ、その他が入っています。
「削る」ではヤスリ、ノコギリ、よく使うカッターナイフが入っています。
「掴む」の棚にはペンチ、プライヤーの他に普段は使わないカッターナイフが入っています。
「切る」の棚にはニッパー、ワイヤーカッター、金切りはさみなどが入っています。
レターケースには文具の他にドリルなどを入れてます。
六角軸のドリル
六角軸木工用と普通のドリルです。
ドライバードリル用のビットです。
予備のドリルと六角レンチ
ルータ用のヤスリ
ルータ用のダイヤモンドヤスリ
DIYで何かを作ると完成度が悪いところが気になって作り直しをします。必然的に道具が必要になり、少しずつそろえたらかなりの量になってしまいました。このサイクルが楽しいのでこれからも元気に続けられるようにしたいと思っています。
コラムに加え、わが家の工夫のほうもご覧いただき有り難うございました。ほんの少しでもご参考になる部分がありましたら大変嬉しく思います。