2005/A6/課題1/一班/コンドのプログラム
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[戻る>2005/A6]]
[[2005/A6/コンドの部屋]]
*『左』を書くロボットのプログラム [#v73b2b89]
//『左』を書くロボット
//製作者:コンド
//製作日:05年11月8日
//キャタピラ仕様で、アームでペンを上下させるロボットのプログラムです。
**数の定義 [#q37bef71]
#define move_time 20 // アームの上げ、下げの時間
#define Move_time 110 // ロボットの中心とペン先との誤差修正の時間
**補助プログラム [#s55d3753]
void turn_right(int x) // 右回転のためのプログラム
{
OnRev(OUT_A); OnFwd(OUT_C);
Wait(x); Off(OUT_A+OUT_C);
}
void turn_left(int y) // 左回転のためのプログラム
{
OnRev(OUT_C); OnFwd(OUT_A);
Wait(y); Off(OUT_A+OUT_C);
}
void go_straight(int z) // 直進のためのプログラム
{
OnFwd(OUT_A+OUT_C); Wait(z);
Off(OUT_A+OUT_C);
}
void back(int w) // 後退のためのプログラム
{
OnRev(OUT_A+OUT_C); Wait(w);
Off(OUT_A+OUT_C);
}
void right(int t) // 二画目の右曲線のためのプログラム
{
Off(OUT_A); OnFwd(OUT_C);
Wait(t); Off(OUT_C);
}
void up() // アームを上げるプログラム
{
OnFwd(OUT_B); Wait(move_time);
Off(OUT_B);
}
void down() // アームを下げるプログラム
{
OnRev(OUT_B); Wait(move_time);
Off(OUT_B);
}
**メインのプログラム [#bfec612e]
task main()
{
down(); // 一画目、書き始め
go_straight(177); // 一画目の直線を書く
up(); // 一画目、書き終わり
back(10); // 後ろに移動
turn_right(159); // 右に回転
back(153); // 二画目の書き始めに移動
down(); // 二画目、書き始め
repeat(8){ // 二画目の右曲線を書く
go_straight(15);
right(11);
}
up(); // 二画目、書き終わり
turn_right(292); // 右に回転
back(54); // 三画目の始めに移動
turn_right(170); // 右に回転
back(Move_time); // 誤差修正
down(); // 三画目、書き始め
go_straight(119); // 三画目の直線
up(); // 三画目、書き終わり
go_straight(65); // 四画目の始めに移動
turn_right(159); // 右に回転
back(Move_time); // 誤差修正
down(); // 四画目、書き始め
go_straight(98); // 四画目の直線
up(); // 四画目、書き終わり
go_straight(Move_time); // 誤差修正
turn_left(140); // 左に回転
back(235); // 五画目の書き始めに移動
down(); // 画目、書き始め
go_straight(180); // 五画目の直線を書く
up(); // 五画目、書き終わり
go_straight(130); // ロボットが退場して終了
}
*反省点 [#o77618e2]
・キャタピラ仕様のため、文字が波文字になってしまった。
・『ナ』と『エ』の接点がずれてしまった。
・プログラミング、ロボットの形が決まるまで時間が掛かってしまった。
-見やすくて良いと思います。この調子で… -- [[TA M]] &new{2005-11-11 (金) 16:12:38};
-大変わかりやすいプログラムになっていると思います。ついでに冒頭のプログラムの説明の部分も // でコメントアウトしておきましょうか。 -- [[松本(教員)]] &new{2005-11-11 (金) 22:35:37};
#comment
終了行:
[[戻る>2005/A6]]
[[2005/A6/コンドの部屋]]
*『左』を書くロボットのプログラム [#v73b2b89]
//『左』を書くロボット
//製作者:コンド
//製作日:05年11月8日
//キャタピラ仕様で、アームでペンを上下させるロボットのプログラムです。
**数の定義 [#q37bef71]
#define move_time 20 // アームの上げ、下げの時間
#define Move_time 110 // ロボットの中心とペン先との誤差修正の時間
**補助プログラム [#s55d3753]
void turn_right(int x) // 右回転のためのプログラム
{
OnRev(OUT_A); OnFwd(OUT_C);
Wait(x); Off(OUT_A+OUT_C);
}
void turn_left(int y) // 左回転のためのプログラム
{
OnRev(OUT_C); OnFwd(OUT_A);
Wait(y); Off(OUT_A+OUT_C);
}
void go_straight(int z) // 直進のためのプログラム
{
OnFwd(OUT_A+OUT_C); Wait(z);
Off(OUT_A+OUT_C);
}
void back(int w) // 後退のためのプログラム
{
OnRev(OUT_A+OUT_C); Wait(w);
Off(OUT_A+OUT_C);
}
void right(int t) // 二画目の右曲線のためのプログラム
{
Off(OUT_A); OnFwd(OUT_C);
Wait(t); Off(OUT_C);
}
void up() // アームを上げるプログラム
{
OnFwd(OUT_B); Wait(move_time);
Off(OUT_B);
}
void down() // アームを下げるプログラム
{
OnRev(OUT_B); Wait(move_time);
Off(OUT_B);
}
**メインのプログラム [#bfec612e]
task main()
{
down(); // 一画目、書き始め
go_straight(177); // 一画目の直線を書く
up(); // 一画目、書き終わり
back(10); // 後ろに移動
turn_right(159); // 右に回転
back(153); // 二画目の書き始めに移動
down(); // 二画目、書き始め
repeat(8){ // 二画目の右曲線を書く
go_straight(15);
right(11);
}
up(); // 二画目、書き終わり
turn_right(292); // 右に回転
back(54); // 三画目の始めに移動
turn_right(170); // 右に回転
back(Move_time); // 誤差修正
down(); // 三画目、書き始め
go_straight(119); // 三画目の直線
up(); // 三画目、書き終わり
go_straight(65); // 四画目の始めに移動
turn_right(159); // 右に回転
back(Move_time); // 誤差修正
down(); // 四画目、書き始め
go_straight(98); // 四画目の直線
up(); // 四画目、書き終わり
go_straight(Move_time); // 誤差修正
turn_left(140); // 左に回転
back(235); // 五画目の書き始めに移動
down(); // 画目、書き始め
go_straight(180); // 五画目の直線を書く
up(); // 五画目、書き終わり
go_straight(130); // ロボットが退場して終了
}
*反省点 [#o77618e2]
・キャタピラ仕様のため、文字が波文字になってしまった。
・『ナ』と『エ』の接点がずれてしまった。
・プログラミング、ロボットの形が決まるまで時間が掛かってしまった。
-見やすくて良いと思います。この調子で… -- [[TA M]] &new{2005-11-11 (金) 16:12:38};
-大変わかりやすいプログラムになっていると思います。ついでに冒頭のプログラムの説明の部分も // でコメントアウトしておきましょうか。 -- [[松本(教員)]] &new{2005-11-11 (金) 22:35:37};
#comment
ページ名: