Code:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
#include<string.h>
#define MAX 50
#define R 10
#define pi 3.1415926
#define DUOI_NEN 7
#define DUOI_LEFT 0
#define DUOI_RIGHT 400
#define DUOI_TOP 380
#define DUOI_BOTTOM 479
#define MAU_NEN BLACK
#define MAU_SO YELLOW
#define MAU_VT BLUE
#define MAU_DT CYAN
#define MAU_TS YELLOW
typedef struct point {
int x,y;
};
int c1,c2,c3,x,s,y,x1,y1,x2,y2,x3,y3,q,q2,q3,hang,ketqua,i;
char ch[50]; char F[30];
unsigned img; char *pimg;
int M[MAX][MAX];
int n=0; int t1,t2;
int j;
int j1,j2,j3;
point a[MAX]; // MANG a CHUA TOA DO CUA CAC DIEM DA VE
FILE *file;
int truoc[MAX],d[MAX],final[MAX];
int S,T,n1,minp=2000;
int L[MAX],so;
int useMouse=1;
void in();
int leftClick(int&,int&);
void dragMouse(int&,int&,int&);
void drawCircle(int,int,int,int,int);
void drawLine(int,int,int,int,int);
void initArrayTS();
void getArray(int,int);
long distance(int,int,int,int);
int checkPoint(int,int,int);
void checkMin(int,int,int&);
void changeColor(int);
void changeLine(int,int);
void w2m(int);
void w2f(char*);
void xuly();
void dijkstra();
void inKQ();
void ghiTS(int,int,int,int);
double goc(int,int,int,int);
void chi_huong(int,int,int,int,int,int);
void xoaDiem(int,int);
char* toS(int);
void rewrite();
void luuDT(char*);
void nhapDT(char*);
void chupHinh(int x1,int y1, int x2, int y2)
{
img=imagesize(x1,y1,x2,y2);
pimg=(char*)malloc(img);
getimage(x1,y1,x2,y2,pimg);
}
void xuatHinh(int x1, int y1)
{
putimage(x1,y1,pimg,0);
free(pimg);
}
void initMouse()
{
union REGS v;
v.x.ax=0x00;// KHOI TAO CHUOT
int86(0x33,&v,&v);
}
void showMouse()
{
union REGS v;
v.x.ax=0x01; //HIEN CHUOT
int86(0x33,&v,&v);
}
void hideMouse()
{
union REGS v;
v.x.ax=0x02; //AN CHUOT
int86(0x33,&v,&v);
}
void clickMouse(int &s,int &x,int &y)
{
union REGS v;
v.x.ax=0x05; //CLICK CHUOT , CHI LAY GIA TRI O LAN CLICK DAU TIEN
int86(0x33,&v,&v);
s=v.x.bx; //KHI NHAP CHUOT THI S=...BX=1, KHI THA RA THI S = 0
x=v.x.cx; // KHI DANG NHAP CHUOT, X LA TOA DO NGANG
y=v.x.dx; // KHI DANG NHAP CHUOT, Y LA TOA DO DOC
}
void clickMouse2(int &s,int &x,int &y)
{
union REGS v;
v.x.ax=0x03; // CLICK CHUOT VA GIU THI SE LIEN TUC NHAN GIA TRI
int86(0x33,&v,&v);
s=v.x.bx;
x=v.x.cx;
y=v.x.dx;
}
void clickMouse3(int &s,int &x,int &y)
{
union REGS v;
v.x.ax=0x06; // CLICK CHUOT VA GIU THI SE NHAN GIA TRI LUC THA CHUOT RA
int86(0x33,&v,&v);
s=v.x.bx;
x=v.x.cx;
y=v.x.dx;
}
int rightClick(int &x,int &y)
{
union REGS v;
v.x.ax=0x05;
v.x.bx=1;
int86(0x33,&v,&v);
x=v.x.cx;
y=v.x.dx;
return v.x.bx;
}
void dragMouse(int &s,int &x,int &y)
{
union REGS v;
v.x.ax=0x03;
int86(0x33,&v,&v);
s=v.x.bx;
x=v.x.cx;
y=v.x.dx;
}
void Locate()
{
union REGS v;
v.x.ax=3;
int86(0x33,&v,&v);
x1=v.x.cx;
y1=v.x.dx;
}
void Button(int x1, int y1, int x2, int y2, char t[50], int loai)
{
hideMouse();
int c1, c2;
if (loai==0) {c1=15; c2=8;}
else {c1=8; c2=15;}
setcolor(c1);
line(x1,y1,x2,y1); //ngang 1
line(x1,y1,x1,y2); //doc 1
setcolor(c2);
line(x1+1,y2,x2,y2); //ngang 2
line(x2,y1+1,x2,y2); //doc 2
setcolor(7);setfillstyle(1,0);
rectangle(x1+1,y1+1,x2-1,y2-1);
setfillstyle(1,7); //Mau nut
bar(x1+2,y1+2,x2-2,y2-2);
setcolor(1); //settextstyle(2,0,1);
settextjustify(1,1);
outtextxy((x1+x2)/2,(y1+y2)/2+1,t);
settextjustify(0,2);
showMouse();
}
void Window(int x1, int y1, int x2, int y2, char t[50], int loai)
{
setcolor(15);
line(x1,y1,x2,y1); //ngang 1
line(x1+2,y2-2,x2-2,y2-2); //ngang 2
line(x1,y1,x1,y2); //doc 1
line(x2-2,y1+22,x2-2,y2-2); //doc 2
setcolor(8);
line(x1+2,y1+22,x2-2,y1+22); //ngang 1
line(x1+1,y2,x2,y2); //ngang 2
line(x1+2,y1+22,x1+2,y2-2); //doc 1
line(x2,y1+1,x2,y2); //doc 2
setcolor(7);setfillstyle(1,0);
rectangle(x1+1,y1+1,x2-1,y2-1);
line(x1+2,y1+21,x2-1,y1+21);
setfillstyle(1,5); //mau window
bar(x1+2,y1+2,x2-2,y1+20);
setcolor(15);
outtextxy(x1+6,y1+8,t);
x3=x2-18;y3=y1+4;
Button(x2-18,y1+4,x2-4,y1+18,"X",0);
if (loai==1) {
setfillstyle(1,7);
bar(x1+2,y1+23,x2-2,y2-2);
}
}
void Menu()
{
Button(3,23,636,43,"",0);
hideMouse();
setcolor(15); line(3,44,637,44); line(637,23,637,44);
setcolor(7);line(2,45,637,45);
setcolor(8);line(2,46,637,46);
setcolor(1); //outtextxy(5,30,"|");
settextjustify(1,1);
outtextxy(31,34,"VeDT"); //outtextxy(57,30,"");
outtextxy(86,34,"LuuDT");//outtextxy(116,30,"");
outtextxy(166,34,"MoFileDT"); //outtextxy(216,30,"");
outtextxy(273,34,"XemMTtrongso"); //outtextxy(330,30,"");
outtextxy(380,34,"Xetduongdi"); //outtextxy(430,30,"");
outtextxy(470,34,"Trogiup"); //outtextxy(510,30,"");
outtextxy(540,34,"DTmoi"); //outtextxy(570,30,"");
outtextxy(600,34,"Thoat"); //outtextxy(570,30,"");
settextjustify(0,2);
showMouse();
}
void reMenu(int x1, int y1, int x2, int y2, char *t){
hideMouse();
setfillstyle(1,7);
bar(x1,y1+1,x2,y2-1);
setcolor(1);
outtextxy(x1+13,y1+7,t);
showMouse();
}
void Status(int c)
{
Button(3,440,637,477,"",1);
hideMouse();
setcolor(15); line(3,438,636,438); line(399,440,399,477); line(401,458,636,458);
setcolor(8); line(2,46,636,46); line(401,440,401,477); line(401,460,636,460);
setcolor(7); line(3,439,637,439); line(400,439,400,477); line(400,459,637,459);
settextjustify(1,1); setcolor(1);
if (c==1) outtextxy(520,450,"DO THI CO HUONG");
if (c==2) outtextxy(520,450,"DO THI VO HUONG");
outtextxy(520,469,"Last Update: 14/05/2007"); //Update
settextjustify(0,2);
showMouse();
}
void background()
{
Window(0,0,639,479,"Chuong trinh mo phong thuat toan DIJKSTRA",0);
Menu();
Status(0);
}
void useWin(int loai)
{
hideMouse();
if(loai==1) {setfillstyle(1,5); //mau window
bar(2,2,637,22);}
if(loai==0) {setfillstyle(1,7); //mau window
bar(2,2,637,22);setcolor(8); rectangle(2,2,637,22);}
setcolor(15);
outtextxy(6,8,"Chuong trinh mo phong thuat toan DIJKSTRA");
showMouse();
Button(619,4,633,18,"X",0);
}
void TextGiua(int xa,int ya,int xb, int yb,char *t)
{
setcolor(1);settextjustify(1,1);
outtextxy((xa+xb)/2,(ya+yb)/2+1,t);
settextjustify(0,2);
}
void mouseOver(int x1, int y1, int xa,int ya, int xb, int yb, char*t, int qsau)
{
if (x1>xa&&x1<xb&&y1>ya&&y1<yb&&q==0)
{
Button(xa,ya,xb,yb,t,0);
q=qsau; return;
}
if ((x1<=xa||x1>=xb||y1<=ya||y1>=yb)&&q==qsau)
{
hideMouse();setfillstyle(1,7);
bar(xa,ya,xb,yb);
TextGiua(xa,ya,xb,yb,t);
showMouse();
q=0;return;
}
}
void onClick(int x1, int y1, int xa, int ya, int xb, int yb, char*t, int qsau)
{
if (x1>xa&&x1<xb&&y1>ya&&y1<yb&&q2==0)
{
Button(xa,ya,xb,yb,t,1);
q2=qsau; return;
}
}
void On_mose_over1(int x, int y)
{
mouseOver(x,y,5,25,57,41,"VeDT",1);
mouseOver(x,y,57,25,116,41,"LuuDT",2);
mouseOver(x,y,116,25,216,41,"MoFileDT",3);
mouseOver(x,y,216,25,330,41,"XemMTtrongso",4);
mouseOver(x,y,330,25,430,41,"Xetduongdi",5);
mouseOver(x,y,430,25,510,41,"Trogiup",6);
mouseOver(x,y,510,25,570,41,"DTmoi",7);
mouseOver(x,y,570,25,630,41,"Thoat",8);
}
void chonMenu1(int x, int y)
{
onClick(x,y,5,25,57,41,"VeDT",1);
onClick(x,y,57,25,116,41,"LuuDT",2);
onClick(x,y,116,25,216,41,"MoFileDT",3);
onClick(x,y,216,25,330,41,"XemMTtrongso",4);
onClick(x,y,330,25,430,41,"Xetduongdi",5);
onClick(x,y,430,25,510,41,"Trogiup",6);
onClick(x,y,510,25,570,41,"DTmoi",7);
onClick(x,y,570,25,630,41,"Thoat",-1); if (q2==-1) exit(1);
onClick(x,y,621,4,635,18,"X",-1); if (q2==-1) exit(1);
}
void xoaStatus()
{
hideMouse();
setfillstyle(1,7);
bar(4,441,398,476);
showMouse();
}
void inStatus(int x, int y, char *t)
{
hideMouse();
x+=5; y+=441;
setcolor(1);
outtextxy(x,y,t);
showMouse();
}
void smallWindow(int rong, int cao, char *t)
{
int xa,xb,ya,yb; cao+=2;
xa=320-(rong*5);xb=320+(rong*5);
ya=240-(cao*6); yb=240+(cao*6);
hideMouse();
chupHinh(xa,ya,xb,yb);
Window(xa,ya,xb,yb,t,1);
showMouse();
}
void MenuDT()
{
smallWindow(18,5,"Chon Loai Do Thi");
hideMouse();
setcolor(1);settextjustify(1,1);
outtextxy(320,236,"1. Do Thi Co Huong");
outtextxy(320,266,"2. Do Thi Vo Huong");
settextjustify(0,2);
showMouse();
}
void On_mose_over0(int x, int y)
{
mouseOver(x,y,240,225,400,245,"1. Do Thi Co Huong",1);
mouseOver(x,y,240,255,400,275,"2. Do Thi Vo Huong",2);
}
void chonMenu0(int x, int y)
{
onClick(x,y,240,225,400,245,"1. Do Thi Co Huong",1);
onClick(x,y,240,255,400,275,"2. Do Thi Vo Huong",2);
onClick(x,y,392,202,406,216,"X",1);
if (q2!=0) {hideMouse();xuatHinh(230,198);showMouse();}
}
void Cal()
{
smallWindow(13,10,"");
hideMouse();
Button(257,192,383,212,"Nhap Trong So",1);
TextGiua(260,217,290,247,"1");
TextGiua(260,247,290,277,"4");
TextGiua(260,277,290,307,"7");
TextGiua(290,217,320,247,"2");
TextGiua(290,247,320,277,"5");
TextGiua(290,277,320,307,"8");
TextGiua(320,217,350,247,"3");
TextGiua(320,247,350,277,"6");
TextGiua(320,277,350,307,"9");
TextGiua(350,217,380,247,"<-");
TextGiua(350,247,380,277,"OK");
TextGiua(350,277,380,307,"0");
showMouse();
}
void On_mose_overCal(int x, int y)
{
mouseOver(x,y,260,217,290,247,"1",1);
mouseOver(x,y,290,217,320,247,"2",2);
mouseOver(x,y,320,217,350,247,"3",3);
mouseOver(x,y,260,247,290,277,"4",4);
mouseOver(x,y,290,247,320,277,"5",5);
mouseOver(x,y,320,247,350,277,"6",6);
mouseOver(x,y,260,277,290,307,"7",7);
mouseOver(x,y,290,277,320,307,"8",8);
mouseOver(x,y,320,277,350,307,"9",9);
mouseOver(x,y,350,277,380,307,"0",10);
mouseOver(x,y,350,217,380,247,"<-",11);
mouseOver(x,y,350,247,380,277,"OK",12);
}
void xuatKQ(int t) //sua 5h/5-5
{
char cht[3]; sprintf(cht,"%d",t);
Button(257,192,383,212,cht,1);
}
void chonNutCal(int x, int y, int &c)
{
onClick(x,y,260,217,290,247,"1",1);
if (q2==1&&hang<3) {
ketqua=ketqua*10+1;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,290,217,320,247,"2",2);
if (q2==2&&hang<3) {
ketqua=ketqua*10+2;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,320,217,350,247,"3",3);
if (q2==3&&hang<3) {
ketqua=ketqua*10+3;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,260,247,290,277,"4",4);
if (q2==4&&hang<3) {
ketqua=ketqua*10+4;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,290,247,320,277,"5",5);
if (q2==5&&hang<3) {
ketqua=ketqua*10+5;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,320,247,350,277,"6",6);
if (q2==6&&hang<3) {
ketqua=ketqua*10+6;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,260,277,290,307,"7",7);
if (q2==7&&hang<3) {
ketqua=ketqua*10+7;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,290,277,320,307,"8",8);
if (q2==8&&hang<3) {
ketqua=ketqua*10+8;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,320,277,350,307,"9",9);
if (q2==9&&hang<3) {
ketqua=ketqua*10+9;
xuatKQ(ketqua);hang++; q2=0;
}
onClick(x,y,350,277,380,307,"0",10);
if (q2==10&&hang<3) {
ketqua=ketqua*10+0;
xuatKQ(ketqua);if (ketqua!=0) hang++; q2=0;
}
onClick(x,y,350,217,380,247,"<-",11);
if (q2==11&&hang>0) {
ketqua=ketqua/10;
xuatKQ(ketqua); hang--; q2=0;
}
onClick(x,y,350,247,380,277,"OK",12);
if (q2==12&&ketqua!=0) {
c=1; q2=0;
hideMouse(); xuatHinh(255,168); showMouse();
}
onClick(x,y,x3,y3,x3+14,y3+14,"X",13);
if (q2==13) {
ketqua=0; c=1; q2=0;
hideMouse(); xuatHinh(255,168); showMouse();
}
if(q2!=0) q2=0;
}
void nutVexong()
{
hideMouse(); chupHinh(4,49,66,71);
setcolor(1); rectangle(4,49,66,71);
setfillstyle(1,7);bar(5,50,65,70);
TextGiua(5,50,65,70,"Ve Xong");
showMouse();
}
void File(int a)
{
if (a==2) smallWindow(25,7,"Open File");
if (a==1) smallWindow(25,7,"Save File");
hideMouse(); setcolor(1);
outtextxy(205,215,"Ten File:");
TextGiua(265,255,375,270,">> Enter de dong y");
TextGiua(265,275,375,290,">> ESC de huy bo ");
showMouse();
Button(203,225,437,245,"Nhap ten File",1);
}
void XuatTenFile(char &ch, int d) //sua 5h/5-5
{ char t;
t=getch(); int len=strlen(F);
if (t==13&&F[0]!=NULL){ //Enter
c2=0; Menu(); useMouse=1;
hideMouse(); xuatHinh(195,186);showMouse();
if(d==1) luuDT(F);
if(d==2) nhapDT(F);
return;
}
if (t==27) {
c2=0; q3=1; useMouse=1; Menu(); ///ESC
hideMouse(); xuatHinh(195,186);showMouse();
return;}
if ((t>=65&&t<=122||t==46)&&len<27){ //ky tu chu hoac dau \ hoac dau . : duong dan vi du: ..\quang hay BGI\quang
ch=t; i++;
Button(203,225,437,245,F,1);
}
if (t==8&&i>=0){ //Backspace
i--;F[i]=NULL;
Button(203,225,437,245,F,1);
}
}
void xetDuongdi()
{
smallWindow(21,6,"Xet duong di");
hideMouse(); setcolor(1);
outtextxy(225,225,"Xet duong di:");
outtextxy(225,246,"Tu dinh");
outtextxy(320,246,"Den dinh");
showMouse();
Button(288,241,315,258,"",1);
Button(390,241,417,258,"",1);
Button(225,265,417,283,"Nhap dinh bat dau",1);
}
void chonDinhS(int ss)//int &d, int ss)
{
while (c2==5)
{
int chon;
chon=getch();
if (chon>=48&&chon<=57&&S<10)
{
// chon-=48;
S=S*10+chon-48;
Button(288,241,315,258,toS(S),1);
if (S!=ss&&S<n) Button(225,265,417,283,"Dinh hop le",1);
if (S==ss) Button(225,265,417,283,"Hai dinh trung nhau",1);
if (S>=n) Button(225,265,417,283,"Dinh khong ton tai",1);
}
if (chon==27)
{ //ESC
c2=0; xoaStatus(); Menu(); useMouse=1;
hideMouse(); xuatHinh(215,192);showMouse();
return;
}
if (chon==13&&S!=ss&&S<n){ //Enter
Button(225,265,417,283,"Nhap dinh ket thuc",1);
return;
}
if (chon==8&&i>=0){ // <-
S/=10;
Button(288,241,315,258,toS(S),1);
if (S!=ss&&S<n) Button(225,265,417,283,"Dinh hop le",1);
if (S==ss) Button(225,265,417,283,"Hai dinh trung nhau",1);
if (S>=n) Button(225,265,417,283,"Dinh khong ton tai",1);
}
}
}
void chonDinhT(int ss)//int &d, int ss)
{
while (c2==5)
{
int chon;
chon=getch();
if (chon>=48&&chon<=57&&T<10)
{
// chon-=48;
T=T*10+chon-48;
Button(390,241,417,258,toS(T),1);
if (T!=ss&&T<n) Button(225,265,417,283,"Dinh hop le",1);
if (T==ss) Button(225,265,417,283,"Hai dinh trung nhau",1);
if (T>=n) Button(225,265,417,283,"Dinh khong ton tai",1);
}
if (chon==27)
{ //ESC
c2=0; Menu(); xoaStatus(); useMouse=1;
hideMouse(); xuatHinh(215,192);showMouse();
return;
}
if (chon==13&&T!=ss&&T<n){ //Enter
c2=0; q3=1;useMouse=1;
Menu(); hideMouse(); xuatHinh(215,192);showMouse();
return;
}
if (chon==8&&i>=0){ // <-
T/=10;
Button(390,241,417,258,toS(T),1);
if (T!=ss&&T<n) Button(225,265,417,283,"Dinh hop le",1);
if (T==ss) Button(225,265,417,283,"Hai dinh trung nhau",1);
if (T>=n) Button(225,265,417,283,"Dinh khong ton tai",1);
}
}
}
void loaiHD(int loai)
{
int ax,bx; //150,480,170
if (loai==1) {ax=155; bx=200;}
if (loai==2) {ax=203; bx=303;}
if (loai==3) {ax=306; bx=407;}
if (loai==4) {ax=410; bx=477;}
setcolor(7); line(ax,170,bx,170);
setcolor(15); line(150,170,ax,170); line(bx,170,480,170);
}
void HuongDan(int loai)
{
int td=180,tc=160;
if(loai==5){
hideMouse();
chupHinh(150,125,480,350);
Window(150,125,480,350,"Huong dan su dung chuong trinh",1);showMouse();
Button(155,150, 200,170,"VeDT",0);
Button(203,150, 303,170,"Luu/MoFile",0);
Button(306,150, 407,170,"XetDuongDi",0);
Button(410,150, 477,170,"TacGia",0);
}
hideMouse();
setfillstyle(1,7); bar(153,173,477,325);
setcolor(1);
TextGiua(160,327,470,347,"<< Da xem xong >>");
if (loai==1||loai==5){
outtextxy(tc,td,"- Nhan VeDT de bat dau ve");td+=18;
outtextxy(tc,td,"- Nhan chuot trai de ve dinh");td+=18;
outtextxy(tc,td,"- Nhan giu va keo chuot tu dinh nay den ");td+=14;
outtextxy(tc,td," dinh khac de ve dinh");td+=18;
outtextxy(tc,td,"- Doi trong so bang cach ve lai canh");td+=18;
outtextxy(tc,td,"- Nhan nut Ve Xong de hoan tat ");td+=18;
outtextxy(tc,td,"- Nhan VeDT de tiep tuc ve ");td+=18;
outtextxy(tc,td,"- Nhan DTmoi de ve do thi moi ");
loaiHD(1);
}
if (loai==2){
outtextxy(tc,td,"- Chi luu duoc khi da co do thi");td+=18;
outtextxy(tc,td,"- Khi ghi ten File khong dung ky");td+=14;
outtextxy(tc,td," tu so va ky tu dac biet");td+=18;
outtextxy(tc,td,"- Enter de dong y luu/mo File");td+=18;
outtextxy(tc,td,"- ESC de huy bo viec luu/mo File");td+=18;
loaiHD(2);
}
if (loai==3){
outtextxy(tc,td,"- Chi xet duong di khi da co do thi");td+=18;
outtextxy(tc,td,"- Ghi dinh bat dau");td+=14;
outtextxy(tc,td," + Enter");td+=14;
outtextxy(tc,td," + Dinh bat dau phai co trong do thi");td+=18;
outtextxy(tc,td,"- Ghi dinh ket thuc");td+=14;
outtextxy(tc,td," + Enter");td+=14;
outtextxy(tc,td," + Dinh ket thuc phai co trong do thi");td+=18;
outtextxy(tc,td," va khac dinh bat dau");td+=18;
outtextxy(tc,td,"- ESC de huy bo xet duong di");
loaiHD(3);
}
if (loai==4){
tc+=10;
TextGiua(160,td,470,td+12,"TRUONG DH SU PHAM KY THUAT");td+=12;
TextGiua(160,td,470,td+12,"KHOA CONG NGHE THONG TIN");td+=12;
TextGiua(160,td,470,td+12,"MON LY THUYET DO THI");td+=12;
TextGiua(160,td,470,td+12,"DE TAI 13 - DIJKSTRA");td+=20;
outtextxy(tc+10,td,"- Nhom thuc hien:");td+=12;
outtextxy(tc,td,"05110148 - Nguyen Ngoc Tri");td+=12;
outtextxy(tc,td,"05118041 - Dang Vu Minh Quang");td+=12;
outtextxy(tc,td,"05110102 - Nguyen Thanh Phuoc");td+=12;
outtextxy(tc,td,"05110006 - Nguyen Thi Ngoc Anh");td+=12;
outtextxy(tc,td,"05110026 - Ngoc Le Dung");td+=12;
loaiHD(4);
}
showMouse();
}
void mouseOverHD(int x1, int y1, int xa,int ya, int xb, int yb, int l)
{
if (x1>xa&&x1<xb&&y1>ya&&y1<yb&&q3!=l)
{
HuongDan(l);
q3=l; return;
}
}