PDA

View Full Version : [Q] Viết tiếng việt trong chế độ đồ hoạ 16 màu trong C



net_shadow
07-12-2002, 13:53
Tớ muốn hỏi viết tiếng việt trong chế độ đồ hoạ 16 màu của C thì làm như thế nào. Ai biết có thể hướng dẫn chi tiết cho tôi với

tinystar
04-01-2003, 16:11
Bạn download ở đây nè : http://www.geocities.com/masterthts/font_tv.zip
(copy shortcut lên browser mà down)

guy
09-01-2003, 23:35
Đoạn code sau đây dùng để viết tiếng việt trong chế độ graphic trong C . Bạn gõ tiếng việt theo kiểu telex
mẫu hàm : vietchuoi(toạ độ x, toạ độ y,"chuỗi cần viết (gõ telex, o dùng unicode",màu chữ);
vd: vietchuoi(100,100,"hàm viết tiếng việt",15);
đoạn code này có dùng hàm putpixle nên tốc độ hơi chậm , bạn có thể tự viết hàm này nếu muốn tốc độ nhanh hơn . Nếu ko cần viết text quá nhiều thì để nguyên cũng được

guy
09-01-2003, 23:37
unsigned char fontdata[16*256]=
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,126,129,129,165,129,129,129,165,153,129,129,12 6,0,0, //1
0,0,126,255,255,255,219,255,255,219,231,255,255,12 6,0,0,
0,0,0,0,108,238,254,254,254,124,124,56,16,0,0,0,
0,0,0,0,16,56,56,124,254,124,56,56,16,0,0,0,
0,0,0,24,60,60,24,231,231,231,24,24,60,0,0,0, //5
0,0,0,24,24,60,126,126,255,255,102,24,126,0,0,0, //6
0,0,0,0,0,0,24,60,60,24,0,0,0,0,0,0,
255,255,255,255,255,255,231,195,195,231,255,255,25 5,255,255,255,
0,0,0,0,0,60,102,66,66,102,60,0,0,0,0,0,
255,255,255,255,255,195,153,189,189,153,195,255,25 5,255,255,255, //10
0,0,0,0,30,14,26,50,120,204,204,204,120,0,0,0, //11
0,0,0,0,60,102,102,102,60,24,126,24,24,0,0,0,
0,0,0,0,63,51,63,48,48,48,112,240,224,0,0,0,
0,0,0,0,127,99,127,99,99,99,103,231,230,192,0,0,
0,0,0,0,24,219,90,60,231,60,90,219,24,0,0,0, //15
0,0,0,0,128,192,224,248,254,248,224,192,128,0,0,0, //16
0,0,0,0,2,6,14,62,254,62,14,6,2,0,0,0,
0,0,0,0,24,60,126,24,24,24,126,60,24,0,0,0,
0,0,0,0,102,102,102,102,102,102,0,102,102,0,0,0,
0,0,0,0,127,219,219,219,123,27,27,27,27,0,0,0, //20
0,0,0,124,198,96,56,108,198,108,56,12,198,124,0,0, //21
0,0,0,0,0,0,0,0,0,0,254,254,254,0,0,0,
0,0,0,0,24,60,126,24,24,24,126,60,24,126,0,0,
0,0,0,0,24,60,126,24,24,24,24,24,24,0,0,0,
0,0,0,0,24,24,24,24,24,24,126,60,24,0,0,0, //25
0,0,0,0,0,0,24,12,254,12,24,0,0,0,0,0, //26
0,0,0,0,0,0,48,96,254,96,48,0,0,0,0,0,
0,0,0,0,0,0,0,192,192,192,254,0,0,0,0,0,
0,0,0,0,0,0,36,102,255,102,36,0,0,0,0,0,
0,0,0,0,0,16,56,56,124,124,254,254,0,0,0,0, //30
0,0,0,0,0,254,254,124,124,56,56,16,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,24,60,60,60,24,24,0,24,24,0,0,0,
0,0,0,102,102,102,36,0,0,0,0,0,0,0,0,0,
0,0,0,0,108,108,254,108,108,108,254,108,108,0,0,0,
0,0,24,24,124,198,194,192,124,6,134,198,124,24,24, 0,
0,0,0,0,0,0,194,198,12,24,48,102,198,0,0,0,
0,0,0,0,56,108,108,56,118,220,204,204,118,0,0,0,
0,0,0,48,48,48,96,0,0,0,0,0,0,0,0,0,
0,0,0,0,12,24,48,48,48,48,48,24,12,0,0,0,
0,0,0,0,48,24,12,12,12,12,12,24,48,0,0,0,
0,0,0,0,0,0,102,60,255,60,102,0,0,0,0,0,
0,0,0,0,0,0,24,24,126,24,24,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,24,24,24,48,0,0,
0,0,0,0,0,0,0,0,254,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,
0,0,0,0,2,6,12,24,48,96,192,128,0,0,0,0,
0,0,0,0,124,198,206,222,246,230,198,198,124,0,0,0,
0,0,0,0,24,56,120,24,24,24,24,24,126,0,0,0,
0,0,0,0,124,198,6,12,24,48,96,198,254,0,0,0,
0,0,0,0,124,198,6,6,60,6,6,198,124,0,0,0,
0,0,0,0,12,28,60,108,204,254,12,12,30,0,0,0,
0,0,0,0,254,192,192,192,252,6,6,198,124,0,0,0,
0,0,0,0,60,96,192,192,252,198,198,198,124,0,0,0,
0,0,0,0,254,198,6,12,24,48,48,48,48,0,0,0,
0,0,0,0,124,198,198,198,124,198,198,198,124,0,0,0,
0,0,0,0,124,198,198,198,126,6,6,12,120,0,0,0,
0,0,0,0,0,24,24,0,0,0,24,24,0,0,0,0,
0,0,0,0,0,24,24,0,0,0,24,24,48,0,0,0,
0,0,0,0,6,12,24,48,96,48,24,12,6,0,0,0,
0,0,0,0,0,0,0,126,0,0,126,0,0,0,0,0,
0,0,0,0,96,48,24,12,6,12,24,48,96,0,0,0,
0,0,0,0,124,198,198,12,24,24,0,24,24,0,0,0,
0,0,0,0,124,198,198,222,222,222,220,192,124,0,0,0,
0,0,0,0,16,56,108,198,198,254,198,198,198,0,0,0,
0,0,0,0,252,102,102,102,124,102,102,102,252,0,0,0,
0,0,0,0,60,102,194,192,192,192,194,102,60,0,0,0,
0,0,0,0,248,108,102,102,102,102,102,108,248,0,0,0,
0,0,0,0,254,102,98,104,120,104,98,102,254,0,0,0,
0,0,0,0,254,102,98,104,120,104,96,96,240,0,0,0,
0,0,0,0,60,102,194,192,192,222,198,102,58,0,0,0,
0,0,0,0,198,198,198,198,254,198,198,198,198,0,0,0,
0,0,0,0,60,24,24,24,24,24,24,24,60,0,0,0,
0,0,0,0,30,12,12,12,12,12,204,204,120,0,0,0,
0,0,0,0,230,102,108,108,120,108,108,102,230,0,0,0,
0,0,0,0,240,96,96,96,96,96,98,102,254,0,0,0,
0,0,0,0,198,238,254,254,214,198,198,198,198,0,0,0,
0,0,0,0,198,230,246,254,222,206,198,198,198,0,0,0,
0,0,0,0,56,108,198,198,198,198,198,108,56,0,0,0,
0,0,0,0,252,102,102,102,124,96,96,96,240,0,0,0,
0,0,0,0,124,198,198,198,198,214,222,124,12,14,0,0,
0,0,0,0,252,102,102,102,124,108,102,102,231,0,0,0,
0,0,0,0,124,198,198,96,56,12,198,198,124,0,0,0,
0,0,0,0,126,126,90,24,24,24,24,24,60,0,0,0,
0,0,0,0,198,198,198,198,198,198,198,198,124,0,0,0,
0,0,0,0,198,198,198,198,198,198,108,56,16,0,0,0,
0,0,0,0,198,198,198,198,214,214,254,124,108,0,0,0,
0,0,0,0,198,198,108,56,56,56,108,198,198,0,0,0,
0,0,0,0,102,102,102,102,60,24,24,24,60,0,0,0,
0,0,0,0,254,198,140,24,48,96,194,198,254,0,0,0,
0,0,0,0,60,48,48,48,48,48,48,48,60,0,0,0,
0,0,0,0,128,192,224,112,56,28,14,6,2,0,0,0,
0,0,0,0,60,12,12,12,12,12,12,12,60,0,0,0,
0,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,
0,0,48,48,24,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,120,12,124,204,204,118,0,0,0,
0,0,0,0,224,96,96,120,108,102,102,102,124,0,0,0,
0,0,0,0,0,0,0,124,198,192,192,198,124,0,0,0,
0,0,0,0,28,12,12,60,108,204,204,204,118,0,0,0,
0,0,0,0,0,0,0,124,198,254,192,198,124,0,0,0,
0,0,0,0,56,108,100,96,240,96,96,96,240,0,0,0,
0,0,0,0,0,0,0,118,204,204,204,124,12,204,120,0,
0,0,0,0,224,96,96,108,118,102,102,102,230,0,0,0,
0,0,0,0,24,24,0,56,24,24,24,24,60,0,0,0,
0,0,0,0,6,6,0,14,6,6,6,6,102,102,60,0,
0,0,0,0,224,96,96,102,108,120,108,102,230,0,0,0,
0,0,0,0,56,24,24,24,24,24,24,24,60,0,0,0,
0,0,0,0,0,0,0,236,254,214,214,214,198,0,0,0,
0,0,0,0,0,0,0,220,102,102,102,102,102,0,0,0,
0,0,0,0,0,0,0,124,198,198,198,198,124,0,0,0,
0,0,0,0,0,0,0,220,102,102,102,124,96,96,240,0,
0,0,0,0,0,0,0,118,204,204,204,124,12,12,30,0,
0,0,0,0,0,0,0,220,118,102,96,96,240,0,0,0,
0,0,0,0,0,0,0,124,198,112,28,198,124,0,0,0,
0,0,0,0,16,48,48,252,48,48,48,54,28,0,0,0,
0,0,0,0,0,0,0,204,204,204,204,204,118,0,0,0,
0,0,0,0,0,0,0,102,102,102,102,60,24,0,0,0,
0,0,0,0,0,0,0,198,198,214,214,254,108,0,0,0,
0,0,0,0,0,0,0,198,108,56,56,108,198,0,0,0,
0,0,0,0,0,0,0,198,198,198,198,126,6,12,248,0,
0,0,0,0,0,0,0,254,204,24,48,102,254,0,0,0,
0,0,0,0,14,24,24,24,112,24,24,24,14,0,0,0,
0,0,0,0,24,24,24,24,0,24,24,24,24,0,0,0,
0,0,0,0,112,24,24,24,14,24,24,24,112,0,0,0,
0,0,0,0,118,220,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,16,56,108,198,198,254,0,0,0,0,

