30 Aral覺k 2014 Sal覺

Tunyukuk Robot Kolu

Y羹ksek lisans tezimde robot kolu yapm覺t覺m (1994-1997). al覺man覺 mekanik, elektronik ve yaz覺l覺m aya覺 vard覺. O zamanlar nesneye y繹elik programlama dilleri yoktu. 襤lkel derleyicilerde kod yaz覺yorduk. Mekanik ve elektronik yap覺s覺n覺 tasarlay覺p ger癟ekledikten sora, robotu bilgisayardaki aray羹z羹nde t羹m ikonlar覺, bevelleri, panelleri, g繹lgelendirmeleri  kendim tasarlam覺t覺m. Aray羹zde K繹kT羹r羹k癟e'de kullanmak istedim ve herbir K繹kT羹r羹k harfini piksel piksel bir bal覺k (header) dosyas覺nda tasarlad覺m ve Robot kolunu kumanda aray羹z羹nde kulland覺m. Harfleri tasar覺m覺 bir haftam覺 alm覺t覺. Art覺k Turbo C'de K繹kT羹r羹k癟e yazabiliyordum (1996). T羹m kodu sadece K繹kT羹r羹k harflerinden sorumlu k覺sm覺 KOKTURK.H bal覺k dosyas覺n覺 i癟eriini resmi alt覺nda vriyorum.


KOKTURK.H (1995)
/*
This header file was prepared by Ulduz Tu§rul €AVDAR to use the
  Alphabet of K”ktrk in C or C++ applications.
May 2, 1996

     CHARACTER TABLE
  ---------------------------------------------------------------------
  a =   a,e      i =   ,i      o =   o,u      F =   ”,      Y =  (a)y
  y =  (e)y      B =  (a)b      b =  (e)b      c =   ‡,c      f = i‡,ic
  D =  (a)d      d =  (e)d      G =  (a)g      g =  (e)g      k =  (e)k
  q = ”k,k      K =  (a)k      w =    k      W = ok,uk      L =  (a)l
  l =  (e)l      x = lt,ld      m =     m      N =  (a)n      n =  (e)n
  ¤ =    ng      X =    ny      Q = n‡,nc      h = nd,nt      p =     p
  R =  (a)r      r =  (e)r      S =  (a)s      s =  (e)s      v =     顫
  T =  (a)t      t =  (e)t      z =     z      V =     :
  1 =     1      2 =     2      3 =     3      4 =     4      5 =     5
  6 =     6      7 =     7      8 =     8      9 =     9      0 =     0
  ! =     !      + =     +      / =     /      = =     =      - =     -
  . =     .      % =     %      { =     }      } =     {      * =     *
  ( =     )      ) =     (      : =     :      @ =     @      ? =(inv)?
  ; =(inv);      , =(inv),      \"=     "

*/

int x,y,b;

