Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 23 kết quả

Đề tài: Code trò chơi cờ caro viết bằng C, mọi người góp ý!

  1. #1
    No Avatar
    tamtam Khách

    Mặc định Code trò chơi cờ caro viết bằng C, mọi người góp ý!

    C Code:
    1. #include <iostream.h>
    2. #include <string.h>
    3. #include <conio.h>
    4. #include <stdio.h>
    5. #include <stdlib.h>
    6. #include <dos.h>
    7. #include <graphics.h>
    8.  
    9. int M[22][23];
    10. int Col=240, Row=220, I=10, J=11;
    11. int Play=1,cont=1;
    12. char Player1[10],Player2[10];
    13.  
    14. void Win(char name[]);
    15. void Choi();
    16. int Thang(int , int , int );
    17. void XuatVT(int , int , int );
    18. void Chu(int , int , int );
    19. void Khung(int , int , int );
    20. void Khoidau();
    21. void Nen();
    22. void Phien(char st[], int ,int );
    23. void KTDH(void);
    24.  
    25. void main(void)
    26.     { Khoidau();
    27.       KTDH();
    28.       do{  Play=1;Col=240; Row=220; I=10; J=11;
    29.        for(int i=0; i<22; i++)
    30.            for(int j=0; j<23; j++)
    31.          M[i][j]=0;
    32.        cleardevice();
    33.        Nen();
    34.        Choi();
    35.     }while(cont==1);
    36.       closegraph();
    37.     }
    38.  
    39. void Win(char name[])
    40.    {
    41.      settextstyle(1,0,9);
    42.      setcolor(15);
    43.      outtextxy(10,10,name);
    44.      outtextxy(10,100," won");
    45.    }
    46.  
    47. void Choi()
    48.    { char key;
    49.      Khung(Col,Row,1);
    50.      XuatVT(I,J,3);
    51.      char Chuoi[236]="        This is program demo CARO game between two players. Press F2 to new game, F10 to quit game and when you finish a game, press any key to a new game. This program was written by Hoang Truong Manh";
    52.      int l=strlen(Chuoi);
    53.      Phien(Player1,170,15+BLINK);
    54.      do{ do{ settextstyle(2,0,5);
    55.          setcolor(15);
    56.          outtextxy(1,460,Chuoi);
    57.          delay(200);
    58.          setcolor(1);
    59.          outtextxy(1,460,Chuoi);
    60.          char st=Chuoi[0];
    61.          for(int i=0; i<l; i++)
    62.         Chuoi[i]=Chuoi[i+1];
    63.         Chuoi[l]=st;
    64.         }while(!kbhit());
    65.      key=getch();
    66.      if(key==0) key=getch();
    67.      if(key==77)
    68.         { Khung(Col,Row,3);
    69.           XuatVT(I,J,1);
    70.           Col=Col+20; J++;
    71.           if(Col==480) {Col=20; J=0;}
    72.           Khung(Col,Row,1);
    73.           XuatVT(I,J,3);
    74.         }
    75.      if(key==75)
    76.         { Khung(Col,Row,3);
    77.           XuatVT(I,J,1);
    78.           Col=Col-20; J--;
    79.           if(Col==0) {Col=460;J=22;}
    80.           Khung(Col,Row,1);
    81.           XuatVT(I,J,3);
    82.         }
    83.      if(key==80)
    84.         { Khung(Col,Row,3);
    85.           XuatVT(I,J,1);
    86.           Row=Row+20; I++;
    87.           if(Row==460) {Row=20; I=0;}
    88.           Khung(Col,Row,1);
    89.           XuatVT(I,J,3);
    90.         }
    91.      if(key==72)
    92.         { Khung(Col,Row,3);
    93.           XuatVT(I,J,1);
    94.  
    95.           Row=Row-20; I--;
    96.           if(Row==0) {Row=440; I=21;}
    97.           Khung(Col,Row,1);
    98.           XuatVT(I,J,3);
    99.         }
    100.      if(key==13)
    101.          if(M[I][J]==0)
    102.            { Chu(Col,Row,Play);
    103.          if(Play==1)
    104.            { M[I][J]=1;
    105.              if(Thang(I,J,Play)==Play)
    106.             { Win(Player1);getch();
    107.               Play=-1;return;
    108.             }
    109.              Play=-1;
    110.              Phien(Player1,170,5);
    111.              Phien(Player2,270,15+BLINK);
    112.            }
    113.           else
    114.            { M[I][J]=-1;
    115.              if(Thang(I,J,Play)==Play)
    116.             { Win(Player2);getch();
    117.               Play=1;return;
    118.             }
    119.              Play=1;
    120.              Phien(Player2,270,5);
    121.              Phien(Player1,170,15+BLINK);
    122.            }
    123.            }
    124.      if(key==60) break;
    125.      if(key==68) {cont=0;return;}
    126.     }while(key!=68);
    127.     }
    128.  
    129. int Thang(int x, int y, int s)
    130.    {  if(M[x][y-4]!=-s&&M[x][y-3]==s&&M[x][y-2]==s&&M[x][y-1]==s&&M[x][y]==s&&M[x][y+1]!=-s)
    131.      return(s);
    132.       if(M[x][y-3]!=-s&&M[x][y-2]==s&&M[x][y-1]==s&&M[x][y]==s&&M[x][y+1]==s&&M[x][y+2]!=-s)
    133.      return(s);
    134.       if(M[x][y-2]!=-s&&M[x][y-1]==s&&M[x][y]==s&&M[x][y+1]==s&&M[x][y+2]==s&&M[x][y+3]!=-s)
    135.      return(s);
    136.       if(M[x][y-1]!=-s&&M[x][y]==s&&M[x][y+1]==s&&M[x][y+2]==s&&M[x][y+3]==s&&M[x][y+4]!=-s)
    137.      return(s);
    138.  
    139.       if(M[x-4][y]!=-s&&M[x-3][y]==s&&M[x-2][y]==s&&M[x-1][y]==s&&M[x][y]==s&&M[x+1][y]!=-s)
    140.      return(s);
    141.       if(M[x-3][y]!=-s&&M[x-2][y]==s&&M[x-1][y]==s&&M[x][y]==s&&M[x+1][y]==s&&M[x+2][y]!=-s)
    142.      return(s);
    143.       if(M[x-2][y]!=-s&&M[x-1][y]==s&&M[x][y]==s&&M[x+1][y]==s&&M[x+2][y]==s&&M[x+3][y]!=-s)
    144.      return(s);
    145.       if(M[x-1][y]!=-s&&M[x][y]==s&&M[x+1][y]==s&&M[x+2][y]==s&&M[x+3][y]==s&&M[x+4][y]!=-s)
    146.      return(s);
    147.  
    148.       if(M[x-4][y-4]!=-s&&M[x-3][y-3]==s&&M[x-2][y-2]==s&&M[x-1][y-1]==s&&M[x][y]==s&&M[x+1][y+1]!=-s)
    149.      return(s);
    150.       if(M[x-3][y-3]!=-s&&M[x-2][y-2]==s&&M[x-1][y-1]==s&&M[x][y]==s&&M[x+1][y+1]==s&&M[x+2][y+2]!=-s)
    151.      return(s);
    152.       if(M[x-2][y-2]!=-s&&M[x-1][y-1]==s&&M[x][y]==s&&M[x+1][y+1]==s&&M[x+2][y+2]==s&&M[x+3][y+3]!=-s)
    153.      return(s);
    154.       if(M[x-1][y-1]!=-s&&M[x][y]==s&&M[x+1][y+1]==s&&M[x+2][y+2]==s&&M[x+3][y+3]==s&&M[x+4][y+4]!=-s)
    155.      return(s);
    156.  
    157.       if(M[x-4][y+4]!=-s&&M[x-3][y+3]==s&&M[x-2][y+2]==s&&M[x-1][y+1]==s&&M[x][y]==s&&M[x+1][y-1]!=-s)
    158.      return(s);
    159.       if(M[x-3][y+3]!=-s&&M[x-2][y+2]==s&&M[x-1][y+1]==s&&M[x][y]==s&&M[x+1][y-1]==s&&M[x+2][y-2]!=-s)
    160.      return(s);
    161.       if(M[x-2][y+2]!=-s&&M[x-1][y+1]==s&&M[x][y]==s&&M[x+1][y-1]==s&&M[x+2][y-2]==s&&M[x+3][y-3]!=-s)
    162.      return(s);
    163.       if(M[x-1][y+1]!=-s&&M[x][y]==s&&M[x+1][y-1]==s&&M[x+2][y-2]==s&&M[x+3][y-3]==s&&M[x+4][y-4]!=-s)
    164.      return(s);
    165.  
    166.       return(0);
    167.    }
    168.  
    169. void XuatVT(int x, int y, int color)
    170.    { settextstyle(1,0,1);
    171.      setcolor(color);
    172.      char c1[3],c2[3],c3[3];
    173.      itoa(x+1,c1,10);
    174.      itoa(y+1,c2,10);
    175.      outtextxy(580,30,c1);
    176.      outtextxy(580,60,c2);
    177.    }
    178.  
    179. void Chu(int x, int y, int status)
    180.    { settextstyle(1,0,1);
    181.      if(status==1)
    182.        { setcolor(14);
    183.      outtextxy(x-5,y-13,"O");
    184.        }
    185.      if(status==-1)
    186.        { setcolor(5);
    187.      outtextxy(x-5,y-13,"X");
    188.        }
    189.    }
    190. void Khung(int x, int y, int color)
    191.     { setcolor(color);
    192.       line(x-3,y-10,x-7,y-10);
    193.       line(x-7,y-10,x-7,y-3);
    194.       line(x-7,y+3,x-7,y+8);
    195.       line(x-7,y+8,x-3,y+8);
    196.       line(x+3,y+8,x+7,y+8);
    197.       line(x+7,y+8,x+7,y+3);
    198.       line(x+7,y-3,x+7,y-10);
    199.       line(x+7,y-10,x+3,y-10);
    200.     }
    201.  
    202. void Khoidau()
    203.     { window(1,1,80,25);textbackground(0);textcolor(15);clrscr();
    204.       gotoxy(40-5,2);cout<<"CARO GAME";
    205.       window(10,4,26,4);textbackground(1);textcolor(14);clrscr();
    206.       cout<<" Player 1's name ";
    207.       do{ window(14,6,50,6);textbackground(0);clrscr();
    208.       window(14,6,22,6);textbackground(3);textcolor(5);clrscr();
    209.       fflush(stdin);gets(Player1);
    210.     }while(strlen(Player1)>8);
    211.       if(strlen(Player1)==0) strcpy(Player1,"Player 1");
    212.       window(54,4,70,4);textbackground(1);textcolor(14);clrscr();
    213.       cout<<" Player 2's name ";
    214.       do{ window(58,6,79,6);textbackground(0);clrscr();
    215.       window(58,6,66,6);textbackground(3);textcolor(5);clrscr();
    216.       fflush(stdin);gets(Player2);
    217.     }while(strlen(Player2)>8);
    218.       if(strlen(Player2)==0) strcpy(Player2,"Player 2");
    219.       return;
    220.     }
    221.  
    222. void Nen()
    223.     {
    224.       setcolor(1);
    225.       setfillstyle(1,1);
    226.       rectangle(480,1,640,480);
    227.       rectangle(1,460,480,480);
    228.       floodfill(500,200,1);
    229.       floodfill(200,470,1);
    230.       setbkcolor(3);
    231.       setcolor(6);
    232.       for(int i=0; i<24; i++)
    233.       line(1,20*i,480,20*i);
    234.       for(i=0; i<25; i++)
    235.       line(20*i,1,20*i,460);
    236.       settextstyle(1,0,1);
    237.       setcolor(3);
    238.       outtextxy(500,30,"Hang = ");
    239.       outtextxy(500,60,"Cot   = ");
    240.       settextstyle(2,0,5);
    241.       setcolor(15);
    242.       outtextxy(500,150,"Player 1's name");
    243.       outtextxy(500,250,"Player 2's name");
    244.       settextstyle(1,0,3);
    245.       setcolor(5);
    246.       outtextxy(510,170,Player1);
    247.       outtextxy(510,270,Player2);
    248.     }
    249.  
    250. void Phien(char st[], int col,int mau)
    251.     { settextstyle(1,0,3);
    252.       setcolor(mau);
    253.       outtextxy(510,col,st);
    254.     }
    255.  
    256. void KTDH(void)
    257.     {  int L;
    258.        char* grPats = "C:\\borlandc\\BGI";
    259.        do{  int grDR = DETECT;
    260.         int grMD;
    261.         initgraph(&grDR,&grMD,grPats);
    262.         L = graphresult();
    263.         if(L!=grOk)
    264.           { cout<<"\n Loi Khoi tao do hoa: "<<grapherrormsg(L);
    265.         if(L==grFileNotFound) // neu co loi duong dan thi nhap lai
    266.           {  cout<<"\n Cho duong dan toi BGI hoac an <Ctrl-Break> de dung Chuong  trinh\n";
    267.              cout<<"      Duong dan la: ";
    268.              fflush(stdin);
    269.              gets(grPats);
    270.           }
    271.         else exit(0);
    272.           }
    273.       } while(L!=grOk);
    274.        return;
    275.      }




    Các bạn chạy thử rồi cho mình ý kiến nha! Thanks!
    Đã được chỉnh sửa lần cuối bởi iamvtn : 29-10-2007 lúc 07:33 PM.

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Khà khà ! Lúc trước kid cũng có viết cờ caro nhưng chỉ là viết trên giấy chưa hiện thực được , hôm nào cũng phải về viết lại mới được để cài đặt thêm thuật toán tham lam mới nghĩ ra , Nếu Dinh chạy code thành công thì up file exe lên để anh em thử rồi có gì còn góp ý

    Chúc U mã đáo thành công !

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    code này hay đấy nhưng có mấy dòng chú thích bên cạnh sẽ sáng sủa hơn

  4. #4
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    code trên dành cho 2 player với nhau ..vậy có ai viết được player với computer hoặc computet with computer ..bạn nào có code sent cho mình nhé
    cảm ơn trước nhé ..hii

  5. #5
    Ngày gia nhập
    06 2007
    Bài viết
    3

    ban oi,sao no bao loi cho <graphics.h>

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định Code trò chơi cờ caro viết bằng C, mọi người góp ý!

    Chắc U chạy trong visual phải vào boland để chạy vì Visual nó ko có thư viên này .

  7. #7
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Code caro này hình như chỉ dùng bàn phím để chơi phải không bạn? Nếu dc thì bổ sung thêm chuột vào cho dễ chơi. Một người xài chuột còn người kia xài bàn phím. Pro hơn chút xíu đó !!!
    I know... nothing

  8. #8
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Cái code này khá a-ma-tơ bạn ơi. Còn nhiều lỗi nữa. Bạn test thử rồi góp ý nha.

    ......Warning: Đọc kỹ hướng dẫn sử dụng trước khi dùng nha .......

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<dos.h>
    4. #include<string.h>
    5. #include<time.h>
    6. #include<stdlib.h>
    7.  
    8.  
    9. //          CAC BIEN TOAN CUC
    10.  
    11. const int size=13,n=2*size+1;       //THAY DOI size DE DUOC KICH THUOC MOI
    12. const hpos=(80-n)/2-10,     vpos=10;
    13. int top=vpos,bottom=vpos+n-1;
    14. int left=hpos,right=hpos+n-1;
    15. struct STEP
    16. {
    17.     int x,y;
    18. };
    19.  
    20.  
    21. void board();                 //        VE KHUNG
    22. void setMouse();                    //      KHOI DONG MOUSE
    23. void showMouse();               //    HIEN MOUSE
    24. void hideMouse();                   //      AN MOUSE
    25. int  clickMouse(int*,int*); //      NHAN MOUSE
    26. void control();               //        HAM DIEU KHIEN CHINH
    27. void reset(int [20][20],int);   //      KHOI TAO MA TRAN KIEM TRA
    28. int  check(int [20][20],int,int,int);   //  KIEM TRA THANG THUA
    29. void pos(int&,int&);                //  DOI TOA DO THUC SANG TOA DO MA TRAN
    30. void whereXY(int&,int&);        //      LAY TOA DO (X,Y)
    31. void option();                //        MENU TUY CHON LUC CHOI
    32. void time();                       //       HAM LAY THOI GIAN
    33. void menu();                  //        MENU TUY CHON LUC BAT DAU CHOI
    34. void intro();                       //  GIOI THIEU VE LUAT CHOI
    35.  
    36.  
    37.  
    38.  
    39. //              CHUONG TRINH CHINH
    40. //              (CAC HAM O BEN DUOI)
    41. void main()
    42. {
    43.     clrscr();
    44.     textcolor(11);
    45.     setMouse();
    46.     menu();
    47.     control();
    48.     hideMouse();
    49.     setMouse();
    50. }
    51.  
    52. void control()      //  HAM DIEU KHIEN CHINH CUA CHUONG TRINH
    53. {
    54. //do{
    55.     start:
    56.     int x,y,t,color,a[20][20],x1,y1,f,j=-1;
    57.     char c,ch,c1;
    58.     struct STEP step[(size+1)*(size+1)];
    59.  
    60.     textbackground(0);
    61.     window(1,1,80,50);
    62.     showMouse();
    63.     reset(a,size+3);    //  SIZE OF MANG KT = SIZE + 1 + 2
    64.     gotoxy(hpos,vpos);
    65.     gotoxy(60,26);
    66.     textcolor(YELLOW+128);
    67.     cprintf("X di truoc");
    68.     while (1)
    69.     {
    70.  
    71.         if (j==-1) f=0;
    72.         showMouse();
    73.         t=clickMouse(&x,&y);
    74.         x1=x;   y1=y;
    75.         pos(x1,y1);
    76.         x1++;   y1++;
    77.  
    78.                             /*  SU KIEN MOUSE */
    79.         if(t!=0&&x%2==0&&y%2==0&&y>=top&&y<=bottom&&x>=left&&x<=right&&a[x1][y1]==2)
    80.         {
    81.             j++;
    82.             step[j].x=x;    step[j].y=y;a[x1][y1]=1;
    83.  
    84.         /******* GHI GIA TRI VAO MANG KIEM TRA (QUI UOC: X:1,O:0) ******/
    85.  
    86.             hideMouse();
    87.             gotoxy(x,y);
    88.             textcolor(YELLOW);
    89.             cprintf("X");
    90.             gotoxy(1,42);
    91.             cprintf("Khung    : %2d:%2d",x1,y1);
    92.             gotoxy(1,40);
    93.             cprintf("Man hinh : %2d:%2d",x,y);
    94.             gotoxy(1,44);
    95.             textcolor(11);
    96.             cprintf("So nuoc di: %d",j+1);
    97.             textcolor(LIGHTGREEN+128);
    98.             gotoxy(60,26);
    99.             cprintf("Toi luot O");
    100.             textcolor(11);
    101.             gotoxy(52,28);
    102.             cprintf("( BAN PHIM dieu khien )");
    103.             showMouse();
    104.  
    105.             if (check(a,1,x1,y1)==1)
    106.             {
    107.                 c='X';
    108.                 break;
    109.             }
    110.             f=1;
    111.             gotoxy(x,y);
    112.         }
    113.  
    114.         if (f==1)                   //  SU KIEN BAN PHIM
    115.         {
    116.          kb:
    117.           {
    118.             hideMouse();
    119.             do{
    120.                 whereXY(x,y);
    121.                 ch=getch();
    122.                 switch (ch)
    123.  
    124.                     /*****  CAC BUOC DI CHUYEN CUA BAN PHIM  *****/
    125.  
    126.                 {
    127.                     case 77:    gotoxy(x+2,y);  break;  /* CAC HUONG DI CHUYEN */
    128.                     case 75: gotoxy(x-2,y); break;
    129.                     case 72:    gotoxy(x,y-2);  break;
    130.                     case 80: gotoxy(x,y+2); break;
    131.                     case 8 :    goto back;                  /* BACKSPACE : LUI 1 NUOC */
    132.                     case 9 :    if (j>1)
    133.                                     goto back2;             /* TAB : LUI 2 NUOC */
    134.                                 break;
    135.                     case 27:    {
    136.                                     showMouse();         /* ESC  :  THOAT     */
    137.                                     goto exit;
    138.                                 }
    139.                 }
    140.  
    141.             }
    142. while(ch!=13);
    143.  
    144.             whereXY(x,y);
    145.             x1=x;   y1=y;
    146.             pos(x1,y1);
    147.             x1++;   y1++;
    148.           }
    149.         if(a[x1][y1]==2&&x>=left&&x<=right&&y>=top&&y<=bottom)
    150.  
    151.             /*****  CHI DANH KHI O CHUA CO GI VA O TRONG KHUNG  *****/
    152.  
    153.             {
    154.                 j++;
    155.                 step[j].x=x;    step[j].y=y;
    156.  
    157.                 a[x1][y1]=0;
    158.                 textcolor(LIGHTGREEN);
    159.                 cprintf("O");
    160.                 gotoxy(1,42);
    161.                 cprintf("Khung    : %2d:%2d",x1,y1);
    162.                 gotoxy(1,40);
    163.                 cprintf("Man hinh : %2d:%2d",x,y);
    164.                 gotoxy(1,44);
    165.                 textcolor(11);
    166.                 cprintf("So nuoc di: %d",j+1);
    167.                 gotoxy(60,26);
    168.                 textcolor(YELLOW+128);
    169.                 cprintf("Toi luot X");
    170.                 textcolor(11);
    171.                 gotoxy(52,28);
    172.                 cprintf("(  MOUSE dieu khien   )");
    173.                 if (check(a,0,x1,y1)==0)
    174.                 {
    175.                     c='O';
    176.                     showMouse();
    177.                     break;
    178.                 }
    179.                 f=0;
    180.                 gotoxy(x,y);
    181.             }   else goto kb;       //  QUAY LAI kb
    182.         }
    183.  
    184.         if (t==1&&x>=60&&x<=70)
    185.             if (y==20)      //  CLICK MOUSE VAO VI TRI THOAT
    186.                 goto exit;
    187.             else if (y==16)
    188.                 goto Continue;
    189.             else if (y==18)
    190.             {
    191.                 hideMouse();
    192.                 menu();
    193.             }
    194.             else if (y==14&&j>=0)   goto back2;
    195.             else if (y==12&&j>=0)
    196.             {
    197.                 goto back;
    198.  
    199.         /*******************    LUI LAI 2 NUOC DI **********************/
    200.  
    201.              back2:
    202.                 x1=x=step[j].x; y1=y=step[j].y;
    203.                 pos(x1,y1);
    204.                 x1++;   y1++;
    205.                 a[x1][y1]=2;
    206.                 gotoxy(step[j].x,step[j].y);
    207.                 if (x1>1&&x1<size+1&&y1>1&&y1<size+1)   c1='Å';
    208.                 if (x1==1&&y1>1&&y1<size+1)             c1='Ã';
    209.                 if (x1==size+1&&y1>1&&y1<size+1)            c1='´';
    210.                 if  (x1>1&&x1<size+1&&y1==1)                c1='Â';
    211.                 if (x1>1&&x1<size+1&&y1==size+1)            c1='Á';
    212.                 if (x1==1&&y1==1)                               c1='Ú';
    213.                 if (x1==1&&y1==size+1)                      c1='À';
    214.                 if (x1==size+1&&y1==1)                      c1='¿';
    215.                 if (x1==size+1&&y1==size+1)             c1='Ù';
    216.                 cprintf("%c",c1);
    217.                 j--;
    218.                 gotoxy(1,44);
    219.                 textcolor(11);
    220.                 cprintf("So nuoc di: %d",j);
    221.                 f=1-f;
    222.                 gotoxy(x,y);
    223.  
    224.         /*******************    LUI LAI 1 NUOC DI**********************/
    225.  
    226.              back:
    227.                 x1=x=step[j].x; y1=y=step[j].y;
    228.                 pos(x1,y1);
    229.                 x1++;   y1++;
    230.                 a[x1][y1]=2;
    231.                 gotoxy(step[j].x,step[j].y);
    232.                 if (x1>1&&x1<size+1&&y1>1&&y1<size+1)   c1='Å';
    233.                 if (x1==1&&y1>1&&y1<size+1)             c1='Ã';
    234.                 if (x1==size+1&&y1>1&&y1<size+1)            c1='´';
    235.                 if  (x1>1&&x1<size+1&&y1==1)                c1='Â';
    236.                 if (x1>1&&x1<size+1&&y1==size+1)            c1='Á';
    237.                 if (x1==1&&y1==1)                               c1='Ú';
    238.                 if (x1==1&&y1==size+1)                      c1='À';
    239.                 if (x1==size+1&&y1==1)                      c1='¿';
    240.                 if (x1==size+1&&y1==size+1)             c1='Ù';
    241.                 cprintf("%c",c1);
    242.                 j--;
    243.                 gotoxy(1,44);
    244.                 textcolor(11);
    245.                 cprintf("So nuoc di: %d",j+1);
    246.                 f=1-f;
    247.                 gotoxy(x,y);
    248.  
    249.             }
    250.  
    251.     }
    252.  
    253.  
    254.     if (c=='X'||c=='O')
    255.     {
    256.         gotoxy(1,40);
    257.         textcolor(YELLOW+BLINK);
    258.         cprintf("Co %c da gianh chien thang",c);
    259.         gotoxy(50,48);
    260.         cprintf("An phim bat ki de tiep tuc");
    261.  
    262.     }
    263.     else
    264.     {
    265.         gotoxy(1,40);
    266.         textcolor(YELLOW+BLINK);
    267.         cprintf("Ket thuc");
    268.     }
    269.     getch();
    270.  
    271.     Continue:
    272.     hideMouse();
    273.     //clrscr();
    274.     textbackground(15);
    275.     textcolor(0);
    276.     window(20,18,40,28);
    277.     clrscr();
    278.     textcolor(BLACK);
    279.     cprintf("\n Moi ban chon : ...");
    280.     textbackground(BLUE);
    281.     window(25,21,35,23);
    282.     clrscr();
    283.     textcolor(WHITE);
    284.     cprintf("\n  TIEP TUC");
    285.     textbackground(BLUE);
    286.     window(25,25,35,27);
    287.     clrscr();
    288.     textcolor(WHITE);
    289.     cprintf("\n   THOAT");  textcolor(GREEN);
    290.     showMouse();
    291.     while (1)
    292.     {
    293.         t=clickMouse(&x,&y);
    294.         if (t==1&&x>=25&&x<=35)
    295.         {
    296.             if  ((y>=21)&&(y<=23))
    297.             {       clrscr();
    298.                 textbackground(BLACK);
    299.                 window(25,21,35,23);
    300.                 clrscr();
    301.                 textcolor(WHITE);
    302.                 cprintf("\n  TIEP TUC");
    303.                 delay(120);
    304.                 hideMouse();
    305.                 textbackground(0);
    306.                 window(1,1,80,50);
    307.                 clrscr();
    308.                 board();
    309.                 option();
    310.                 goto start;
    311.             }
    312.             else if ((y>=25)&&(y<=27))
    313.             {
    314.                 clrscr();
    315.                 textbackground(BLACK);
    316.                 window(25,25,35,27);
    317.                 clrscr();
    318.                 textcolor(WHITE);
    319.                 cprintf("\n   THOAT");
    320.                 delay(120);
    321.                 hideMouse();
    322.                 exit(0);
    323.             }
    324.         }
    325.     }
    326.  
    327.     exit:
    328.     hideMouse();
    329.     //clrscr();
    330.     textbackground(15);
    331.     window(30,10,50,16);
    332.     clrscr();
    333.     textcolor(BLUE);
    334.     cprintf("\n Thoat khoi TRO CHOI");
    335.     textbackground(BLUE);
    336.     window(35,13,45,13);
    337.     clrscr();
    338.     textcolor(WHITE);
    339.     cprintf("  DONG Y");
    340.     textbackground(BLUE);
    341.     window(35,15,45,15);
    342.     clrscr();
    343.     textcolor(WHITE);
    344.     cprintf("  HUY BO");
    345.     showMouse();
    346.     while (1)
    347.     {
    348.         t=clickMouse(&x,&y);
    349.         if (t==1&&x>=35&&x<=45)
    350.             if  (y==15)
    351.             {
    352.                 hideMouse();
    353.                 textbackground(0);
    354.                 window(1,1,80,50);
    355.                 clrscr();
    356.                 board();
    357.                 option();
    358.                 goto start;
    359.             }
    360.             else if (y==13)
    361.             {
    362.                 hideMouse();
    363.                 exit(0);
    364.             }
    365.     }
    366.  
    367.  
    368. //}while(getch()!=27);
    369.  
    370.  
    371.  
    372. }
    373.  
    374.  
    375. //              VE KHUNG
    376.  
    377. void board()
    378. {
    379.  
    380.     int i,j;
    381.  
    382.     /* CAC KY TU DAC BIET :
    383.  
    384.                 197 :Å ; 196 :Ä ; 195 :Ã
    385.  
    386.                 194 :Â ; 192 :À ; 191 :¿
    387.  
    388.                 180 :´ ; 218 :Ú ; 217 :Ù
    389.  
    390.                 193 :Á ; 179 :³   */
    391.  
    392.  
    393.     textcolor(11);
    394.     //              GIOI THIEU VE LUAT CHOI
    395.  
    396.     gotoxy(8,1);
    397.     cprintf("*** DE TAI 5 : CHUONG TRINH DANH CARO GIUA NGUOI VA NGUOI ***");
    398.     gotoxy(23,3);
    399.     cprintf("<--- LOP 051102 - KHOA CNTT --->");
    400.     gotoxy(33,5);
    401.     cprintf("*** (^_^) ***");
    402.     gotoxy(9,7);
    403.     cprintf("--- Nho danh vao giao diem cua cac duong nha _THANK YOU_ ---");
    404.  
    405.  
    406.             /*****          VE KHUNG                *****/
    407.  
    408.     for (i=0;i<n;i++)
    409.         for (j=0;j<n;j++)
    410.         {
    411.             gotoxy(hpos+j,vpos+i);
    412.             if (i==0&&j==0)     cprintf("Ú");
    413.             if (i==0&&j==n-1)   cprintf("¿");
    414.             if (i==n-1&&j==0)       cprintf("À");
    415.             if (i==n-1&&j==n-1)     cprintf("Ù");
    416.             if (i%2==0&&j%2!=0) cprintf("Ä");
    417.             if (i%2!=0&&j%2==0) cprintf("³");
    418.             if (i==n-1&&j%2==0&&j>0&&j<n-1)     cprintf("Á");
    419.             if (i%2==0&&j==n-1&&i>0&&i<n-1)     cprintf("´");
    420.             if (i==0&&j%2==0&&j<n-1&&j>0)       cprintf("Â");
    421.             if (i%2==0&&j==0&&i>0&&i<n-1)       cprintf("Ã");
    422.             if (i>0&&i<n-1&&i%2==0&j>0&&j<n-1&&j%2==0) cprintf("Å");
    423.         }
    424.  
    425.             /*****        TEXT CHAY QUANG CAO           *****/
    426.  
    427.     char str[]={'C','h','a','o',' ','m','u','n','g',' ','c','a','c',' ','b','a','n',
    428.                      ' ','d','e','n',' ','v','o','i',' ','t','r','o',' ','c','h','o','i',' ',
    429.                      'C','A','R','O',NULL};
    430.  
    431.  
    432.     delay(250);
    433.     i=0;
    434.     while (str[i]!=NULL)
    435.     {
    436.     delay(20);
    437.     gotoxy(1+i,50);
    438.     cprintf("%c",str[i]);
    439.     i++;
    440.     }
    441.  
    442. }
    443.  
    444. void option()
    445. {
    446.     textbackground(WHITE);
    447.     window(58,10,72,22);
    448.     clrscr();
    449.  
    450.     textbackground(GREEN);
    451.     window(60,12,70,12);
    452.     clrscr();
    453.     textcolor(12);
    454.     cprintf("LUI 1 NUOC");
    455.  
    456.     textbackground(GREEN);
    457.     window(60,14,70,14);
    458.     clrscr();
    459.     textcolor(12);
    460.     cprintf("LUI 2 NUOC");
    461.  
    462.     textbackground(GREEN);
    463.     window(60,16,70,16);
    464.     clrscr();
    465.     textcolor(12);
    466.     cprintf("  VAN MOI");
    467.  
    468.     textbackground(GREEN);
    469.     window(60,18,70,18);
    470.     clrscr();
    471.     textcolor(12);
    472.     cprintf("    MENU");
    473.  
    474.     textbackground(GREEN);
    475.     window(60,20,70,20);
    476.     clrscr();
    477.     textcolor(12);
    478.     cprintf("   THOAT");
    479.  
    480.     textbackground(WHITE);
    481.     window(50,30,76,45);
    482.     clrscr();
    483.     textcolor(BLUE);
    484.     gotoxy(6,2);
    485.     cprintf("*** BAN PHIM ***");
    486.     gotoxy(2,4);
    487.     cprintf("- BACKSPACE : LUI 1 NUOC");
    488.     gotoxy(2,6);
    489.     cprintf("- TAB       : LUI 2 NUOC");
    490.     gotoxy(2,8);
    491.     cprintf("- ESC       : THOAT");
    492.     textcolor(BLUE+128);
    493.     gotoxy(2,10);
    494.     cprintf("* DUNG AN PHIM HAY NHAP *");
    495.     gotoxy(2,11);
    496.     cprintf("*   CHUOT KHI CHUA TOI  *");
    497.     gotoxy(2,12);
    498.     cprintf("*    LUOT DIEU KHIEN    *");
    499.     gotoxy(2,14);
    500.     cprintf("- dac biet la ENTER va  -");
    501.     gotoxy(2,15);
    502.     cprintf("- cac nut o tren        -");
    503.     delay(1500);
    504.     textcolor(BLUE);
    505.     gotoxy(2,10);
    506.     cprintf("* DUNG AN PHIM HAY NHAP *");
    507.     gotoxy(2,11);
    508.     cprintf("*   CHUOT KHI CHUA TOI  *");
    509.     gotoxy(2,12);
    510.     cprintf("*    LUOT DIEU KHIEN    *");
    511.     gotoxy(2,14);
    512.     cprintf("- dac biet la ENTER va  -");
    513.     gotoxy(2,15);
    514.    cprintf("- cac nut o tren        -");
    515.  
    516.  
    517.     textbackground(0);
    518.     window(1,1,80,50);
    519. }
    520.  
    521. void time()
    522. {
    523.  
    524.     struct time t;
    525.  
    526.     textbackground(0);
    527.     window(55,18,75,18);
    528.     clrscr();
    529.     textcolor(11);
    530.     gettime(&t);
    531.     clrscr();
    532.     textcolor(11);
    533.     textbackground(0);
    534.     window(1,1,80,50);
    535. }
    536.  
    537.             /*****      MENU TUY CHON CHINH       *****/
    538.  
    539. void menu()
    540. {
    541.     menu:
    542.     int i,x,y,t;
    543.     char s[50];
    544.     textbackground(0);
    545.     window(1,1,80,50);
    546.     clrscr();
    547.     textbackground(15);
    548.     printf("\n                   _______     ________     ________     ________\n");
    549.     printf("                  / _____/\\   / ____  /\\   / ____  /\\   / ____  /\\\n");
    550.     printf("                 / /\\____\\/  / /\\__/ / /  / /___/ / /  / /\\__/ / /\n");
    551.     printf("                / / /       / /_/_/ / /  / _   __/ /  / / / / / /\n");
    552.     printf("               / /_/__     / ____  / /  / / \\ \\__\\/  / /_/_/ / /\n");
    553.     printf("              /______/\\   /_/\\__/_/ /  /_/ / \\_\\    /_______/ /\n");
    554.     printf("              \\______\\/   \\_\\/  \\_\\/   \\_\\/   \\_\\   \\_______\\/\n");
    555.     window(20,15,60,32);
    556.     clrscr();
    557.     sprintf(s,"\n Chao mung cac ban den voi tro choi CARO");
    558.     textcolor(BLUE);
    559.     delay(300);
    560.     i=0;
    561.     while (s[i]!=NULL)
    562.     {
    563.         delay(22);
    564.         gotoxy(1+i,50);
    565.         cprintf("%c",s[i]);
    566.         i++;
    567.     }
    568.     textbackground(9);
    569.     window(30,20,50,22);
    570.     clrscr();
    571.     textcolor(12);
    572.     cprintf("\n    Bat dau choi");
    573.     textbackground(9);
    574.     window(30,24,50,26);
    575.     clrscr();
    576.     textcolor(12);
    577.     cprintf("\n    Xem luat choi");
    578.     textbackground(9);
    579.     window(30,28,50,30);
    580.     clrscr();
    581.     textcolor(12);
    582.     cprintf("\n        Thoat");
    583.     showMouse();
    584.     while (1)
    585.     {
    586.         t=clickMouse(&x,&y);
    587.         if (t==1&&x>=30&&x<=50)
    588.             if  ((y>=20)&&(y<=22))
    589.             {
    590.                 clrscr();
    591.                 textbackground(BLACK);
    592.                 window(30,20,50,22);
    593.                 clrscr();
    594.                 textcolor(WHITE);
    595.                 cprintf("\n    Bat dau choi");
    596.                 delay(120);
    597.                 hideMouse();
    598.                 textbackground(0);
    599.                 window(1,1,80,50);
    600.                 clrscr();
    601.                 board();
    602.                 option();
    603.                 gotoxy(hpos,vpos);
    604.                 textcolor(11);
    605.                 break;  //  goto start;
    606.             }
    607.             else if ((y>=28)&&(y<=30))
    608.             {
    609.                 clrscr();
    610.                 textbackground(BLACK);
    611.                 window(30,28,50,30);
    612.                 clrscr();
    613.                 textcolor(WHITE);
    614.                 cprintf("\n        Thoat");
    615.                 delay(120);
    616.                 hideMouse();
    617.                 exit(0);
    618.             }
    619.             else if ((y>=24)&&(y<=26))
    620.             {
    621.                 clrscr();
    622.                 textbackground(BLACK);
    623.                 window(30,24,50,26);
    624.                 clrscr();
    625.                 textcolor(WHITE);
    626.                 cprintf("\n    Xem luat choi");
    627.                 delay(120);
    628.                 hideMouse();
    629.                 textbackground(0);
    630.                 window(1,1,80,50);
    631.                 clrscr();
    632.                 intro();
    633.                 goto menu;
    634.             }
    635.  
    636.         showMouse();
    637.     }
    638.  
    639. }
    640.  
    641.             /*****      GIOI THIEU LUAT CHOI            *****/
    642.  
    643. void intro()
    644. {
    645.     int x,y,i=0,t;
    646.     char s[50];
    647.     textbackground(0);
    648.     window(1,1,80,50);
    649.     clrscr();
    650.     textbackground(WHITE);
    651.     window(10,10,70,22);
    652.     clrscr();
    653.     textcolor(BLUE);
    654.     gotoxy(1,2);    cprintf("     ***  Luat choi co CARO (GOMOKU) rat don gian ***");
    655.     gotoxy(1,4);    cprintf(" - Tran dau dien ra giua 2 quan co : X va O.");
    656.     gotoxy(1,6);    cprintf(" - Ben chien thang la ben di duoc 5 quan co lien tiep theo   hang ngang, doc, hay cheo ma khong bi doi phuong chan truoc 2 dau.");
    657.     sprintf(s,"* Danh lien tiep 6 quan co tro len khong tinh thang *");
    658.  
    659.     while (s[i]!=NULL)
    660.     {
    661.         delay(25);
    662.         gotoxy(5+i,10);
    663.         cprintf("%c",s[i]);
    664.         i++;
    665.     }
    666.     delay(200);
    667.     gotoxy(5,10);
    668.     textcolor(BLUE+128);
    669.     cprintf(s);
    670.     textbackground(GREEN);
    671.     window(20,21,30,21);
    672.     clrscr();
    673.     textcolor(RED);
    674.     cprintf("    Choi");
    675.     textbackground(GREEN);
    676.     window(35,21,45,21);
    677.     clrscr();
    678.     textcolor(RED);
    679.     cprintf("    Menu");
    680.     textbackground(GREEN);
    681.     window(50,21,60,21);
    682.     clrscr();
    683.     textcolor(RED);
    684.     cprintf("   Thoat");
    685.     showMouse();
    686.     while (1)
    687.     {
    688.         t=clickMouse(&x,&y);
    689.         if (t==1&&y==21)
    690.             if  (x>=20&&x<=30)
    691.             {
    692.                 hideMouse();
    693.                 textbackground(0);
    694.                 window(1,1,80,50);
    695.                 clrscr();
    696.                 board();
    697.                 option();
    698.                 control();  //  goto start;
    699.             }
    700.             else if (x>=35&&x<=45)
    701.             {
    702.                 hideMouse();
    703.                 break;
    704.             }
    705.             else if (x>=50&&x<=60)
    706.             {
    707.                 hideMouse();
    708.                 exit(0);
    709.             }
    710.  
    711.  
    712.         showMouse();
    713.     }
    714.  
    715.  
    716.  
    717.  
    718. }
    719.  
    720. void setMouse()                 //  KHOI DONG MOUSE
    721. {
    722.     union REGS reg;
    723.     reg.x.ax=0x0000;
    724.     int86(0x33,&reg,&reg);
    725. }
    726.  
    727. void showMouse()                //  HIEN MOUSE
    728. {
    729.     union REGS reg;
    730.     reg.x.ax=0x0001;
    731.     int86(0x33,&reg,&reg);
    732. }
    733.  
    734. void hideMouse()                //  AN MOUSE
    735. {
    736.     union REGS reg;
    737.     reg.x.ax=0x0002;
    738.     int86(0x33,&reg,&reg);
    739. }
    740.  
    741. int clickMouse(int *x,int *y)   // NHAN MOUSE
    742. {
    743.     union REGS reg;
    744.     unsigned i;
    745.     reg.x.ax=0x05;
    746.     reg.x.bx=0;
    747.     int86(0x33,&reg,&reg);
    748.     *x=reg.x.cx/8+1;
    749.     *y=reg.x.dx/8+1;
    750.     i=reg.x.bx&1;
    751.     return i;
    752. }
    753.  
    754. void reset(int a[20][20],int size)  //  KHOI TAO MA TRAN KIEM TRA
    755. {
    756.     int i,j;
    757.     for (i=0;i<size;i++)
    758.         for (j=0;j<size;j++)
    759.             a[i][j]=2;
    760. }
    761.  
    762.             /*****      KIEM TRA THANG THUA     *****/
    763.  
    764. int check(int a[20][20],int n,int x,int y)
    765. {
    766.     int i,j,k1=0,k2=0,k3=0,k4=0;
    767.  
    768.     i=j=0;
    769.     while (a[x][y+i]==n)    i++;        //  KIEM TRA HANG DOC
    770.     while (a[x][y-j]==n)    j++;
    771.     if (a[x][y+i]==2 || a[x][y-j]==2)   //  5 QUAN CO BI CHAN 2 DAU KHONG AN
    772.         k1=i+j-1;
    773.  
    774.  
    775.     i=j=0;
    776.     while (a[x+i][y]==n) i++;     //    KIEM TRA HANG NGANG
    777.     while (a[x-j][y]==n)    j++;
    778.     if (a[x+i][y]==2 || a[x-j][y]==2)
    779.         k2=i+j-1;
    780.  
    781.  
    782.     i=j=0;
    783.     while (a[x+i][y+i]==n)  i++;    //  KIEM TRA DUONG "\"
    784.     while   (a[x-j][y-j]==n)    j++;
    785.     if (a[x+i][y+i]==2 || a[x-j][y-j]==2)
    786.         k3=i+j-1;
    787.  
    788.  
    789.     i=j=0;
    790.     while (a[x+i][y-i]==n)  i++;    //  KIEM TRA DUONG "/"
    791.     while   (a[x-j][y+j]==n)    j++;
    792.     if (a[x+i][y-i]==2 || a[x-j][y+j]==2)
    793.         k4=i+j-1;
    794.  
    795.  
    796.     gotoxy(1,46);
    797.     textcolor(11);
    798.     cprintf("Doc:%d - Ngang%d - \"\\\"%d - \"/\"%d",k1,k2,k3,k4);
    799.  
    800.     if (k1==5||k2==5||k3==5||k4==5) return n;
    801.  
    802.     return -1;
    803. }
    804.  
    805.  
    806. void pos(int &x1,int &y1)   //DOI TOA DO THUC (X,Y) SANG TOA DO MA TRAN (X1,Y1)
    807. {
    808.     x1=(x1-hpos)/2;
    809.     y1=(y1-vpos)/2;
    810. }
    811.  
    812. void whereXY(int &x,int &y) //  TIM TOA DO (X,Y)
    813. {
    814.     x=wherex();
    815.     y=wherey();
    816. }
    I know... nothing

  9. #9
    Ngày gia nhập
    06 2007
    Nơi ở
    SN06 - 70 Trương Định - HBT - HN
    Bài viết
    36

    222,,, đánh giá ý kiến sản phẩm giùm mình luôn đi.....

    Có kèm code, file .exe ....

    chạy trên dos,,, BÀN CỜ VÔ GIỚI HẠN.....VÀ TỰ ĐỘNG DỊCH CHUYỂN BÀN CỜ
    Attached Thumbnails Attached Thumbnails untitled.JPG  
    Attached Files Attached Files


    =====================================
    XWAYSTYLE ---------> Brings joy to milions.....
    Intel(R) Pentium 4(R) 2.8GHz Main IntelD845Pemy (Socket 478) RAM 1024Mb VGAFX5200 128Mb 128Bit HDD Maxtor 160Gb PATA Sound Blaster live 5.1 Gamer

    Windows Vista Ultimate Sp1 (activated)
    Rating : 2.5 Mark
    Theme: Windows Aero (very nice!)

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

    mình chạy thử, nhưng sao nhìu lỗi wa1 vậy bạn ơi, mới đầu có 1 lỗi sửa xong(lỗi chữ "i" như bạn "emhocc" đã nói) thì nó lại hiện lên 13 lỗi khác bạn ơi. mình hok biết sửa lỗi từ đâu nữa.hix

    Trích dẫn Nguyên bản được gửi bởi nguyen190887 Xem bài viết
    Mình có code xài chuột nhưng mà chỉ là người đánh với người thôi, chưa tìm hiểu cái dzụ người và máy "choảng nhau"
    code bạn share rất tuyệt, mình chơi thử rùi, design rất cool.

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

  1. Source code Game caro viết bằng C#
    Gửi bởi vibzz_90 trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 13
    Bài viết cuối: 06-09-2014, 02:29 PM
  2. Trò chơi caro viết bằng VC++ (Đầy đủ mã nguồn)
    Gửi bởi anhhat trong diễn đàn Dự án & Source code VC++
    Trả lời: 13
    Bài viết cuối: 23-02-2014, 06:26 AM
  3. Viết trò chơi cờ caro | Hàm nhập luân phiên trên C++
    Gửi bởi Mr.S trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 25-11-2011, 08:09 AM
  4. Viết trò chơi Caro bằng C
    Gửi bởi lucky4 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 25-11-2011, 08:07 AM
  5. viết code caro trên Visual C++ 6.0
    Gửi bởi anhhung90 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 30-10-2009, 08: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