0,0,0,0,0,0,124,198,192,192,198,124,24,12,248,0,
0,0,0,0,204,204,0,204,204,204,204,204,118,0,0,0,
0,0,0,0,108,108,0,120,12,124,204,204,118,0,0,0,
0,0,48,72,72,48,0,120,12,124,204,204,118,0,0,0,
0,0,0,0,108,108,0,124,198,254,192,198,124,0,0,0,
0,0,0,0,108,108,0,56,24,24,24,24,60,0,0,0,
0,0,0,24,60,102,0,56,24,24,24,24,60,0,0,0,
0,0,0,0,108,222,26,26,126,216,216,218,108,0,0,0,
0,0,0,0,204,204,0,124,198,198,198,198,124,0,0,0,
0,0,0,48,120,204,0,204,204,204,204,204,118,0,0,0,
0,0,0,0,198,198,0,198,198,198,198,126,6,12,120,0,
0,0,24,24,24,124,198,192,192,198,124,24,24,24,0,0,
0,0,0,56,108,100,96,240,96,96,102,230,188,0,0,0,
0,0,0,102,102,102,60,24,126,24,60,24,24,0,0,0,
0,0,0,252,102,102,124,98,102,111,102,102,243,0,0,0 ,
0,0,0,0,118,220,0,220,102,102,102,102,102,0,0,0,
0,0,0,0,0,0,54,108,216,108,54,0,0,0,0,0,
0,0,0,0,0,0,216,108,54,108,216,0,0,0,0,0,
0,0,0,0,24,24,24,126,24,24,24,0,126,126,0,0,
0,0,0,0,96,48,24,12,24,48,96,0,124,124,0,0,
0,0,0,0,12,24,48,96,48,24,12,0,124,124,0,0,
24,24,24,60,60,126,126,255,24,24,24,24,24,24,24,24 ,
24,24,24,24,24,24,24,24,255,126,126,60,60,24,24,24 ,
0,0,0,0,0,64,112,124,255,124,112,64,0,0,0,0,
0,0,0,0,0,2,14,62,255,62,14,2,0,0,0,0,
0,0,108,56,0,56,108,198,198,254,198,198,198,0,0,0,
0,16,56,108,0,56,108,198,198,254,198,198,198,0,0,0 ,
0,16,56,68,254,102,98,104,120,104,98,102,254,0,0,0 ,
0,16,56,68,56,108,198,198,198,198,198,108,56,0,0,0 ,
0,0,3,1,58,108,198,198,198,198,198,108,56,0,0,0,
0,0,3,1,199,198,198,198,198,198,198,198,124,0,0,0,
0,0,0,0,248,108,102,102,254,102,102,108,248,0,0,0,
0,0,0,0,108,56,0,120,12,124,204,204,118,0,0,0,
0,0,0,0,56,108,0,120,12,124,204,204,118,0,0,0,
0,0,0,0,56,108,0,124,198,254,192,198,124,0,0,0,
0,0,0,0,56,108,0,124,198,198,198,198,124,0,0,0,
0,0,0,0,0,3,1,126,198,198,198,198,124,0,0,0,
0,0,0,0,0,3,1,206,204,204,204,204,118,0,0,0,
0,0,0,0,12,62,12,60,108,204,204,204,118,0,0,0,
0,0,192,96,48,0,0,120,12,124,204,204,118,0,0,0,
0,0,56,8,16,0,0,120,12,124,204,204,118,0,0,0,
0,0,0,118,220,0,0,120,12,124,204,204,118,0,0,0,
0,0,6,12,24,0,0,120,12,124,204,204,118,0,0,0,
0,0,0,0,0,0,0,120,12,124,204,204,118,0,48,48,
0,0,96,16,76,56,0,120,12,124,204,204,118,0,0,0,
0,0,7,1,110,56,0,120,12,124,204,204,118,0,0,0,
0,0,118,220,108,56,0,120,12,124,204,204,118,0,0,0,
0,0,12,16,108,56,0,120,12,124,204,204,118,0,0,0,
68,17,68,17,68,17,68,17,68,17,68,17,68,17,68,17,
170,85,170,85,170,85,170,85,170,85,170,85,170,85,1 70,85,
119,221,119,221,119,221,119,221,119,221,119,221,11 9,221,119,221,
24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
24,24,24,24,24,24,24,24,248,24,24,24,24,24,24,24,
0,0,0,0,108,56,0,120,12,124,204,204,118,0,48,48,
0,0,192,96,56,108,0,120,12,124,204,204,118,0,0,0,
0,0,7,1,58,108,0,120,12,124,204,204,118,0,0,0,
0,0,118,220,56,108,0,120,12,124,204,204,118,0,0,0,
54,54,54,54,54,54,54,246,6,246,54,54,54,54,54,54,
54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
0,0,0,0,0,0,0,254,6,246,54,54,54,54,54,54,
54,54,54,54,54,54,54,246,6,254,0,0,0,0,0,0,
0,0,6,12,56,108,0,120,12,124,204,204,118,0,0,0,
0,0,0,0,56,108,0,120,12,124,204,204,118,0,48,48,
0,0,0,0,0,0,0,0,248,24,24,24,24,24,24,24,
24,24,24,24,24,24,24,24,31,0,0,0,0,0,0,0,
24,24,24,24,24,24,24,24,255,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,255,24,24,24,24,24,24,24,
24,24,24,24,24,24,24,24,31,24,24,24,24,24,24,24,
0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,
24,24,24,24,24,24,24,24,255,24,24,24,24,24,24,24,
0,0,192,96,48,0,0,124,198,254,192,198,124,0,0,0,
0,0,56,8,16,0,0,124,198,254,192,198,124,0,0,0,
54,54,54,54,54,54,54,55,48,63,0,0,0,0,0,0,
0,0,0,0,0,0,0,63,48,55,54,54,54,54,54,54,
54,54,54,54,54,54,54,247,0,255,0,0,0,0,0,0,
0,0,0,0,0,0,0,255,0,247,54,54,54,54,54,54,
54,54,54,54,54,54,54,55,48,55,54,54,54,54,54,54,
0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,
54,54,54,54,54,54,54,247,0,247,54,54,54,54,54,54,
0,0,0,118,220,0,0,124,198,254,192,198,124,0,0,0,
0,0,6,12,24,0,0,124,198,254,192,198,124,0,0,0,
0,0,0,0,0,0,0,124,198,254,192,198,124,0,24,24,
0,0,192,96,56,108,0,124,198,254,192,198,124,0,0,0,
0,0,7,1,58,108,0,124,198,254,192,198,124,0,0,0,
0,0,118,220,56,108,0,124,198,254,192,198,124,0,0,0 ,
0,0,6,12,56,108,0,124,198,254,192,198,124,0,0,0,
0,0,0,0,56,108,0,124,198,254,192,198,124,0,24,24,
0,0,192,96,48,0,0,56,24,24,24,24,60,0,0,0,
0,0,56,8,16,0,0,56,24,24,24,24,60,0,0,0,
24,24,24,24,24,24,24,24,248,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,31,24,24,24,24,24,24,24,
255,255,255,255,255,255,255,255,255,255,255,255,25 5,255,255,255,
0,0,0,118,220,0,0,56,24,24,24,24,60,0,0,0,
0,0,6,12,24,0,0,56,24,24,24,24,60,0,0,0,
0,0,0,0,24,24,0,56,24,24,24,24,60,0,24,24,
0,0,192,96,48,0,0,124,198,198,198,198,124,0,0,0,
0,0,0,0,62,96,192,192,254,192,192,96,62,0,0,0,
0,0,56,8,16,0,0,124,198,198,198,198,124,0,0,0,
0,0,118,220,0,0,0,124,198,198,198,198,124,0,0,0,
0,0,6,12,24,0,0,124,198,198,198,198,124,0,0,0,
0,0,0,0,0,0,0,124,198,198,198,198,124,0,24,24,
0,0,192,96,56,108,0,124,198,198,198,198,124,0,0,0,
0,0,7,1,58,108,0,124,198,198,198,198,124,0,0,0,
0,0,118,220,56,108,0,124,198,198,198,198,124,0,0,0 ,
0,0,6,12,56,108,0,124,198,198,198,198,124,0,0,0,
0,0,0,0,56,108,0,124,198,198,198,198,124,0,24,24,
0,0,192,96,48,3,1,126,198,198,198,198,124,0,0,0,
0,0,56,8,16,3,1,126,198,198,198,198,124,0,0,0,
0,0,118,220,0,3,1,126,198,198,198,198,124,0,0,0,
0,0,6,12,24,3,1,126,198,198,198,198,124,0,0,0,
0,0,0,0,0,3,1,126,198,198,198,198,124,0,24,24,
0,0,192,96,48,0,0,204,204,204,204,204,118,0,0,0,
0,0,0,0,0,254,0,0,254,0,0,254,0,0,0,0,
0,0,56,8,16,0,0,204,204,204,204,204,118,0,0,0,
0,0,118,220,0,0,0,204,204,204,204,204,118,0,0,0,
0,0,6,12,24,0,0,204,204,204,204,204,118,0,0,0,
0,0,0,0,0,0,0,204,204,204,204,204,118,0,48,48,
0,0,192,96,48,3,1,206,204,204,204,204,118,0,0,0,
0,0,56,8,16,3,1,206,204,204,204,204,118,0,0,0,
0,0,118,220,0,3,1,206,204,204,204,204,118,0,0,0,
0,0,6,12,24,3,1,206,204,204,204,204,118,0,0,0,
0,0,0,0,0,3,1,206,204,204,204,204,118,0,48,48,
0,0,192,96,48,0,0,198,198,198,198,126,6,12,248,0,
0,0,56,8,16,0,0,198,198,198,198,126,6,12,248,0,
0,0,0,118,220,0,0,198,198,198,198,126,6,12,248,0,
0,0,6,12,24,0,0,198,198,198,198,126,6,12,248,0,
0,0,0,0,0,0,0,198,198,198,198,126,4,12,251,3,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
//*****************************
//******************************
unsigned char kqua;
unsigned char trichbit(unsigned char bien,unsigned char bitthu)
{
asm mov ah,bien
asm mov cl,bitthu
asm shl ah,cl
asm jae bang0
asm mov kqua,1
asm jmp thoat
bang0:
asm mov kqua,0
thoat:
return(kqua);
}
//******************************