void kharf(char code)
  {
  switch (code)
    {
    case 'a':line(x,y+3,x-3,y);                    //  a,e
     line(x-3,y,x-3,y+10);
     line(x-3,y+10,x-6,y+7);
     x-=9;
     break;
    case 'i':line(x,y+3,x-3,y);                    //  ,i
     line(x-3,y,x-3,y+10);
     x-=6;
     break;
    case 'o':line(x-5,y,x,y+5);                    //  o,u
     line(x,y+5,x-5,y+10);
     x-=8;
     break;
    case 'F':line(x,y,x,y+5);                      //  ”,
     line(x,y+5,x-5,y);
     line(x-5,y,x-5,y+10);
     x-=8;
     break;
    case 'Y':line(x-5,y,x-5,y+10);                 //  (a)y
     arc(x-5,y+5,270,90,5);
     x-=8;
     break;
    case 'y':circle(x-3,y+3,3);                    //  (e)y
     arc(x-5,y+5,270,0,5);
     x-=8;
     break;
    case 'B':arc(x-3,y+7,135,90,3);                //  (a)b
     arc(x,y+1,160,230,4);
     x-=9;
     break;
    case 'b':line(x-6,y+10,x,y+3);                 //  (e)b
     line(x,y+3,x-3,y);
     line(x-3,y,x-6,y+3);
     line(x-6,y+3,x,y+10);
     x-=9;
     break;
    case 'c':line(x,y+10,x-3,y+6);                 //  ‡,c
     line(x-3,y+6,x-6,y+10);
     line(x-3,y+6,x-3,y);
     x-=9;
     break;
    case 'f':line(x-3,y+10,x-3,y);                 //  i‡,ic
     line(x-3,y+5,x,y);
     line(x-3,y+5,x-6,y);
     x-=9;
     break;
    case 'D':line(x-3,y,x,y+3);                    //  (a)d
     line(x,y+3,x-2,y+5);
     line(x-2,y+5,x,y+7);
     line(x,y+7,x-3,y+10);
     line(x-6,y,x-3,y+3);
     line(x-3,y+3,x-5,y+5);
     line(x-5,y+5,x-3,y+7);
     line(x-3,y+7,x-6,y+10);
     x-=9;
     break;
    case 'd':line(x,y,x-6,y+10);                   //  (e)d
     line(x-6,y,x,y+10);
     x-=9;
     break;
    case 'G':line(x-3,y+6,x-3,y+10);               //  (a)g
     arc(x,y+2,90,270,2);
     arc(x-6,y+2,270,90,2);
     x-=9;
     break;
    case 'g':line(x-4,y,x-6,y+6);                  //  (e)g
     line(x-4,y,x,y+3);
     line(x-4,y+4,x,y+7);
     arc(x-1,y+5,180,270,5);
     x-=9;
     break;
    case 'k':line(x-4,y,x,y+2);                    //  (e)k
     line(x,y+2,x,y+10);
     line(x-4,y+3,x,y+5);
     x-=7;
     break;
    case 'q':line(x-5,y,x-5,y+10);                 //  ”k,k
     line(x-5,y,x,y);
     line(x,y,x-1,y+3);
     line(x-5,y+6,x,y+6);
//      line(x,y+6,x,y+10);
     arc(x+2,y+8,135,240,3);
     x-=8;
     break;
    case 'K':line(x,y,x,y+10);                     //  (a)k
     line(x,y+6,x-4,y+4);
     arc(x-14,y+5,330,0,10);
     x-=8;
     break;
    case 'w':line(x,y,x,y+10);                     //  k
     line(x,y,x-5,y+5);
     line(x-5,y+5,x,y+10);
     x-=8;
     break;
    case 'W':line(x-3,y,x-3,y+10);                 //  ok,uk
     line(x-3,y+10,x,y+6);
     line(x-3,y+10,x-6,y+6);
     x-=9;
     break;
    case 'L':line(x,y,x,y+10);                     //  (a)l
     line(x,y+10,x-4,y+6);
     x-=7;
     break;
    case 'l':line(x,y,x-3,y+5);                    //  (e)l
     line(x-3,y+5,x-6,y);
     line(x-3,y+5,x-3,y+10);
     x-=9;
     break;
    case 'x':line(x,y,x,y+10);                     //  lt,ld
     line(x-8,y,x-8,y+10);
     line(x,y,x-4,y+5);
     line(x-4,y+5,x-8,y);
     x-=11;
     break;
    case 'm':line(x-5,y,x,y+5);                    //  m
     line(x,y+5,x-5,y+10);
     line(x-8,y+3,x-3,y+8);
     line(x-8,y+7,x-3,y+2);
     x-=11;
     break;
    case 'N':arc(x-5,y+5,290,80,5);                //  (a)n
     x-=8;
     break;
    case 'n':line(x,y,x,y+6);                      //  (e)n
     line(x,y+6,x-4,y+3);
     line(x-4,y,x-4,y+10);
     line(x-4,y+7,x-8,y+4);
     line(x-8,y+4,x-8,y+10);
     x-=11;
     break;
    case '¤':line(x,y,x,y+10);                     //  ¤
     line(x,y+6,x-4,y+2);
     x-=7;
     break;
    case 'X':arc(x-3,y+3,270,90,3);                //  ny
     arc(x-3,y+7,270,90,3);
     x-=6;
     break;
    case 'Q':line(x-3,y,x,y+3);                    //  n‡,nc
     line(x,y+3,x-2,y+5);
     line(x-2,y+5,x,y+7);
     line(x,y+7,x-3,y+10);
     x-=6;
     break;
    case 'h':arc(x-5,y+5,125,55,5);                //  nd,nt
     putpixel(x-3,y+4,getcolor());
     putpixel(x-7,y+4,getcolor());
     putpixel(x-5,y+6,getcolor());
     x-=13;
     break;
    case 'p':line(x,y,x,y+10);                     //  p
     line(x,y,x-3,y+3);
     x-=6;
     break;
    case 'R':line(x,y,x,y+10);                     //  (a)r
     line(x,y+4,x-5,y+6);
     arc(x-12,y+2,330,10,8);
     x-=8;
     break;
    case 'r':line(x,y+3,x-2,y);                    //  (e)r
     line(x-2,y,x-4,y+3);
     line(x-4,y+3,x-6,y);
     line(x-6,y,x-8,y+3);
     line(x-4,y+3,x-4,y+10);
     x-=11;
     break;
    case 'S':arc(x,y+2,90,250,2);                  //  (a)s
     arc(x-3,y+7,270,60,3);
     arc(x,y+1,160,270,5);
     x-=8;
     break;
    case 's':line(x,y,x,y+10);                     //  (e)s
     x-=3;
     break;
    case 'v':line(x,y+4,x-6,y+4);                  //  顫
     line(x-3,y+4,x-1,y);
     line(x-5,y,x-3,y+4);
     line(x-3,y+4,x-3,y+10);
     x-=9;
     break;
    case 'T':line(x-3,y,x,y+3);                    //  (a)t
     line(x-3,y,x-6,y+3);
     line(x-3,y,x-3,y+4);
     line(x-3,y+4,x,y+7);
     line(x-3,y+4,x-6,y+7);
     line(x-6,y+7,x-3,y+10);
     line(x,y+7,x-3,y+10);
     x-=9;
     break;
    case 't':line(x-5,y,x-5,y+10);                 //  (e)t
     line(x-5,y+6,x-1,y+4);
     arc(x+9,y+5,180,210,10);
     x-=8;
     break;
    case 'z':line(x-4,y,x-4,y+10);                 //  z
     line(x,y,x,y+5);
     line(x,y+5,x-8,y+5);
     line(x-8,y+5,x-8,y+10);
     x-=11;
     break;
    case 'V':putpixel(x-1,y+2,getcolor());         //  word separator
     putpixel(x-1,y+8,getcolor());
     x-=5;
     break;
    case '!':line(x-3,y,x-3,y+7);                  //  interjection
     putpixel(x-3,y+10,getcolor());
     line(x-2,y,x-2,y+7);
     putpixel(x-2,y+10,getcolor());
     x-=12;
     break;
    case '+':line(x-1,y+5,x-7,y+5);                //  plus
     line(x-4,y+2,x-4,y+8);
     x-=11;
     break;
    case '/':line(x-1,y,x-6,y+10);                 //  slash
     x-=11;
     break;
    case '=':line(x-1,y+4,x-6,y+4);                //  sign of equality
     line(x-1,y+6,x-6,y+6);
     x-=10;
     break;
    case '-':line(x-1,y+5,x-7,y+5);                //  minus
     x-=11;
     break;
    case '"':line(x-1,y,x-1,y+3);                  //  double quotation mark
     line(x-3,y,x-3,y+3);
     x-=7;
     break;
    case '?':arc(x-2,y+3,30,250,3);                //  inverse question mark
     arc(x-3,y+3,30,250,3);
     line(x-3,y+6,x-3,y+7);
     line(x-2,y+6,x-2,y+7);
     putpixel(x-3,y+10,getcolor());
     putpixel(x-2,y+10,getcolor());
     x-=12;
     break;
    case ';':outtextxy(x,y-5,":");                 //  inverse semicolon
     line(x-3,y+3,x-2,y+1);
     x-=12;
     break;
    case ',':line(x-3,y+6,x-2,y+6);                //  inverse comma
     line(x-3,y+5,x-2,y+3);
     x-=12;
     break;
    case '0':outtextxy(x-2,y-5,"0");               //  zero
     x-=9;
     break;
    case '1':outtextxy(x-2,y-5,"1");               //  one
     x-=9;
     break;
    case '2':outtextxy(x-2,y-5,"2");               //  two
     x-=9;
     break;
    case '3':outtextxy(x-2,y-5,"3");               //  three
     x-=9;
     break;
    case '4':outtextxy(x-2,y-5,"4");               //  four
     x-=9;
     break;
    case '5':outtextxy(x-2,y-5,"5");               //  five
     x-=9;
     break;
    case '6':outtextxy(x-2,y-5,"6");               //  six
     x-=9;
     break;
    case '7':outtextxy(x-2,y-5,"7");               //  seven
     x-=9;
     break;
    case '8':outtextxy(x-2,y-5,"8");               //  eight
     x-=9;
     break;
    case '9':outtextxy(x-2,y-5,"9");               //  nine
     x-=9;
     break;
    case '.':outtextxy(x-3,y-5,".");               //  full stop
     x-=12;
     break;
    case '%':outtextxy(x-6,y-5,"%");               //  per cent
     x-=15;
     break;
    case '}':outtextxy(x-7,y-5,"{");               //  close curly bracket
     x-=13;
     break;
    case ')':outtextxy(x-5,y-5,"(");               //  close parenthesis
     x-=11;
     break;
    case '(':outtextxy(x-6,y-5,")");               //  open parenthesis
     x-=11;
     break;
    case '{':outtextxy(x-8,y-5,"}");               //  open curly bracket
     x-=13;
     break;
    case '*':outtextxy(x-7,y-5,"*");               //  star
     x-=11;
     break;
    case ':':outtextxy(x,y-5,":");                 //  colon
     x-=12;
     break;
    case ' ':outtextxy(x-9,y-5," ");               //  space
     x-=12;
     break;
    case '@':outtextxy(x-2,y-5,"@");               //  at
     x-=9;
     break;
    }
  }

void ulduz(char text[80],int xx,int yy,int color)
  {
  struct textsettingstype textinfo;

  gettextsettings(&textinfo);
  setcolor(color);
  settextstyle(2,0,6);
  settextjustify(1,2);
  x=xx;
  y=yy;
  b=0;
  do
    {
    kharf(text[b]);
    b++;
    }
  while (b<strlen(text));
  settextstyle(textinfo.font,textinfo.direction,textinfo.charsize);
  settextjustify(textinfo.horiz,textinfo.vert);
  }

2 yorum: