Advent用に記事を書いてみました。
コードミックスビジュアルプログラミングStateGoで、日本語プログラミング言語なでしこを使い、タートルグラフィックスに挑戦します^_^
題目
StateGoを使って『なでしこ』のタートルグラフィックスで正N角形を描きます。
どうやって
キャンバスのトップ中央からスタートするとし、各パラメータを次のように定義します。
N ... 分割数 = N角形のN
R ... 半径
AO ... N角形の一辺と中心点が作る三角形の中心点側の角度
AR ... N角形の一辺と中心点が作る三角形の円周側の角度
KAME_SA ... カメの開始角度
KAME_MA ... カメの回転角度
KAME_ML ... カメの直進距離=N角形の一辺の長さ
スタート時にカメの角度をKAME_SAに設定し、KAME_ML分の直進とKAME_MA分の回転をN回実行。
ソース
StateGoで作成されています。
Githubのなでしこサンプルに格納されています。
https://github.com/NNNIC/psgg-nadesiko-sample/v3/examples/04_TORTOISE
動作環境
Windows 10
StateGo ※StateGoをインストールしてください
使い方
1. githubのStateGoなでしこサンプルをクローン
2. v3/examples/04_TORTOISE/TestControl.psggを開く
3. 【保存と変換ボタン】を押す
ステート図がソースコードに変換され、クリップボードにコピーされます。
もし、コピーされない場合はウインドウメニューのその他
からオプション
を選択し、クリップボードへ出力する
に設定してください。
4. ブラウザでなでしこ3簡易エディタ-タートルグラフィックス用を開きます。
5. テキストボックスにペースト
StateGoの変換でクリップボードにコピーされたテキストをなでしこ簡易エディタにペーストします。
6. 実行
解説
StateGoの画面に簡単な解説を追加しました。
プログラムの流れ
左上の[START]からプログラムが開始され、矢印にそって実行されます。
各ステートは、テンプレートを使い、ソースコードに展開されます。
なでしこの命令がそのまま書き込まれています。
組込について
赤い太線で囲ったステートは、組込ステートと呼ばれます。
なでしこV3より変数スコープが導入されたため、ステート間で使用する変数はここで宣言します。
組込みの内容は、テンプレートが使われずにそのまま出力されます。
コメントについて
ここでは、なでしこ簡易エディタのリンクが設定されています。クリックでメニューを表示して、リンクに飛ぶで、簡易エディタを開くことができます。
ループについて
ループはサブルーチンを条件を満たす間呼び出します。
ここでは、N回サブルーチンを呼び出します。
サブルーチン
サブルーチンは、開始とリターン(サブルーチン)の間のステートを実行します。
サンプル改変
分割数の変更
E_0000ステートの Nの設定を変更してみましょう.
N=3の場合
N=10の場合
0002ステートだけ実行
0002ステートはマイナビの記事からのコピーです。本タートルグラフィックスのプログラミング開始時に動作確認のため使用したものです。
この0002ステートだけを実行してみましょう。
(STARTから0002ステートへ矢印を伸ばして実行)
もっと?
正三角形から正十角形まで描くサンプルを用意しました。Stategoの『なでしこ』サンプル内の v3/examples/04_TORTOISE_2
を同じく実行します。