2005/A3/課題2

2005/A3

ロボットに「右」を書かせてみよう    作成者 tatsu                      

ポイント:何とかして手書きの「右」に近づけようと思い、なめらかさを出した。

    

命令

  
 int move_time;

task main() {

  move_time=80;                //一角目を書く
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(move_time);
  
  move_time=20;             //ペンを上げる                   
    OnFwd(OUT_B);
    Wait(move_time);
    Off(OUT_B);
  
  move_time=89;            //回転させる
    OnRev(OUT_A);
    OnFwd(OUT_C);
    Wait(move_time);
  
  move_time=15;              //後退させる
    OnRev(OUT_A+OUT_C);
    Wait(move_time);
  
  move_time=20;             //ペンを下ろす
   OnRev(OUT_B);
   Wait(move_time);
   Off(OUT_A+OUT_C+OUT_B);
   Wait(50);
  
 move_time=85;              //直進させる
    OnFwd(OUT_A+OUT_C);
    Wait(move_time);
 
 move_time=20;              //ペンを上げる
   OnFwd(OUT_B);
   Wait(move_time);
   Off(OUT_B);   
  
 move_time=75;             //右に曲がる
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(move_time);
    Off(OUT_A+OUT_C+OUT_B);
    
 move_time=50;              //前進する
  OnRev(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);
 
 move_time=20;            //ペンを下ろす
   OnRev(OUT_B);
   Wait(move_time);
   Off(OUT_B);
 
 move_time=60;            //前進する
  OnFwd(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);
 
 move_time=40;           //ペンを上げる
   OnFwd(OUT_B);
   Wait(move_time);
   Off(OUT_B);
 
 move_time=30;             //もう一歩前進
  OnFwd(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);
  
 move_time=70;               //左に曲がる
    OnRev(OUT_A);
    OnFwd(OUT_C);
    Wait(move_time);
    Off(OUT_A+OUT_C+OUT_B);
    
 move_time=73;                  //後退する
  OnRev(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);
  
 move_time=30;                      //ペンを下ろす
   OnRev(OUT_B);
   Wait(move_time);
   Off(OUT_B);
    
 move_time=80;                   //前進する
  OnFwd(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);
  
 move_time=40;                     //右に曲がる
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(move_time);
    Off(OUT_A+OUT_C+OUT_B);  
    
 move_time=40;                   //ペンを上がる
   OnFwd(OUT_B);
   Wait(move_time);
   Off(OUT_B);
   
 move_time=40;                     //引続き右に曲がる
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(move_time);
    Off(OUT_A+OUT_C+OUT_B);
      
 move_time=40;                     //前進する
  OnFwd(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);   
 move_time=76;                       //右に曲がる
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(move_time);
    Off(OUT_A+OUT_C+OUT_B);
    
 move_time=95;                             //後退させる
  OnRev(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);
  
 move_time=40;                        //ペンを下ろす
   OnRev(OUT_B);
   Wait(move_time);
   Off(OUT_B);

move_time=50;                        //最後の一角を書く
  OnRev(OUT_A+OUT_C);
  Wait(move_time);
  Off(OUT_A+OUT_C);
  
move_time=40;                      //ペンを上げる
   OnFwd(OUT_B);
   Wait(move_time);
   Off(OUT_B);
      

}

終わってみて

    [反省]
          ・時間が合わなかった。
          ・長いプログラムになってしまった。          
    [感想] 
        簡単な漢字を書くことにこんなに手こずるとは思わなかった。 説明書どうりではなく、自分で作るということの大切さが思いだされた。

コメントお願いします

  • 関数やサブルーチンを使うと、もう少し短くてすっきりしたプログラムになると思います。また、何画目の動作のための命令なのか、などがわかるようにコメント文を入れておきましょう。 -- 松本(教員)? 2005-11-21 (月) 14:31:01


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-01 (木) 13:39:12