- 履歴一覧
- 2005/B7/課題1(左チーム) は削除されています。
[[2005/B7/課題1]]
目次
#contents
*「正」を書くプログラム [#u19f907f]
#comment
*「左」を書くプログラム [#racc09c4]
// 「左」を書くプログラム
//
// 作成者:かずま
// 作成日:2005-11-7
#define TURN_TIME 101 // 直角に曲がるのにかかる時間
#define MOVE_TIME 121 // 1秒間に進む距離
#define PEN_TIME 20 // ペンを上下させる時間
sub turn_left() // 左方向に90度回転
{
OnRev(OUT_A); OnFwd(OUT_C);
Wait(TURN_TIME);
Off(OUT_A+OUT_C);
}
sub turn_right() // 右方向に90度回転
{
OnFwd(OUT_A); OnRev(OUT_C);
Wait(TURN_TIME);
Off(OUT_A+OUT_C);
}
sub pen_down() // ペンを下ろす
{
OnFwd(OUT_B);
Wait(PEN_TIME);
Off(OUT_B);
}
sub pen_up() // ペンを上げる
{
OnRev(OUT_B);
Wait(PEN_TIME);
Off(OUT_B);
}
task main()
{
SetPower(OUT_A,7); // パワーを設定
SetPower(OUT_C,7);
pen_down(); // ペンを下ろす
OnFwd(OUT_A+OUT_C); // 【一画目】行動1(17.1cm直進)
Wait(17100/MOVE_TIME);
Off(OUT_A+OUT_C);
pen_up(); // ペンを上げる
Wait(100);
turn_left(); // 行動2(左回転)
Wait(100);
OnFwd(OUT_A+OUT_C); // 行動3(5.2cm直進)
Wait(5200/MOVE_TIME);
Off(OUT_A+OUT_C);
Wait(100);
turn_left(); // 行動4(左回転)
Wait(100);
OnFwd(OUT_A+OUT_C); // 行動5(8.8cm直進)
Wait(8800/MOVE_TIME);
Off(OUT_A+OUT_C);
Wait(100);
OnRev(OUT_A); // 行動6(左にある程度回転)
OnFwd(OUT_C);
Wait(87);
Off(OUT_A+OUT_C);
pen_down(); // ペンを下ろす
Wait(100);
SetPower(OUT_A,7); // パワーを変更
SetPower(OUT_C,0);
OnFwd(OUT_A+OUT_C); // 【二画目】行動7(左方向に曲がりながら前進)
Wait(180);
Off(OUT_A+OUT_C);
SetPower(OUT_A,7); // パワーを変更
SetPower(OUT_C,7);
pen_up(); // ペンを上げる
Wait(100);
OnFwd(OUT_A); // 行動8(右にある程度回転)
OnRev(OUT_C);
Wait(165);
Off(OUT_A+OUT_C);
Wait(100);
OnFwd(OUT_A+OUT_C); // 行動9(5.8cm直進)
Wait(5800/MOVE_TIME);
Off(OUT_A+OUT_C);
Wait(100);
turn_right(); // 行動10(右回転)
Wait(100);
OnFwd(OUT_A+OUT_C); // 行動11(2.3cm直進)
Wait(2300/MOVE_TIME);
Off(OUT_A+OUT_C);
pen_down(); // ペンを下ろす
Wait(100);
OnFwd(OUT_A+OUT_C); // 【三画目】行動12(12.2cm直進)
Wait(12200/MOVE_TIME);
Off(OUT_A+OUT_C);
pen_up(); // ペンを上げる
Wait(100);
OnRev(OUT_A+OUT_C); // 行動13(5.5cm後退)
Wait(5500/MOVE_TIME);
Off(OUT_A+OUT_C);
Wait(100);
turn_right(); // 行動14(右回転)
Wait(200);
OnRev(OUT_A+OUT_C); // 誤差修正1(1.4cm後退)
Wait(1400/MOVE_TIME);
Off(OUT_A+OUT_C);
pen_down(); // ペンを下ろす
Wait(200);
OnFwd(OUT_A+OUT_C); // 【四画目】行動15(7.7cm直進)
Wait(7700/MOVE_TIME);
Off(OUT_A+OUT_C);
pen_up(); // ペンを上げる
Wait(100);
OnFwd(OUT_A+OUT_C); // 誤差修正2(1.1cm直進)
Wait(1100/MOVE_TIME);
Off(OUT_A+OUT_C);
Wait(100);
turn_left(); // 行動16(左回転)
Wait(100);
OnRev(OUT_A+OUT_C); // 行動17(10.3cm後退)
Wait(10300/MOVE_TIME);
Off(OUT_A+OUT_C);
pen_down(); // ペンを下ろす
Wait(100);
OnFwd(OUT_A+OUT_C); // 行動18(16.7cm直進)
Wait(16700/MOVE_TIME);
Off(OUT_A+OUT_C);
pen_up(); // ペンを上げる
}
#comment
[[戻る>2005/B7/課題1]]