Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Lỗi thiếu mouse.inc

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    12

    Mặc định Lỗi thiếu mouse.inc

    Mình kiếm được code trò chơi cờ Caro nhưng khi chạy trong BORLANDC nó báo lỗi thiếu mouse.inc . Bạn nào biết lỗi này chỉ mình cách khắc phục với.
    Code:
    #include <stdio.h>
    #include <dos.h>
    #include <graphics.h>
    #include "mouse.inc"
    #define MAX 25
    #define HEIGHT 16
    int board[MAX][MAX];
    int xleft, yleft;
    int order;
    void print_order()
    {
      setcolor(BLACK);
      setfillstyle(SOLID_FILL, BLACK);
      bar(xleft+MAX*HEIGHT+30, 40, xleft+MAX*HEIGHT+150, 60);
      switch(order)
      {
        case 0 :  setcolor(BLUE);
                  outtextxy(xleft+MAX*HEIGHT+30, 40, "BLUE to move");
                  break;
        case 1 :  setcolor(RED);
                  outtextxy(xleft+MAX*HEIGHT+30, 40, "RED to move");
                  break;
      }
    }
    void drawboard()
    {
       int i, j;
       xleft = 10;
       yleft = (getmaxy() - MAX * HEIGHT) / 2;
       setcolor(YELLOW);
       for (i=0; i<=MAX; i++)
       {
         line(xleft, yleft + i*HEIGHT, xleft + MAX*HEIGHT, yleft + i*HEIGHT);
         line(xleft + i*HEIGHT, yleft, xleft + i*HEIGHT, yleft + MAX*HEIGHT);
       }
       rectangle(xleft-1, yleft-1,xleft+MAX*HEIGHT+1,yleft+MAX*HEIGHT+1);
       rectangle(xleft-2, yleft-2,xleft+MAX*HEIGHT+2,yleft+MAX*HEIGHT+2);
       order = 0;
       for (i=0; i<MAX; i++)
         for (j=0; j<MAX; j++)
           board[i][j] = -1;
    }
    void get_row_col(int x, int y, int *row, int *col)
    {
      *col = (x - xleft) / HEIGHT;
      *row = (y - yleft) / HEIGHT;
    }
    int check(int row, int col)
    {
      int i, j, tong = 0;
      for (i=-4; i<=4; i++)
        if (col + i >= 0 && col+i < MAX)
          if (board[row][col+i] == order)
            tong++;
          else
            break;
      if (tong >= 5)
        return 1;
      tong = 0;
      for (i=-4; i<=4; i++)
        if (row + i >= 0 && row+i < MAX)
          if (board[row+i][col] == order)
            tong++;
          else
            break;
      if (tong >= 5)
        return 1;
      tong = 0;
      for (i=-4; i<=4; i++)
        if (row + i >= 0 && row+i < MAX && col + i > 0 && col + i < MAX)
          if(board[row+i][col+i] == order)
            tong++;
          else
            break;
      if (tong >= 5)
        return 1;
      tong = 0;
      for (i=-4, j=4; i<=4; i++, j--)
        if (row + j > 0 && row+j < MAX && col + i > 0 && col + i < MAX)
          if (board[row+j][col+i] == order)
            tong++;
          else
            break;
      if (tong >= 5)
        return 1;
      return 0;
    }
    void print_win()
    {
      switch(order)
      {
        case 0 : setcolor(BLUE);
                 outtextxy(xleft+MAX*HEIGHT+30, 140, "BLUE winner");
                 break;
        case 1 : setcolor(RED);
                 outtextxy(xleft+MAX*HEIGHT+30, 140, "RED winner");
                 break;
      }
      setcolor(YELLOW);
      outtextxy(xleft+MAX*HEIGHT+30, 160, "Game Over");
    }
    void main()
    {
      int gr_drive = DETECT, gr_mode;
      int x, y, gameover = 0;
      unsigned char lbutton, rbutton = 0;
      int row, col;
      initgraph(&gr_drive, &gr_mode, "");
      rectangle(0, 0, getmaxx(), getmaxy());
      drawboard();
      reset_mouse();
      while (!gameover)
      {
        print_order();
        while (lbutton == 1 || rbutton == 1)
          get_mouse_button(&lbutton, &rbutton, &x, &y);
        show_mouse();
        do {
          get_mouse_button(&lbutton, &rbutton, &x, &y);
        } while (lbutton == 0 && rbutton == 0);
        hide_mouse();
        if (lbutton == 1)
        {
           get_row_col(x, y, &row, &col);
           if (board[row][col]==-1 && row>=0 && col>=0 && row<MAX && col<MAX)
           {
             board[row][col] = order;
             if (check(row, col))
             {
               print_win();
               gameover = 1;
             }
             switch(order)
             {
                case 0 :  setcolor(BLUE);
                          outtextxy(col*HEIGHT+xleft+5, row*HEIGHT+yleft+5, "O");
                          order = 1;
                          break;
                case 1 :  setcolor(RED);
                          outtextxy(col*HEIGHT+xleft+5, row*HEIGHT+yleft+5, "X");
                          order = 0;
                          break;
             }
           }
        }
        if (rbutton == 1)
          gameover = 1;
      }
      show_mouse();
      getch();
      closegraph();
      while (lbutton == 1 || rbutton == 1)
        get_mouse_button(&lbutton, &rbutton, &x, &y);
    }

  2. #2
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    #include "mouse.inc"
    Cái gì đây???.
    Phá toái hư không - Bạch nhật thăng thiên.

  3. #3
    Ngày gia nhập
    10 2008
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi NamVoDang Xem bài viết
    Cái gì đây???.
    Ý mình là cái BORLANDC của mình nó thiếu thư viện mouse.inc. Bạn biết chỗ nào để tải về không?

  4. #4
    Ngày gia nhập
    04 2008
    Bài viết
    336

    không có thư viện nào tên là mouse.inc cả, file này là do 1 người nào đó viết ra, mình nhớ ko nhầm thì trong cái đống Bài tập C từ a->z có nó thì phải
    code ra gió bão

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    12

    Cái đấy không dùng được bạn à, bạn nào có cái file chạy được bài này thì cho mình với

  6. #6
    Ngày gia nhập
    01 2008
    Nơi ở
    Gameloft Studio
    Bài viết
    294

    Mặc định Lỗi thiếu mouse.inc

    Mouse.inc

    C++ Code:
    1. #define MV_LBUTTON 1
    2. #define MV_RBUTTON 2
    3. #define MV_BBUTTON 3
    4.  
    5. int NUMBER_BUTTONS = 2;
    6. int MOUSE_SIZE = 16;
    7.  
    8. unsigned char MOUSE_THERE;
    9. unsigned char MOUSE_VISIBLE;
    10.  
    11. unsigned char LBUTTON_DOWN,
    12. RBUTTON_DOWN,
    13. BBUTTON_DOWN,
    14. LBUTTON_UP,
    15. RBUTTON_UP,
    16. BBUTTON_UP,
    17. CURSOR_MOVED;
    18.  
    19. int CMX = 0,
    20. CMY = 0;
    21. int BSTATE = 0;
    22.  
    23. union REGS mregs;
    24. struct SREGS msegregs;
    25.  
    26. unsigned char EGA_REG_READ = 1;
    27. unsigned char lbutton, rbutton;
    28. int xmouse, ymouse;
    29.  
    30. void reset_mouse()
    31. {
    32.         MOUSE_THERE = 0;
    33.         MOUSE_SIZE = 16;
    34.         MOUSE_VISIBLE = 0;
    35.         if (getvect(0x33) != 0L)
    36.         {
    37.                 mregs.x.ax = 0;
    38.                 int86(0x33, &mregs, &mregs);
    39.                 if (mregs.x.ax != 0)
    40.                 {
    41.                         MOUSE_THERE = 1;
    42.                         NUMBER_BUTTONS = mregs.x.bx;
    43.                         LBUTTON_DOWN = 0;
    44.                         RBUTTON_DOWN = 0;
    45.                         BBUTTON_DOWN = 0;
    46.                 }
    47.         }
    48. }
    49.  
    50. void show_mouse()
    51. {
    52.         if (MOUSE_THERE)
    53.         {
    54.                 mregs.x.ax = 1;
    55.                 int86(0x33, &mregs, &mregs);
    56.                 MOUSE_VISIBLE = 1;
    57.         }
    58. }
    59.  
    60.  
    61. void hide_mouse()
    62. {
    63.         if (MOUSE_THERE && MOUSE_VISIBLE)
    64.         {
    65.                 mregs.x.ax = 2;
    66.                 int86(0x33, &mregs, &mregs);
    67.                 MOUSE_VISIBLE = 0;
    68.         }
    69. }
    70.  
    71. void get_mouse_button(unsigned char *lbutton, unsigned char *rbutton, int *x, int *y)
    72. {
    73.         if (MOUSE_THERE)
    74.         {
    75.                 mregs.x.ax = 3;
    76.                 int86(0x33, &mregs, &mregs);
    77.                 *lbutton = (mregs.x.bx == 1) ? 1 : 0;
    78.                 *rbutton = (mregs.x.bx == 2) ? 1 : 0;
    79.                 if (mregs.x.bx == 3)
    80.                         *rbutton = *lbutton = 1;
    81.                 *x = mregs.x.cx;
    82.                 *y = mregs.x.dx;
    83.         }
    84. }
    85.  
    86. unsigned char get_button_rls_info(int butt_no, int *count, int *x, int *y)
    87. {
    88.         if (MOUSE_THERE)
    89.         {
    90.                 mregs.x.ax = 6;
    91.                 mregs.x.bx = butt_no;
    92.                 int86(0x33, &mregs, &mregs);
    93.                 *count = mregs.x.bx;
    94.                 *x = mregs.x.cx;
    95.                 *y = mregs.x.dx;
    96.                 if (butt_no == 0)
    97.                         return (!(mregs.x.ax & 1));
    98.                 else
    99.                         return (!((mregs.x.ax & 2) >> 1));
    100.         }
    101.         return 0;
    102. }
    103.  
    104. void set_event_handler(int call_mask, void (far *location)(void))
    105. {
    106.         if (MOUSE_THERE)
    107.         {
    108.                 mregs.x.ax = 12;
    109.                 mregs.x.cx = call_mask;
    110.                 mregs.x.dx = FP_OFF(location);
    111.                 msegregs( spam domains ( spam domains .es ) ) = FP_SEG(location);
    112.                 int86(0x33, &mregs, &mregs);
    113.         }
    114. }
    115.  
    116. void set_hide_bound(int x1, int y1, int x2, int y2)
    117. {
    118.         if (MOUSE_THERE)
    119.         {
    120.                 mregs.x.ax = 16;
    121.                 mregs.x.cx = x1;
    122.                 mregs.x.dx = y1;
    123.                 mregs.x.si = x2;
    124.                 mregs.x.di = y2;
    125.                 int86(0x33, &mregs, &mregs);
    126.         }
    127. }
    128.  
    129. void set_mouse_position(int x,int y)
    130. {
    131.         if (MOUSE_THERE)
    132.         {
    133.                 mregs.x.ax = 4;
    134.                 mregs.x.cx = x;
    135.                 mregs.x.dx = y;
    136.                 int86(0x33, &mregs, &mregs);
    137.         }
    138. }
    139.  
    140. void set_mouse_hlimits(int x1,int x2)
    141. {
    142.         if (MOUSE_THERE)
    143.         {
    144.                 mregs.x.ax = 7;
    145.                 mregs.x.cx = x1;
    146.                 mregs.x.dx = x2;
    147.                 int86(0x33, &mregs, &mregs);
    148.         }
    149. }
    150.  
    151. void set_mouse_vlimits(int y1,int y2)
    152. {
    153.         if (MOUSE_THERE)
    154.         {
    155.                 mregs.x.ax = 8;
    156.                 mregs.x.cx = y1;
    157.                 mregs.x.dx = y2;
    158.                 int86(0x33, &mregs, &mregs);
    159.         }
    160. }
    161.  
    162. void far event_handler(void);
    163.  
    164. void near event_processor(int event_status, int button_status, int x, int y)
    165. {
    166.         if ((CMX != x) || (CMY != y))
    167.         {
    168.                 CURSOR_MOVED = 1;
    169.                 CMX = x;
    170.                 CMY = y;
    171.         }
    172.  
    173.         BSTATE = button_status;
    174.  
    175.         if (event_status & 2)
    176.                 LBUTTON_DOWN = 1;
    177.         if (event_status & 8)
    178.                 RBUTTON_DOWN = 1;
    179.         if (((event_status & 2) || (event_status & 8)) && (button_status == 3))
    180.                 BBUTTON_DOWN = 1;
    181.         if ((NUMBER_BUTTONS == 3) && (event_status & 32))
    182.                 BBUTTON_DOWN = 1;
    183.         if (event_status & 4)
    184.                 LBUTTON_UP = 1;
    185.         if (event_status & 16)
    186.                 RBUTTON_UP = 1;
    187.         if (LBUTTON_UP & RBUTTON_UP)
    188.                 BBUTTON_UP = 1;
    189.         if ((NUMBER_BUTTONS == 3) && (event_status & 64))
    190.                 BBUTTON_UP = 1;
    191. }
    192.  
    193. void reset_event_handler(void)
    194. {
    195.         CURSOR_MOVED = 0;
    196.         LBUTTON_DOWN = LBUTTON_UP = 0;
    197.         RBUTTON_DOWN = RBUTTON_UP = 0;
    198.         BBUTTON_DOWN = BBUTTON_UP = 0;
    199. }
    200.  
    201. void install_event_handler(void)
    202. {
    203.         if (NUMBER_BUTTONS == 3)
    204.                 set_event_handler(127, event_handler);
    205.         else
    206.                 set_event_handler(31, event_handler);
    207. }

  7. #7
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Đã kiếm cho bạn cái mouse.inc hàm event_handler mình viết thêm trong file caro trong đó mình không viết xử lí bắt lỗi thiết lập mouse bạn có thể viết lại nó .
    Attached Files Attached Files
    I'm superman

  8. #8
    Ngày gia nhập
    10 2008
    Bài viết
    12

    Cảm ơn các bạn.
    Cái code của ZCoder87 dùng như thế nào vậy bạn

  9. #9
    Ngày gia nhập
    06 2013
    Nơi ở
    Vĩnh Phúc Hà Nội
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi trung_dk070384 Xem bài viết
    Đã kiếm cho bạn cái mouse.inc hàm event_handler mình viết thêm trong file caro trong đó mình không viết xử lí bắt lỗi thiết lập mouse bạn có thể viết lại nó .
    bác cho em hỏi là tải file đấy về rồi cho vào đâu? e dùng dev

  10. #10
    Ngày gia nhập
    03 2017
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi meeokon Xem bài viết
    Cảm ơn các bạn.
    Cái code của ZCoder87 dùng như thế nào vậy bạn
    minh cung co cai code bi loi nhu thế bạn sửa giúp mình nha
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<ctype.h>
    #include<dos.h>
    #include<stdlib.h>
    #include<ctype.h>
    #include<mouse.inc>
    #define LEFT 5
    #define RIGHT 75
    #define TOP 6
    #define BOTTOM 36
    #define M_LEFT 1
    #define M_RIGHT 2
    #define M_UP 3
    #define M_DOWN 4
    int KetThucGame=0;
    typedef struct
    {
    int x,y;
    }Point;
    char KLEFT=75,KRIGHT=77,KUP=72,KDOWN=80,PAUSE=59;
    int KL=0,KR=0,KU=0,KD=0,P=0;
    Point SNACK[100];
    Point ThucAn;
    int len;
    int head,tail;
    int score=0;
    int level=1;
    int speed=300;
    int DiemTangLevel=10;
    int HuongDi=2;
    typedef struct
    {
    int xbutton;
    int ybutton;
    char *name;
    int statusbutton;
    }Button;
    void VarButton(Button &B,char *s,int x,int y)
    {
    B.xbutton=x;
    B.ybutton=y;
    B.statusbutton=1;
    B.name=s;
    }
    void ShowButton(Button B)
    {
    if(B.statusbutton==1)
    {
    textbackground(15);
    gotoxy(B.xbutton,B.ybutton);textcolor(LIGHTRED);cp rintf("%s",B.name);
    textbackground(BLACK);
    }
    }
    void EnableButton(Button& B)
    {
    B.statusbutton=1;
    }
    void DisableButton(Button& B)
    {
    textbackground(15);
    gotoxy(B.xbutton,B.ybutton);textcolor(LIGHTGRAY);c printf("%s",B.name);
    B.statusbutton=0;
    textbackground(BLACK);
    }
    int ClickButton(Button B,int xchuot,int ychuot)
    {
    if(B.statusbutton==1)
    {
    if(xchuot>=(B.xbutton-1)*8&&xchuot<=(B.xbutton+strlen(B.name)-1-1)*8&&ychuot==(B.ybutton-1)*8)
    return 1;
    }
    return 0;
    }
    void EffectClick(Button B)
    {
    gotoxy(B.xbutton,B.ybutton);textcolor(LIGHTCYAN+BL INK);cprintf("%s",B.name);
    delay(200);
    ShowButton(B);
    }
    void EffectClickNonButton(int x,int y)
    {
    gotoxy(x,y);textbackground(WHITE);textcolor(WHITE) ;cprintf(".");
    textbackground(BLACK);
    delay(200);
    }
    void GanToaDo(Point &P,int xx,int yy)
    {
    P.x=xx;
    P.y=yy;
    }
    void HienThiLoGo(int x,int y,int color)
    {
    gotoxy(x,y);textcolor(color);cprintf("ÛßßßßÛ Û Û ÛßßÛ Ûßßß Û Üß Ûßßß");
    gotoxy(x,y+1);textcolor(LIGHTRED);cprintf("ÈÍÍ Í» ºßÜ º `Í͹ Û ºÛ `Í");
    gotoxy(x,y+2);textcolor(color);cprintf("ÛÜÜÜÜ Û Û ßÛ Û Û ÛÜÜÜ Û ßÜ ÛÜÜÜ");
    }
    void VeBanDo()
    {
    int i,j;
    for(i=LEFT;i<=RIGHT;i++)
    for(j=TOP;j<=BOTTOM;j++)
    {
    if((j==TOP||j==BOTTOM)&&i>LEFT&&i<RIGHT)
    {
    gotoxy(i,j);textcolor(7);cprintf("%c",205);
    }
    if((i==LEFT||i==RIGHT)&&j>TOP&&j<BOTTOM)
    {
    gotoxy(i,j);textcolor(7);cprintf("%c",186);
    }
    }
    gotoxy(LEFT,TOP);textcolor(LIGHTRED);cprintf("%c", 219);
    gotoxy(RIGHT,TOP);textcolor(LIGHTRED);cprintf("%c" ,219);
    gotoxy(LEFT,BOTTOM);textcolor(LIGHTRED);cprintf("% c",219);
    gotoxy(RIGHT,BOTTOM);textcolor(LIGHTRED);cprintf(" %c",219);
    }
    void KhoiTaoConRan()
    {
    len=2;
    head=0;
    tail=len-1;
    GanToaDo(SNACK[tail],LEFT+1,TOP+1);
    GanToaDo(SNACK[head],LEFT+2,TOP+1);

    }
    int KiemTraThuocThanConRan(Point P)
    {
    int i;
    i=1;
    for(i=1;i<=tail;i++)
    {
    if(P.x==SNACK[i].x&&P.y==SNACK[i].y)
    {
    return 1;break;
    }
    }
    return 0;
    }
    void TaoThucAn()//tao thuc an va ve thuc an ra man hinh
    {
    ThucAn=SNACK[head];
    randomize();
    while(KiemTraThuocThanConRan(ThucAn)==1||(ThucAn.x ==SNACK[head].x&&ThucAn.y==SNACK[head].y))
    {
    GanToaDo(ThucAn,LEFT+1+random(RIGHT-1-LEFT-2),TOP+1+random(BOTTOM-1-TOP-2));
    }
    }
    void VeThucAn()
    {
    gotoxy(ThucAn.x,ThucAn.y);textcolor(LIGHTRED);cpri ntf("%c",3);
    }
    void XoaThucAn()
    {
    gotoxy(ThucAn.x,ThucAn.y);textcolor(BLACK);cprintf (" ");
    }
    void VeConRan()
    {
    int i;
    for(i=head;i<=tail;i++)
    {
    if(i==head)
    {
    gotoxy(SNACK[i].x,SNACK[i].y);textcolor(LIGHTRED);cprintf("@");
    }
    else
    {
    gotoxy(SNACK[i].x,SNACK[i].y);
    if(i%2==0) textcolor(15);
    if(i%2!=0) textcolor(LIGHTBLUE);
    cprintf("%c",254);

    }
    }
    }
    void XoaConRan()
    {
    int i;
    for(i=head;i<=tail;i++)
    {
    gotoxy(SNACK[i].x,SNACK[i].y);textcolor(BLACK);cprintf(" ");
    }
    }
    int KiemTraRanDungThanRan()
    {
    int i;
    for(i=1;i<len;i++)
    {
    if(SNACK[0].x==SNACK[i].x&&SNACK[0].y==SNACK[i].y) break;
    }
    if(i<len-1) return 1;
    else return 0;
    }
    int KiemTraRanDie()
    {
    if(SNACK[head].x>LEFT&&SNACK[head].x<RIGHT&&SNACK[head].y>TOP&&SNACK[head].y<BOTTOM&&KiemTraRanDungThanRan()==0) return 0;//khong chet
    else return 1;//chet ngum cu toi.
    }
    void DieuChinhToaDoConRan()
    {
    int i;
    for(i=len-1;i>0;i--)
    {
    SNACK[i]=SNACK[i-1];
    }
    }
    void SetLevelScore()
    {
    score++;
    if(score>=DiemTangLevel&&level<10)
    {
    level++;
    DiemTangLevel+=10;
    if(level<7) speed-=50;
    if(level==7) speed-=15;
    if(level==8) speed-=10;
    if(level==9) speed-=15;
    }
    }
    void BangBaoLevel(int x,int y,int z)
    {
    gotoxy(1,38);textcolor(GREEN); cprintf("LEVEL: %3d",x);
    gotoxy(1,39);textcolor(GREEN); cprintf("SCORE: %3d",y);
    gotoxy(1,40);textcolor(GREEN);cprintf("SPEED: %3d",z);
    }
    void AnThucAn()
    {
    Point temp;
    GanToaDo(temp,SNACK[tail].x-1,SNACK[tail].y);
    len++;
    tail=len-1;
    SNACK[tail]=temp;
    SetLevelScore();
    TaoThucAn();
    }
    void ResetGame()
    {
    KhoiTaoConRan();
    TaoThucAn();
    score=0;
    level=1;
    DiemTangLevel=10;
    HuongDi=2;
    speed=300;
    }
    //============CAC CHUC NANG CAP CAO CHO GAME.
    int LayKeyBanPhim(char &c)
    {
    do
    {
    c=toupper(getch());
    if(c==0)
    {
    c=getch();
    if(c==75||c==77||c==72||c==80)
    {
    return 0;
    break;
    }
    }
    else
    {
    if((c>=65&&c<=90)||c==32||c==13)
    {
    return 1;
    break;
    }
    }
    }while(1);
    }
    void HienThiKiTu(char c)
    {
    switch(c)
    {
    case 32:cprintf("SPACE");break;
    case 13:cprintf("ENTER");break;
    case 72:cprintf("KEYUP");break;
    case 80:cprintf("KEYDOWN");break;
    case 75:cprintf("KEYLEFT");break;
    case 77:cprintf("KEYRIGHT");break;
    default:cprintf("%c",c);
    }
    }
    int Save(char* link)//luu trang thai con ran va thong tin game vao file co duong dan link (bao gom ten)
    {
    FILE* file=fopen(link,"w+b");
    if(file!=NULL)
    {
    fprintf(file,"%d %d %d %d %d %d %d %d ",level,score,speed,HuongDi,DiemTangLevel,ThucAn.x ,ThucAn.y,len); //luu giu cac bien trang thai.
    for(int i=0;i<len;i++)
    {
    fprintf(file,"%d %d ",SNACK[i].x,SNACK[i].y);
    }
    fclose(file);
    return 1;
    }
    return 0;
    }
    int Load(char* link)
    {
    int i,ii;
    FILE* file=fopen(link,"r+b");
    if(file==NULL){ fclose(file);return 0;}//khong luu dc.
    else
    {
    XoaConRan();
    XoaThucAn();
    //luu giu cac bien trang thai.
    fscanf(file,"%d%d%d%d%d%d%d%d",&level,&score,&spee d,&HuongDi,&DiemTangLevel,&ThucAn.x,&ThucAn.y,&len );
    for(i=0;i<len;i++)
    {
    fscanf(file,"%d%d",&SNACK[i].x,&SNACK[i].y);
    }
    head=0;
    tail=len-1;
    fclose(file);
    return 1;
    }
    }
    void MenuSaveGame(int x,int y)
    {
    unsigned char lbutton,rbutton;
    int xmouse,ymouse;
    char c;
    char tenodia[2];
    char tenfile[6];
    int i,j;
    _setcursortype(0);
    MOUSE_THERE=1;
    Button ODIA,SAVENAME,CANCEL,OK;
    VarButton(ODIA,"O Dia:",x,y);
    VarButton(SAVENAME,"SaveName:",x,y+2);
    VarButton(OK,"[OK]",x+25,y+3);
    VarButton(CANCEL,"[CANCLE]",x+30,y+3);
    //=======phan do hoa giao dien========================
    for(i=x-1;i<=x+38;i++)
    {
    if(i==x-1)
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",201);
    gotoxy(i,y+4);textcolor(WHITE);cprintf("%c",200);
    }
    if(i==x+38)
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",187);
    gotoxy(i,y+4);textcolor(WHITE);cprintf("%c",188);
    }
    if(i!=(x-1)&&i!=(x+38))
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",205);
    gotoxy(i,y+4);textcolor(WHITE);cprintf("%c",205);
    }
    }
    gotoxy((39-strlen("Save Game Menu"))/2+x-1,y-1);textcolor(YELLOW);cprintf("Save Game Menu");
    //---------------------------------------------------------------------------------------------------------------------------
    do
    {
    ShowButton(ODIA);
    ShowButton(SAVENAME);
    ShowButton(OK);
    ShowButton(CANCEL);
    do
    {
    if(kbhit()) getch();
    get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse );
    }while(lbutton==0);
    if(ClickButton(ODIA,xmouse,ymouse))
    {
    _setcursortype(1);
    EffectClick(ODIA);
    do{
    c=toupper(getch());
    }while(c<=65&&c>=90);
    tenodia[0]=c;tenodia[1]=NULL;
    gotoxy(x+6,y);textcolor(YELLOW);cprintf("%s",tenod ia);
    _setcursortype(0);
    }
    if(ClickButton(SAVENAME,xmouse,ymouse))
    {
    _setcursortype(1);
    EffectClick(SAVENAME);
    gotoxy(x+9,y+2);textcolor(15);
    i=-1;
    int DaGoXong=0;
    do
    {
    do
    {
    c=toupper(getch());
    j=1;
    if((c>=65&&c<=90&&j==1)||(c>=48&&c<=57&&j==1)||((c ==13||c==8)&&j==1)) break;
    }while(1);
    if(((c>=65&&c<=90&&j==1)||(c>=48&&c<=57&&j==1))&&i <1) //go ki tu abcdef.....w..z
    {
    tenfile[++i]=c;
    gotoxy(x+9+i,y+2);textcolor(15);cprintf("%c",tenfi le[i]);
    }
    if(c==8&&j==1&&i!=-1)
    {
    gotoxy(x+9+i,y+2);textcolor(15);cprintf("%c",32);g otoxy(x+9+i,y+2);
    tenfile[i]=NULL;
    --i;
    }
    if(c==13&&j==1&&i>=0)
    {
    tenfile[++i]=NULL;
    DaGoXong=1;
    }
    }while(DaGoXong==0);
    gotoxy(x+9,y+2);textcolor(YELLOW);cprintf("%s",ten file);
    _setcursortype(0);
    }
    if(ClickButton(OK,xmouse,ymouse))
    {
    EffectClick(OK);
    char* s1="";
    char* s="";
    s1=strcat((char*)tenodia,":\\");
    s=strcat(s1,tenfile);
    s=strcat(s,".RTA");
    gotoxy(1,50);clreol();
    if(Save(s)==1)
    {
    gotoxy((80-strlen("Save Thanh Cong"))/2,50);textcolor(BLUE);cprintf("Save Thanh Cong");
    }
    else
    {
    gotoxy((80-strlen("Save That Bai"))/2,50);textcolor(BLUE);cprintf("Save That Bai");
    }
    delay(500);
    break;
    }
    if(ClickButton(CANCEL,xmouse,ymouse))
    {
    EffectClick(CANCEL);
    break;
    }
    }while(1);
    gotoxy(x-1,y-1);clreol();
    gotoxy(x,y);clreol();
    gotoxy(x,y+2);clreol();
    gotoxy(x,y+3);clreol();
    gotoxy(x-1,y+4);clreol();
    gotoxy(1,50);clreol();
    }
    void MenuLoadGame(int x,int y)
    {
    unsigned char lbutton,rbutton;
    int i,j,xmouse,ymouse;
    char c;
    char tenodia[2];
    char tenfile[6];
    _setcursortype(0);
    MOUSE_THERE=1;
    Button ODIA,SAVENAME,CANCEL,OK;
    VarButton(ODIA,"O Dia:",x,y);
    VarButton(SAVENAME,"SaveName:",x,y+2);
    VarButton(OK,"[OK]",x+20,y+3);
    VarButton(CANCEL,"[CANCLE]",x+27,y+3);
    //=======phan do hoa giao dien========================
    for(i=x-1;i<=x+35;i++)
    {
    if(i==x-1)
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",201);
    gotoxy(i,y+4);textcolor(WHITE);cprintf("%c",200);
    }
    if(i==x+35)
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",187);
    gotoxy(i,y+4);textcolor(WHITE);cprintf("%c",188);
    }
    if(i!=(x-1)&&i!=(x+35))
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",205);
    gotoxy(i,y+4);textcolor(WHITE);cprintf("%c",205);
    }
    }
    gotoxy((36-strlen("Load Game Menu"))/2+x-1,y-1);textcolor(YELLOW);cprintf("Load Game Menu");
    //---------------------------------------------------------------------------------------------------------------------------
    do
    {
    ShowButton(ODIA);
    ShowButton(SAVENAME);
    ShowButton(OK);
    ShowButton(CANCEL);
    do
    {
    if(kbhit()) getch();
    get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse );
    }while(lbutton==0);
    if(ClickButton(ODIA,xmouse,ymouse))
    {
    _setcursortype(1);
    EffectClick(ODIA);
    do{
    c=toupper(getch());
    }while(c<=65&&c>=90);
    tenodia[0]=c;tenodia[1]=NULL;
    gotoxy(x+6,y);textcolor(YELLOW);cprintf("%s",tenod ia);
    _setcursortype(0);
    }
    if(ClickButton(SAVENAME,xmouse,ymouse))
    {
    _setcursortype(1);
    EffectClick(SAVENAME);
    gotoxy(x+9,y+2);textcolor(LIGHTBLUE);
    i=-1;
    int DaGoXong=0;
    do
    {
    do
    {
    c=toupper(getch());
    if(c==0){ c=getch();j=0;}
    else j=1;
    if((c>=65&&c<=90&&j==1)||(c>=48&&c<=57&&j==1)||((c ==13||c==8)&&j==1)) break;
    }while(1);
    if(((c>=65&&c<=90&&j==1)||(c>=48&&c<=57&&j==1))&&i <1) //go ki tu abcdef.....w..z
    {
    tenfile[++i]=c;
    gotoxy(x+9+i,y+2);textcolor(15);cprintf("%c",tenfi le[i]);
    }
    if(c==8&&j==1&&i>=0)
    {
    gotoxy(x+9+i,y+2);textcolor(15);cprintf("%c",32);g otoxy(x+9+i,y+2);
    tenfile[i]=NULL;
    i=i-1;
    }
    if(c==13&&j==1&&i>=0)
    {
    tenfile[++i]=NULL;
    DaGoXong=1;
    }
    }while(DaGoXong==0);
    gotoxy(x+9,y+2);textcolor(YELLOW);cprintf("%s",ten file);
    _setcursortype(0);
    }
    if(ClickButton(OK,xmouse,ymouse))
    {
    EffectClick(OK);
    char* s1="";
    char* s="";
    s1=strcat(tenodia,":\\");
    s=strcat(s1,tenfile);
    s=strcat(s,".RTA");
    gotoxy(1,50);clreol();
    if(Load(s)==1)
    {
    BangBaoLevel(level,score,speed);
    VeThucAn();
    gotoxy((80-strlen("Load Game Thanh Cong"))/2,50);textcolor(BLUE);cprintf("Load Game Thanh Cong");
    }
    else
    {
    gotoxy((80-strlen("Load Game That Bai"))/2,50);textcolor(BLUE);cprintf("Load Game That Bai");
    }
    delay(500);
    break;
    }
    if(ClickButton(CANCEL,xmouse,ymouse))
    {
    EffectClick(CANCEL);
    break;
    }
    }while(1);
    gotoxy(x-1,y-1);clreol();
    gotoxy(x,y);clreol();
    gotoxy(x,y+2);clreol();
    gotoxy(x,y+3);clreol();
    gotoxy(x-1,y+4);clreol();
    gotoxy(1,50);clreol();
    }
    void MenuControl(int x,int y)
    {
    unsigned char lbutton,rbutton;
    int xmouse,ymouse;
    char tempUP=KUP,tempDOWN=KDOWN,tempLEFT=KLEFT,tempRIGHT =KRIGHT;
    int tempu=KU,tempd=KD,templ=KL,tempr=KR,i;
    MOUSE_THERE=1;
    Button U,D,L,R,OK,DEFAULT,CANCEL;
    VarButton(U,"[ M_UP ]",x,y);
    VarButton(D,"[ M_DOWN ]",x,y+2);
    VarButton(L,"[ M_LEFT ]",x,y+4);
    VarButton(R,"[M_RIGHT ]",x+25,y+2);
    VarButton(OK,"[SAVE ALL]",x+25,y+4);
    VarButton(DEFAULT,"[DEFAUTL]",x+36,y+4);
    VarButton(CANCEL,"[CANCEL]",x+46,y+4);
    //=======phan do hoa giao dien========================
    _setcursortype(0);
    for(i=x-1;i<=x+54;i++)
    {
    if(i==x-1)
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",201);
    gotoxy(i,y+5);textcolor(WHITE);cprintf("%c",200);
    }
    if(i==x+54)
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",187);
    gotoxy(i,y+5);textcolor(WHITE);cprintf("%c",188);
    }
    if(i!=(x-1)&&i!=(x+54))
    {
    gotoxy(i,y-1);textcolor(WHITE);cprintf("%c",205);
    gotoxy(i,y+5);textcolor(WHITE);cprintf("%c",205);
    }
    }
    gotoxy((55-strlen("Menu CONTROL"))/2+x-1,y-1);textcolor(YELLOW);cprintf("Menu Control");
    //---------------------------------------------------------------------------------------------------------------------------
    do
    {
    ShowButton(U);
    ShowButton(D);
    ShowButton(L);
    ShowButton(R);
    ShowButton(OK);
    ShowButton(DEFAULT);
    ShowButton(CANCEL);
    do
    {
    if(kbhit()) getch(); //chan fim rac
    get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse );
    }while(lbutton==0);
    if(ClickButton(U,xmouse,ymouse))
    {
    EffectClick(U);
    _setcursortype(1);
    gotoxy(x+12,y);textcolor(BLACK);cprintf(" ");
    gotoxy(x+12,y);textcolor(YELLOW);
    KU=LayKeyBanPhim(KUP);
    HienThiKiTu(KUP);
    }
    if(ClickButton(D,xmouse,ymouse))
    {
    EffectClick(D);
    _setcursortype(1);
    gotoxy(x+12,y+2);textcolor(BLACK);cprintf(" ");
    gotoxy(x+12,y+2);textcolor(YELLOW);
    KD=LayKeyBanPhim(KDOWN);
    HienThiKiTu(KDOWN);
    }
    if(ClickButton(L,xmouse,ymouse))
    {
    EffectClick(L);
    _setcursortype(1);
    gotoxy(x+12,y+4);textcolor(BLACK);cprintf(" ");
    gotoxy(x+12,y+4);textcolor(YELLOW);
    KL=LayKeyBanPhim(KLEFT);
    HienThiKiTu(KLEFT);
    }
    if(ClickButton(R,xmouse,ymouse))
    {
    EffectClick(R);
    _setcursortype(1);
    gotoxy(x+37,y+2);textcolor(BLACK);cprintf(" ");
    gotoxy(x+37,y+2);textcolor(YELLOW);
    KR=LayKeyBanPhim(KRIGHT);
    HienThiKiTu(KRIGHT);
    }
    if(ClickButton(OK,xmouse,ymouse))
    {
    EffectClick(OK);
    _setcursortype(0);
    break;
    }
    if(ClickButton(DEFAULT,xmouse,ymouse))
    {
    EffectClick(DEFAULT);
    _setcursortype(0);
    KLEFT=75;KRIGHT=77;KUP=72;KDOWN=80;
    KL=0,KR=0,KU=0,KD=0;
    break;
    }
    if(ClickButton(CANCEL,xmouse,ymouse))
    {
    EffectClick(CANCEL);
    _setcursortype(0);
    KLEFT=tempLEFT;KRIGHT=tempRIGHT;KUP=tempUP;KDOWN=t empDOWN;
    KL=templ,KR=tempr,KU=tempu,KD=tempd;
    break;
    }
    _setcursortype(0);
    }while(1);
    gotoxy(x-10,y-1);clreol();
    gotoxy(x,y);clreol();
    gotoxy(x,y+2);clreol();
    gotoxy(x,y+4);clreol();
    gotoxy(x-1,y+5);clreol();
    }
    void MenuAbout()
    {
    unsigned char lbutton,rbutton;
    int i,j,xmouse,ymouse;
    char c;
    char tenodia[2];
    char tenfile[10];
    MOUSE_THERE=1;
    Button BACK;
    VarButton(BACK,"BACK TO MAIN MENU",6,48);
    _setcursortype(0);
    //=======phan do hoa giao dien========================
    for(i=5;i<=75;i++)
    {
    if(i==5)
    {
    gotoxy(i,41);textcolor(WHITE);cprintf("%c",201);
    gotoxy(i,49);textcolor(WHITE);cprintf("%c",200);
    }
    if(i==75)
    {
    gotoxy(i,41);textcolor(WHITE);cprintf("%c",187);
    gotoxy(i,49);textcolor(WHITE);cprintf("%c",188);
    }
    if(i!=5&&i!=75)
    {
    gotoxy(i,41);textcolor(WHITE);cprintf("%c",205);
    gotoxy(i,49);textcolor(WHITE);cprintf("%c",205);
    }
    }
    gotoxy((70-strlen("Thong Tin Chuong Trinh"))/2+5,41);textcolor(YELLOW);cprintf("Thong Tin Chuong Trinh");
    //---------------------------------------------------------------------------------------------------------------------------
    textcolor(LIGHTGREEN);

    gotoxy(6,46);cprintf("Ten chuong trinh:SNACKE - Ran San Moi");
    gotoxy(6,47);cprintf("Chuc nang kem theo:save,load game,pause,resume game...");
    do
    {
    ShowButton(BACK);
    do
    {
    if(kbhit()) getch();
    get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse );
    }while(lbutton==0);
    if(ClickButton(BACK,xmouse,ymouse))
    {
    EffectClick(BACK);
    break;
    }
    }while(1);
    gotoxy(1,41);clreol();
    gotoxy(1,43);clreol();
    gotoxy(1,44);clreol();
    gotoxy(1,45);clreol();
    gotoxy(1,46);clreol();
    gotoxy(1,47);clreol();
    gotoxy(1,48);clreol();
    gotoxy(1,49);clreol();
    }
    void MenuHelp()
    {
    unsigned char lbutton,rbutton;
    int i,j,xmouse,ymouse;
    MOUSE_THERE=1;
    Button BACK;
    VarButton(BACK,"BACK TO MAIN MENU",20,49);
    _setcursortype(0);
    //=======phan do hoa giao dien========================
    for(i=5;i<=75;i++)
    {
    if(i==5)
    {
    gotoxy(i,41);textcolor(WHITE);cprintf("%c",201);
    gotoxy(i,50);textcolor(WHITE);cprintf("%c",200);
    }
    if(i==75)
    {
    gotoxy(i,41);textcolor(WHITE);cprintf("%c",187);
    gotoxy(i,50);textcolor(WHITE);cprintf("%c",188);
    }
    if(i!=5&&i!=75)
    {
    gotoxy(i,41);textcolor(WHITE);cprintf("%c",205);
    gotoxy(i,50);textcolor(WHITE);cprintf("%c",205);
    }
    }
    gotoxy((70-strlen("Tro Giup Cach Choi"))/2+5,41);textcolor(YELLOW);cprintf("Tro Giup Cach Choi");
    //---------------------------------------------------------------------------------------------------------------------------
    textcolor(LIGHTGREEN);
    gotoxy(6,43);cprintf("Su dung 4 phim:%c %c %c %c de di chuyen con ran.Ban co the chinh",24,25,26,27);
    gotoxy(6,44);cprintf("lai phim khac neu ban muon.Trong luc choi game F1 de pause game lai ");
    gotoxy(6,45);cprintf("Tren thanh Menu co 1 so tinh nang nhu:save,load,control,resume...");
    gotoxy(6,46);cprintf("Nhan Resume de tiep tuc choi game.");
    gotoxy(6,47);cprintf("Game co tat ca 7 cap do choi.Hihi.Chuc vui ve nha.");
    do
    {
    ShowButton(BACK);
    do
    {
    if(kbhit()) getch();
    get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse );
    }while(lbutton==0);
    if(ClickButton(BACK,xmouse,ymouse))
    {
    EffectClick(BACK);
    break;
    }
    }while(1);
    gotoxy(1,41);clreol();
    gotoxy(1,43);clreol();
    gotoxy(1,44);clreol();
    gotoxy(1,45);clreol();
    gotoxy(1,46);clreol();
    gotoxy(1,47);clreol();
    gotoxy(1,48);clreol();
    gotoxy(1,49);clreol();
    gotoxy(1,50);clreol();
    }
    void ShowMessenger(int x,int y,int loai)
    {
    switch(loai)
    {
    case 1:
    textcolor(LIGHTGREEN);
    gotoxy(x+3,y);cprintf("Û Û ÛßßßÛ Û Û Û Û Û Û Û");
    gotoxy(x+3,y+1);cprintf(" ßÜß º º º º ºÜßܺ º ºßÜ º");
    gotoxy(x+3,y+2);cprintf(" Û ÛÜÜÜÛ ÛÜÜÜÛ Ûß ßÛ Û Û ßÛ");
    break;
    case 0:
    textcolor(LIGHTGREEN);
    gotoxy(x,y);cprintf("Û Û ÛßßßÛ Û Û Û ÛßßßÛ ÛßßßÛ Ûßß");
    gotoxy(x,y+1);cprintf(" ßÜß º º º º º º º ÈÍÍÍ» `Í");
    gotoxy(x,y+2);cprintf(" Û ÛÜÜÜÛ ÛÜÜÜÛ ÛÜÜ ÛÜÜÜÛ ÛÜÜÜÛ ÛÜÜ");
    break;
    }
    }
    void HideMessenger(int x,int y)
    {
    textcolor(BLACK);
    gotoxy(x,y);clreol();
    gotoxy(x,y+1);clreol();
    gotoxy(x,y+2);clreol();
    }
    int MenuWinLose(int x,int y,int loai)
    {
    unsigned char lbutton,rbutton;
    int xmouse,ymouse;
    Button AGAIN,EXIT;
    VarButton(AGAIN,"[PLAY AGAIN]",x+8,y+5);
    VarButton(EXIT,"[EXIT GAME]",x+5+18,y+5);
    ShowMessenger(x,y,loai);
    do
    {
    ShowButton(AGAIN);
    ShowButton(EXIT);
    do
    {
    MOUSE_THERE=1;
    if(kbhit()) getch();
    get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse );
    }while(lbutton==0);
    MOUSE_THERE=0;
    if(ClickButton(AGAIN,xmouse,ymouse))
    {
    EffectClick(AGAIN);
    XoaConRan();
    if(SNACK[head].y==TOP||SNACK[head].y==BOTTOM){
    gotoxy(SNACK[head].x,SNACK[head].y);textcolor(7);cprintf("%c",205);}
    if(SNACK[head].x==LEFT||SNACK[head].x==RIGHT){
    gotoxy(SNACK[head].x,SNACK[head].y);textcolor(7);cprintf("%c",186);
    }
    gotoxy(ThucAn.x,ThucAn.y);cprintf(" ");
    ResetGame();
    VeThucAn();
    HideMessenger(x,y);
    gotoxy(1,y+5);clreol();
    return 1;
    }
    if(ClickButton(EXIT,xmouse,ymouse))
    {
    EffectClick(EXIT);
    HideMessenger(x,y);
    gotoxy(1,y+5);clreol();
    return 0;
    }
    }while(1);
    }
    void ThuTucChucNangGame()
    {
    unsigned char lbut,rbut;
    int xm,ym;
    int xmouse,ymouse;
    Button RESUME,SAVE,LOAD,CONTROL,HELP,ABOUT,EXIT;
    VarButton(SAVE,"[SAVE]",21,38);
    VarButton(LOAD,"[LOAD]",28,38);
    VarButton(CONTROL,"[CONTROL]",35,38);
    VarButton(HELP,"[HELP]",45,38);
    VarButton(ABOUT,"[ABOUT]",52,38);
    VarButton(RESUME,"[RESUME]",60,38);
    VarButton(EXIT,"[EXIT]",69,38);
    int i=0;
    do
    {
    gotoxy(1,50);clreol();
    gotoxy((80-strlen("[RESUME] De Tiep Tuc Choi Game."))/2,50);textcolor(BLUE);cprintf("[RESUME] De Tiep Tuc Choi Game.");
    ShowButton(SAVE);
    ShowButton(LOAD);
    ShowButton(CONTROL);
    ShowButton(HELP);
    ShowButton(ABOUT);
    ShowButton(RESUME);
    ShowButton(EXIT);
    MOUSE_THERE=1;
    do
    {
    if(kbhit()) getch();
    get_mouse_button(&lbut,&rbut,&xmouse,&ymouse);
    }while(lbut==0);
    xm=xmouse;
    ym=ymouse;
    if(ClickButton(RESUME,xm,ym))
    {
    EffectClick(RESUME);
    break;
    }
    if(ClickButton(SAVE,xm,ym))
    {
    EffectClick(SAVE);
    MenuSaveGame(25,42);
    }
    if(ClickButton(LOAD,xm,ym))
    {
    EffectClick(LOAD);
    MenuLoadGame(25,42);
    }
    if(ClickButton(CONTROL,xm,ym))
    {
    EffectClick(CONTROL);
    MenuControl(15,42);
    }
    if(ClickButton(HELP,xm,ym))
    {
    EffectClick(HELP);
    MenuHelp();
    }
    if(ClickButton(ABOUT,xm,ym))
    {
    EffectClick(ABOUT);
    MenuAbout();
    }
    if(ClickButton(EXIT,xm,ym))
    {
    EffectClick(EXIT);
    KetThucGame=1;
    break;
    }
    }while(1);
    DisableButton(SAVE);
    DisableButton(LOAD);
    DisableButton(CONTROL);
    DisableButton(HELP);
    DisableButton(ABOUT);
    DisableButton(RESUME);
    DisableButton(EXIT);
    }
    void KhoiDongGame(int x,int y)
    {
    unsigned char lbutton,rbutton;
    int xmouse,ymouse;
    Button START;
    VarButton(START,"[ START GAME ]",x,y);
    ShowButton(START);
    MOUSE_THERE=1;
    do
    {
    do
    {
    if(kbhit()) getch();
    get_mouse_button(&lbutton,&rbutton,&xmouse,&ymouse );
    }while(lbutton==0);
    if(ClickButton(START,xmouse,ymouse))
    {
    EffectClick(START);
    break;
    }
    }while(1);
    gotoxy(x,y);textcolor(BLACK);cprintf(" ");
    }
    void main()
    {
    char key;
    int TrangThaiKey=1;
    clrscr();
    textmode(C4350);
    _setcursortype(0);
    HienThiLoGo(25,2,15);
    VeBanDo();
    ResetGame();
    BangBaoLevel(level,score,speed);
    KhoiDongGame(30,20);
    VeThucAn();
    VeConRan();
    do
    {
    gotoxy(1,50);clreol();
    gotoxy((80-strlen("F1 De Pause Game Va Hien Thi Menu Chuc Nang Game"))/2,50);textcolor(BLUE);cprintf("F1 De Pause Game Va Hien Thi Menu Chuc Nang Game");
    XoaConRan();
    if(kbhit())
    {

    key=toupper(getch());
    if(key==0)
    {
    key=getch();
    TrangThaiKey=0;
    }
    else TrangThaiKey=1;
    if(key==KLEFT&&TrangThaiKey==KL&&HuongDi!=2) HuongDi=4;
    if(key==KRIGHT&&TrangThaiKey==KR&&HuongDi!=4) HuongDi=2;
    if(key==KUP&&TrangThaiKey==KU&&HuongDi!=3) HuongDi=1;
    if(key==KDOWN&&TrangThaiKey==KD&&HuongDi!=1) HuongDi=3;
    if(key==PAUSE&&TrangThaiKey==P)
    {
    ThuTucChucNangGame();
    if(KetThucGame==1) break;
    }
    }
    DieuChinhToaDoConRan();
    switch(HuongDi)
    {

    case 4:GanToaDo(SNACK[head],--SNACK[head].x,SNACK[head].y);break;
    case 2:GanToaDo(SNACK[head],++SNACK[head].x,SNACK[head].y);break;
    case 1:GanToaDo(SNACK[head],SNACK[head].x,--SNACK[head].y);break;
    case 3:GanToaDo(SNACK[head],SNACK[head].x,++SNACK[head].y);break;
    }
    VeConRan();
    if(ThucAn.x==SNACK[head].x&&ThucAn.y==SNACK[head].y)
    {
    AnThucAn();VeThucAn();BangBaoLevel(level,score,spe ed);
    if(level==10)
    {
    if(MenuWinLose(20,42,1)==0) break;
    }
    }
    if(KiemTraRanDie()==1)
    {
    if(MenuWinLose(20,42,0)==0) break;
    }
    delay(speed);
    }while(1);
    }

Các đề tài tương tự

  1. Đặt tọa độ cho mouse trong C#?
    Gửi bởi vuongcuong88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 25-09-2014, 04:02 PM
  2. Thiết kế kiến trúc, thiết kế biệt thự, thiết kế nhà dân, thiết kế nội thất, showroom, triển lãm
    Gửi bởi hoangthanh1981hn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 7
    Bài viết cuối: 16-04-2013, 10:29 AM
  3. [XNA] Thiết lập quyền hạn truy cập của Input (mouse)
    Gửi bởi nailut trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 08-05-2012, 07:40 AM
  4. Kỹ thuật C Xử lý Mouse trên C?
    Gửi bởi hoan_it_cgh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 22-01-2010, 01:12 PM
  5. Xử lý Mouse
    Gửi bởi redsun_it trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 19-08-2008, 05:50 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn