2005/C6/課題1左

IMG_0300.JPG

『斗』という漢字を書くプログラム試作

//    作成者:山崎 高橋 今西
//    作成日:2005-11-1

task main ()
{
 int x;
 x=140;

 repeat (2)
 {
 
 //GO  WRITING
 OnFwd (OUT_A);
 OnRev (OUT_C);
 Wait (20);
 Off (OUT_A+OUT_C);
 
 //PEN UP
 OnRev (OUT_B);
 Wait (20);
 Off (OUT_B);
 
 //TURN
 OnRev (OUT_A+OUT_C);
 Wait (140);
 
 //GO
 OnFwd (OUT_A);
 OnRev (OUT_C);
 Wait (39);
 Off (OUT_A+OUT_C);
 
 //TURN
 OnFwd (OUT_A+OUT_C);
 Wait (x);
 Off (OUT_A+OUT_C);
 
 x=215;
 
 //PEN DOWN
 OnFwd (OUT_B);
 Wait (20);
 Off (OUT_B);

 } //REPEAT FINISH
 
 //GO  WRITING
 OnFwd (OUT_A);
 OnRev (OUT_C);
 Wait (126);
 Off (OUT_A+OUT_C);
 
 //PEN UP
 OnRev (OUT_B);
 Wait (20);
 Off (OUT_B);
 
  //TURN
 OnFwd (OUT_A+OUT_C);
 Wait (196);
 Off (OUT_A+OUT_C);
 
 //GO
 OnFwd (OUT_A);
 OnRev (OUT_C);
 Wait (127);
 Off (OUT_A+OUT_C);
 
 //TURN
 OnFwd (OUT_A+OUT_C);
 Wait (300);
 Off (OUT_A+OUT_C);
 
 //PEN DOWN
 OnFwd (OUT_B);
 Wait (20);
 Off (OUT_B);
 
 //GO  WRITING
 OnFwd (OUT_A);
 OnRev (OUT_C);
 Wait (169);
 Off (OUT_A+OUT_C);
}

『斗』という漢字を書くプログラム完成版(サブルーチン、関数で書き換えた)

//    作成者:山崎 高橋 今西
//    作成日:2005-11-1
//    変更日:2005-11-14
//    変更点:関数、サブルーチンの使用
 
//GOの関数
void go(int g)
{
  OnFwd (OUT_A);
  OnRev (OUT_C);
  Wait (g);
  Off (OUT_A+OUT_C);
}

//PEN UPのサブルーチン
sub pen_up()
{
  OnRev (OUT_B);
  Wait (20);
  Off (OUT_B);
}

//PEN DOWNのサブルーチン
sub pen_down()
{
  OnFwd (OUT_B);
  Wait (20);
  Off (OUT_B);
}

//TURN leftの関数
void turn_left(int l)
{
  OnFwd (OUT_A+OUT_C);
  Wait (l);
  Off (OUT_A+OUT_C);
}

//TURN rightの関数
void turn_right(int r)
{
  OnRev (OUT_A+OUT_C);
  Wait (r);
  Off (OUT_A+OUT_C);  
}

//ここからメインの処理
task main ()
{
   int x = 140;             //repeat1回目のTURN left時間をrepeat前に代入

   repeat (2)
   {
     go(20);                //GO  WRITING(左上の点から。スタート時はペンが下りています。)
     pen_up();              //PEN UP
     turn_right(140);       //TURN right
     go(39);                //GO (2個目の点に移動)
     turn_left(x);          //TURN left(位置につく 変数xは先に代入済み)
     x = 215;               //2回目用のTURN left時間
     pen_down();            //PEN DOWN
   }                        //repeatで左下の点を書く

   go(126);                 //GO  WRITING(横棒)
   pen_up();                //PEN UP
   turn_left(196);          //TURN left
   go(127);                 //GO (縦棒に移動)
   turn_left(300);          //TURN left(位置につく)
   pen_down();              //PEN DOWN
   go(169);                 //GO  WRITING(縦棒)
}

難しかった点

工夫した点

反省点

感想

コメントはこちらまで


上へ  戻る 

tya1 0 &counter([total|today|yesterday]);

添付ファイル: fileIMG_0300.JPG 343件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-11-22 (火) 21:37:45