void vietchu(int x,int y,unsigned char ch,int color)
{
int k,jc,ic;
k=(int)ch<<4;
for(jc=0;jc<=15;jc++)
{
index=k+jc;
for(ic=1;ic<=8;ic++)
{
if(trichbit(fontdata[index],ic))putpixel(x+ic-1,y+jc,color);
}
}
}
//******************************
void vietchuoi(int x,int y,unsigned char *s,int color)
{
int ich,d,xo=x;
d=strlen(s);
d-=1;
for(ich=0;ich<=d;ich++)
{
vietchu(xo,y,s[ich],color);
xo+=8;
}
}

tinystar
10-01-2003, 20:54
bạn không nên putpixel như vậy, bạn nên tự tạo ra 1 bộ font (hoặc sử dụng font có sẵn của VietRes), sau đó load vào bộ nhớ vào out ra, ok ? sẽ nhanh hơn rất nhiều, tương đương với việc xuất chữ như bình thường.

tinystar
10-01-2003, 21:03
đây mã nguồn đây, 1 chạy trên chế độ text, 1 chạy trên đồ hoạ :

thân !!!

guy
11-01-2003, 01:37
tôi dùng hàm putpixel là để phần nền dưới chữ ko bị ảnh hưởng . Nếu copy trực tiếp từng byte qua A000 thì phần nền sẽ bị ảnh hưởng vả lại cách này cũng ko áp dụng được cho chế độ 256 màu hoặc cao hơn . Nếu viết lại hàm putpixel thì tốc độ ko thua như viết bình thường là mấy . Sau đây là source và chương trình của 2 trò chơi tôi viết : Line dùng putpixel còn cờ tướng dùng hàm pixel tự viết nhanh hơn nhiều nhưng sự khác biệt ko đáng kể

