Her hakkı saklıdır.
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. MS-DOS altında çalışan ilkel derleyicilerde kod yazıyorduk. Mekanik ve elektronik yapısını tasarlayıp gerçekledikten soŋra, 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 üsüğünü piksel piksel bir başlık (header) dosyasında tasarladım ve robot kolunuŋ kumanda arayüzünde kullandım. Üsükleriŋ tasarımı iki haftamı almıştı. Artık Turbo C'de KökTörükçe yazabiliyordum (1995). Tüm koduŋ sadece KökTörük üsüklerinden sorumlu kısmı KOKTURK.H başlık dosyasınıŋ içeriğini resmiŋ altında vėriyorum.
KOKTURK.H (1995)
/* This header file was prepared by Ulduz Tu§rul €AVDAR to use the Alphabet of K”ktrk 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);
}