guy
11-01-2003, 01:40
line 1

guy
11-01-2003, 01:42
line 2

guy
11-01-2003, 01:44
cờ tướng

Quý
11-01-2003, 07:00
Nếu bạn biết cách để khởi động chế độ đồ hoạ 256 màu và cao hơn trong C chỉ mình với.

Quý
12-01-2003, 00:23
Hai cái trò line & cơ tướng guy viết hay lắm. Nhưng chỉ chạy file exe được còn khi chạy file CPP sao mấy cái logo.dat, main.dat (cờ tướng) nó cứ bằng NULL mở lên không được (mình đã chép vào bin rồi) .Còn trò line sao kô thấy có file present.pcx, mainmenu.pcx ?
Sao mình sử dụng cái hàm viết chuỗi thấy nó in ra y chang như lúc mình đánh trong BC vậy . Guy xem thừ còn thiếu gì không ?

guy
12-01-2003, 20:59
trò cơ tướng tôi dịch chạy binh thường mà (TC) . Tuy nhiên trò này cũng có khá nhiều lỗi tôi chưa debug được . Còn trò line các file *.dat chính là các file *.pcx đấy , bạn có thể chuyển phần mở rộng thành pcx hoặc sửa trong code thành *.dat.
Còn viết tiếng việt tôi có thể minh hoạ như sau:
vietchuoi(100,100,dichtovn("hafm vieest tieesng vieejt"),255);
Để chạy chế độ 256 màu thì có thể dùng svga256.bgi , đã minh hoạ rất rõ trong source của 2 trò trên.

Quý
13-01-2003, 07:28
Cái việc chuyển trong code thành *.dat mình đã nói rồi lúc chạy debug nó mở lên không được cái file đó cứ bị ==NULL không hiểu tại sao nữa (mình đã chép cái *.dat vào bin)

Quý
13-01-2003, 17:00
Còn 1 vấn đề nữa : Bạn có thể nói rõ về cấu trúc bangmau cách sử dụng màu trong chế độ đồ hoạ 256 màu . Cách phân bố màu ra sao ? Chứ ta không thể nhớ từ 1-->256 là những màu gì.

guy
14-01-2003, 22:31
để có thể đặt màu 1->255 bạn có thể dùng hàm sau đây (trong thư viện của TC(BC) cũng có nhưng rất chậm)
typedef struct
{
unsigned char r,g,b;
}RGB;
//******************************
void setRGB(unsigned char color,RGB M)
{
outp(0X3C8,color);
outp(0X3C9,M.r);
outp(0X3C9,M.g);
outp(0X3C9,M.b);
}

//******************************
void setallRGB(RGB *p)
{
int i;
for(i=0;i<=255;i++)setRGB(i,p[i]);
}
hoặc có thể vẽ ra tất cả các màu để chọn
hoặc nếu bạn định đưa ảnh vào thì có thể vẽ các màu định dùng vào 1 chỗ nào đó trong file ảnh sau đó ta lấy giá trị màu ở vị trí đó (ko cần biết giá trị của màu đó là bao nhiêu) . Các file trong có trò trên đều là PCX, bạn có thể mở ra để xem , tôi dùng cách đó để lấy màu viết chữ , vẽ đường thẩng (màu đỏ )....
Ngoài ra ta có thể xử lí bảng màu động , các trò chơi như war2,starcraft... chỉ dùng 256 màu nhưng trông vẫn rất rực rỡ là do xử lý bảng màu động , bảng màu thay đổi liên tục . Tuy nhiên để đảm bảo tốc độ thì cần phải những thuật toán khá phức tạp
bạn có thể vào
http://www.programmersheaven.com/zone10/mh95.htm
hoặc search "palette"
hay down quyển Zen of Graphics Programming
tại http://dvleo.hkgod.org/ebklist.htm để tham khảo

ttvn
15-01-2003, 14:57
tôi chạy line nhưng sao cứ báo là segment text 64K, xin chi cach khắc phục

Quý
15-01-2003, 18:45
À mà guy có biết tại sao khi chạy file cpp BC không thể mở file *.dat .Mình đã sửa *. pcx thành *.dat nhưng chạy debug thấy cái file nó cứ bị bằng NULL (đã chép file *.dat vào đúng TM)
guy có thể cho emai không để trao đổi cho nó tiện

guy
22-01-2003, 02:12
hồi đấy tôi viết bằng TC chứ ko phải BC, mà lâu lắm rồi tôi cũng ko dùng TC nữa , chỉ dùng VC thôi.
mail của tôi là rix1101@yahoo.com

khanh_phunhuan
17-02-2003, 13:47
Dùng chương trình nào để bung nén file RAR vậy ? Sao tôi dùng WinRAR bung nén không được . Chương trình WinRAR cứ báo Unknown method .

tipt
30-03-2003, 20:47
xin chào các bạn
Có người nào biết sử dụng lập trình thường trú trong C không vậy xin post bài hướng dẫn, theo tui biết thì trong C có hàm Keep(....);
tui định viết chương trình đánh TIENG VIET thường trú ngoài DOS nhưng hay bị treo máy , và dùng hàm getvect() và setvect cũng bị báo lổi. có ai biết xin hướng dẫn giúp . xin cám ơn

hoanganhdung0407
03-11-2007, 00:51
link die rồi hay sao đó bạn này ơi. mình down về sao báo 0 byte không thế này. Mà dùng font gì để hiển thị tiếng việt trong C vậy mình dùng .vntime theo telex mà sao không được vậy. Xin được chỉ giáo.

nguyen.the.vinh
08-11-2007, 00:56
Chả nói dùng HĐH, compiler nào cả :-t