Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 18 kết quả

Đề tài: Code game Con rắn trong Text mode

  1. #1
    Ngày gia nhập
    02 2007
    Bài viết
    27

    Mặc định Code game Con rắn trong Text mode

    Đây là game Rắn săn mồi viết trong Text mode , vì em mới làm quen với C nên ko biết xài Graphic.

    C Code:
    1. /*    SNAKE GAME
    2.    DHDL Van Lang
    3.    Class: K12T1
    4.    Total size: 8.5 KB
    5. */
    6.  
    7. #include<stdio.h>
    8. #include<conio.h>
    9. #include<dos.h>
    10. #include<stdlib.h>
    11. #include<ctype.h>
    12. #include<time.h>
    13.  
    14. // Directions of the Snake
    15. #define GO_UP     1
    16. #define GO_DOWN   2
    17. #define GO_RIGHT -1
    18. #define GO_LEFT  -2
    19.  
    20. //Arrow keys' code
    21. #define BT_UP    0x48 // button UP has code 0x48
    22. #define BT_DOWN  0x50
    23. #define BT_RIGHT 0x4d
    24. #define BT_LEFT  0x4b
    25.  
    26. //Limits
    27. #define TOP_LIM   3
    28. #define BOT_LIM   20  //Bottom limit
    29. #define LEFT_LIM  1
    30. #define RIGHT_LIM 40
    31.  
    32. #define len       3  //At the beginning, the Snake has 3 dots.
    33.  
    34. //Declarations
    35. typedef struct coord
    36. {
    37.     int x;
    38.     int y;
    39. } Point;
    40.  
    41. Point Snake[100]={LEFT_LIM+1,TOP_LIM+1,LEFT_LIM+1,TOP_LIM+1,LEFT_LIM+1,TOP_LIM+1}; //Define the Snake
    42. int intNew_len = len;
    43. int intHead    = len-1;    //its head is the 3th dot
    44. int intTail    = 0;        //its tail is the first dot
    45. int intDir     = GO_RIGHT; //At the beginning, the Snake's direction is to the RIGHT.
    46. int intScore   = 0;        //Eating one food, gaining one score, 10 scores for 1 level.
    47. int intLevel   = 1;        //if level+1,the speed will increase.
    48. int intAmount  = 10;       //if score > amount, level+1, amount+10
    49. int intSpeed   = 300;      //speed of the Snake, less -> faster, more -> slower
    50. char chrPress  = BT_RIGHT; //pressed button;
    51.  
    52. // Prototypes
    53. void drawYard(void);       // Draw playing yard
    54. int  onSnake(Point point); // Check whether a point is on the Snake
    55. void setLevel(void);       // Increase level
    56. void scoreCount(void);     // Count score
    57. void drawFood(void);       // Generate food
    58. void eatFood(void);        // Snake eats food
    59. void drawSnake(void);      // Draw beginning Snake
    60. void newHeadTail(void);    // After each move, the tail and head's positions are changed
    61. void moveSnake(char c);    // Make the Snake run
    62. int  checkStatus(int tempX,int tempY); // Check whether the Snake dies or not
    63. void refreshSnake(void);  // Snake after re-play
    64. void refreshScore(void); // Score after re-play
    65. void Dead(void);         // when the Snake dies
    66. char quitGame(void);     // say good bye
    67.  
    68.  
    69. void main()
    70. {
    71.     clrscr();
    72.     drawYard();
    73.     randomize();
    74.     drawFood();
    75.     drawSnake();
    76.     while(1)
    77.         {
    78.          play:
    79.  
    80.          while (!kbhit()) //While no key pressed
    81.             {
    82.                 moveSnake(chrPress);
    83.                 if (checkStatus(Snake[intHead].x,Snake[intHead].y)==1)
    84.                    {
    85.                      Dead();
    86.                      chrPress=BT_RIGHT;
    87.                      intDir = GO_RIGHT;//When re-play,the snake runs to the right
    88.                    }
    89.                 delay(intSpeed);
    90.  
    91.             }
    92.          chrPress= getch();
    93.          if(chrPress==0xd)
    94.             {
    95.             chrPress= quitGame();
    96.             if(chrPress=='N') goto play;
    97.             else if(chrPress=='Y')
    98.                     {
    99.                         clrscr();
    100.                         printf("Bye! Bye!");
    101.                         delay(500);
    102.                         exit(1);}
    103.             }
    104.         }
    105. }
    106.  
    107.  
    108. void drawYard() //Draw playing yard
    109. {
    110.     register int i;
    111.     //Trade mark
    112.     gotoxy(LEFT_LIM,TOP_LIM-2);
    113.     printf("Created by Chau Nguyen Thanh Vu~ T06-3546 K12T01");
    114.  
    115.     // Ve ÉÍÍÍÍÍÍÍÍÍ»
    116.     gotoxy(LEFT_LIM, TOP_LIM); // (10,5)
    117.     printf("%c",201); // Top left corner É
    118.  
    119.     for(i=LEFT_LIM+1; i<RIGHT_LIM; i++)
    120.         {
    121.           gotoxy(i,TOP_LIM);
    122.           printf("%c",205);    //Top horizonal line Í
    123.         }
    124.  
    125.     printf("%c",187); // Top right corner »
    126.  
    127.  
    128.     //Ve ÈÍÍÍÍÍÍÍÍÍͼ
    129.     gotoxy(LEFT_LIM, BOT_LIM); //(10,40)
    130.     printf("%c",200); // Bottom left corner È
    131.  
    132.     for(i=LEFT_LIM+1; i<RIGHT_LIM; i++)
    133.         printf("%c",205);  // Bottom horizonal line  Í
    134.  
    135.     printf("%c",188); //Bottom right corner ¼
    136.  
    137.     for(i=TOP_LIM+1; i<BOT_LIM; i++)
    138.         {
    139.           gotoxy(LEFT_LIM,i);
    140.           printf("%c",186); // Left vertical line º
    141.  
    142.         }
    143.  
    144.  
    145.     for(i=TOP_LIM+1; i<BOT_LIM; i++)
    146.         {
    147.           gotoxy(RIGHT_LIM,i);
    148.           printf("%c",186); // Right vertical line º
    149.         }
    150.  
    151.     //Instructions
    152.     gotoxy(RIGHT_LIM+2,TOP_LIM);
    153.     printf("Press any ARROW key to play");
    154.     gotoxy(RIGHT_LIM+2,TOP_LIM+2);
    155.     printf("Press ENTER to exit \n");
    156.     gotoxy(RIGHT_LIM+2,TOP_LIM+6);
    157.     printf("Speed: %3.d milisecs/step",intSpeed);
    158.  
    159.     //Title
    160.     gotoxy(LEFT_LIM+5,TOP_LIM);
    161.     printf(" Level %d ",intLevel);
    162.     gotoxy(LEFT_LIM+25,TOP_LIM);
    163.     printf(" Score %d ",intScore);
    164. }
    165.  
    166.  
    167. int onSnake(Point point)// Check whether a point is on the Snake
    168. {
    169.  register int i;
    170.  for(i=0;i<intNew_len-1;i++)
    171.     if( (point.x == Snake[i].x)&&(point.y == Snake[i].y) )
    172.         return 1;
    173.  return 0;
    174. }
    175.  
    176.  
    177. void setLevel()
    178. {
    179.     intScore++;
    180.  
    181.     if ( (intScore>=intAmount)&&
    182.          (intLevel<7) )         //Max level is 7, the Snake run crazily.
    183.         {
    184.          intAmount+= 10;
    185.          intLevel++;
    186.          intSpeed -= 49 ; //Decrease delay time, increase speed
    187.         }
    188.     if (intLevel == 7)
    189.         {
    190.           gotoxy(LEFT_LIM+14,TOP_LIM);
    191.           printf("(Max)");
    192.         }
    193.     gotoxy(LEFT_LIM+25,TOP_LIM);
    194.     printf(" Score: %d ",intScore);
    195.     gotoxy(LEFT_LIM+5,TOP_LIM);
    196.     printf(" Level %d ",intLevel);
    197.     gotoxy(RIGHT_LIM+2,TOP_LIM+6);
    198.     printf("Speed: %3.d milisecs/step",intSpeed);
    199. }
    200.  
    201. Point food = Snake[intHead];
    202. void drawFood()
    203. {
    204.  
    205.  while( (onSnake(food) != 0)||(food.x == 0) )
    206.         /* If food appears on the snake's body,
    207.            it must be re-generated until it appears
    208.            somewhere else */
    209.     {
    210.         food.x = LEFT_LIM+2+random(RIGHT_LIM - LEFT_LIM-3);
    211.         food.y = TOP_LIM+2+random(BOT_LIM - TOP_LIM-3);
    212.     }
    213.  gotoxy(food.x,food.y);
    214.  textcolor(CYAN);
    215.  cprintf("*");
    216.  return;
    217. }
    218.  
    219.  
    220. void eatFood()
    221. {
    222.  intNew_len++;
    223.  intHead++;
    224.  Snake[intHead].x = food.x;
    225.  Snake[intHead].y = food.y;
    226.  gotoxy(food.x,food.y);
    227.  textcolor(WHITE);
    228.  cprintf("@");
    229.  food = Snake[intHead-1]; // Put food on the snake's body, so that
    230.                        //   the drawFood() function can run
    231.  setLevel();
    232.  drawFood();
    233.  return;
    234. }
    235.  
    236.  
    237. void drawSnake() //At the beginning, the snake is a POINT.
    238. {
    239.  gotoxy(LEFT_LIM+1,TOP_LIM+1);
    240.  printf("@");
    241.  gotoxy(LEFT_LIM,TOP_LIM);
    242. }
    243.  
    244.  
    245. void newHeadTail() /* After each move, the intHead and the tail's positions
    246.                         are changed. */
    247. {
    248.     register int i;
    249.     for(i=0;i<intNew_len-1;i++)
    250.         Snake[i]= Snake[i+1];
    251. }
    252.  
    253.  
    254. char chrLast_button; //the last button pressed
    255.  
    256. void moveSnake(char chrButton)
    257. {
    258.  int arrow_pressed=0;
    259.  
    260.  while( arrow_pressed!=1 )
    261.     {
    262.        if(
    263.             (chrButton==BT_UP)||
    264.             (chrButton==BT_DOWN)||
    265.             (chrButton==BT_LEFT)||
    266.             (chrButton==BT_RIGHT)
    267.           )
    268.          {
    269.             gotoxy(Snake[intTail].x,Snake[intTail].y); //Erase the tail
    270.             textcolor(BLACK);
    271.             cprintf(" ");
    272.  
    273.             newHeadTail();
    274.  
    275.             switch (chrButton)
    276.               {
    277.                 case BT_UP:
    278.                     if( (intDir!=GO_DOWN)) /* While the Snake is going DOWN,
    279.                                               it cannot go UP. */
    280.                         {
    281.                             if ( (Snake[intHead].y-1 == food.y)&&
    282.                                  (Snake[intHead].x == food.x) )
    283.                               {
    284.                                 Snake[intHead].y -=1;
    285.                                 eatFood();
    286.                               }
    287.  
    288.                             Snake[intHead].y -=1;
    289.                             intDir = GO_UP;
    290.                         }
    291.                     else Snake[intHead].y +=1;
    292.                     break;
    293.  
    294.  
    295.                 case BT_DOWN:
    296.                     if( (intDir!=GO_UP) )
    297.                         {
    298.                             if ( (Snake[intHead].y+1 == food.y)&&
    299.                                  (Snake[intHead].x == food.x) )
    300.                               {
    301.                                 Snake[intHead].y +=1;
    302.                                 eatFood();
    303.                               }
    304.  
    305.                             Snake[intHead].y +=1;
    306.                             intDir = GO_DOWN;
    307.                         }
    308.                     else Snake[intHead].y -=1;
    309.                     break;
    310.                 case BT_LEFT:
    311.                     if( (intDir!=GO_RIGHT) )
    312.                         {
    313.                             if ( (Snake[intHead].x-1 == food.x)&&
    314.                                  (Snake[intHead].y == food.y) )
    315.                               {
    316.                                 Snake[intHead].x -=1;
    317.                                 eatFood();
    318.                               }
    319.  
    320.                             Snake[intHead].x -=1;
    321.                             intDir = GO_LEFT;
    322.                         }
    323.                     else Snake[intHead].x +=1;
    324.                     break;
    325.                 case BT_RIGHT:
    326.                     if( (intDir!=GO_LEFT) )
    327.                         {
    328.                             if ( (Snake[intHead].x+1 == food.x)&&
    329.                                  (Snake[intHead].y == food.y) )
    330.                               {
    331.                                 Snake[intHead].x +=1;
    332.                                 eatFood();
    333.                               }
    334.  
    335.                             Snake[intHead].x +=1;
    336.                             intDir = GO_RIGHT;
    337.                         }
    338.                     else Snake[intHead].x -=1;
    339.                     break;
    340.               }
    341.             chrLast_button = chrButton; //Remember the last ARROW key
    342.             gotoxy(Snake[intHead].x,Snake[intHead].y); //Draw intHead
    343.             textcolor(WHITE);
    344.             cprintf("@");
    345.             gotoxy(LEFT_LIM,TOP_LIM);
    346.             arrow_pressed=1;
    347.          }
    348.        else chrButton = chrLast_button; /* If the pressed key is not ARROW key,
    349.                             the snake uses the last ARROW key */
    350.     }
    351. }
    352.  
    353.  
    354. int checkStatus(int tempX,int tempY)
    355. {
    356.     if( (tempX <= LEFT_LIM)||
    357.         (tempX >= RIGHT_LIM) ||
    358.         (tempY <= TOP_LIM) ||
    359.         (tempY >= BOT_LIM) )
    360.        return 1; //The snake dies if it hits the wall.
    361.     else if( onSnake(Snake[intHead])==1) return 1; //It dies if bite itself
    362.     else return 0;
    363. }
    364.  
    365.  
    366. void refreshSnake()
    367. {
    368.   register int i;
    369.   intNew_len = 3;
    370.   intHead    = 2;
    371.   intTail    = 0;
    372.   intSpeed   = 300;
    373.   for(i=0;i<intNew_len;i++) //Return the Snake to the beginning
    374.     {
    375.         Snake[i].x = LEFT_LIM+1;
    376.         Snake[i].y = TOP_LIM+1;
    377.     }
    378. }
    379.  
    380. void refreshScore()
    381. {
    382.   intLevel   = 1;
    383.   intScore   = 0;
    384.   intAmount  = 10;
    385. }
    386.  
    387.  
    388. void Dead()
    389. {
    390.     char chrAns;
    391.     gotoxy(LEFT_LIM+2,BOT_LIM+2);
    392.     printf("You are lose. Play Again?(Y/N)");
    393.     do {
    394.           chrAns = toupper(getch());
    395.         }
    396.     while (chrAns != 'N' && chrAns != 'Y');
    397.     if (chrAns=='N')
    398.         {
    399.           clrscr();
    400.           printf("Bye Bye!");
    401.           delay(500);
    402.           exit(1);
    403.         }
    404.     else
    405.         {
    406.             Snake[intHead].x=LEFT_LIM+1;
    407.             Snake[intHead].y=TOP_LIM+1;
    408.             refreshScore();
    409.             refreshSnake();
    410.             clrscr();
    411.             drawYard();
    412.             drawFood();
    413.             drawSnake();
    414.             return ;
    415.         }
    416.  
    417. }
    418.  
    419.  
    420. char quitGame()
    421. {
    422.  char chrAns;
    423.  gotoxy(LEFT_LIM+2, BOT_LIM+2);
    424.  printf("Are you sure?(Y/N)");
    425.  do
    426.  {
    427.    chrAns = toupper(getch());
    428.  }
    429.  while (chrAns!= 'Y' && chrAns!='N');
    430.  gotoxy(LEFT_LIM+2, BOT_LIM+2);
    431.  printf("                  ");
    432.  return chrAns;
    433. }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.


    Tucõi phước
    Tìnhdây oan

  2. #2
    Ngày gia nhập
    02 2007
    Bài viết
    27

    Game Gỡ bom (Mine Sweeper), ăn cắp bản quyền của Windows, tất nhiên không hoàn toàn giống.

    C Code:
    1. /*
    2.  * Game: Mine Sweeper
    3.  * DHDL Van Lang
    4.  * Class: K12T01
    5.  * Total size: 12.0 KB
    6. */
    7.  
    8. #include <stdio.h>
    9. #include <conio.h>
    10. #include <stdlib.h>
    11.  
    12. void menu();//Choose level
    13. void frame(int color);// Playing frame
    14. int exist(int **bomb, int row, int x, int y);//not 2 bombs in 1 cell
    15. void makeBomb(int **&board, int range, int BombQuantity);//Generate bombs
    16. void fillBoard(int **&board, int row, int col);//Fill other cells
    17. void showBoard(int **board);//Show all cells
    18. void showCell(int **board, int row, int col);//Show selected cell
    19. void hideBoard(); //Hide al cells
    20. int openBoard(int **board,int i, int j);
    21. void openMass(int **board,int i, int j);//Open all non-bomb cell
    22. int play(int **&board, char c,int &i,int &j,int &cursorLeft, int &cursorTop);
    23. void death(int **board);//Win or lose
    24. void lockBomb(int **&board,int i,int j);//Set a flag on the bomb
    25.  
    26.  
    27. int top=7,left=5,bot,right,lose=0,flag;
    28. int BombNumber, Quantity;//when Quantity goes to 0, you win
    29.  
    30. void main()
    31. {
    32.     int **board,i,j;
    33.     char c=0;
    34.     menu();
    35.  
    36.     beginning:
    37.     clrscr();
    38.     lose=0;
    39.     Quantity=BombNumber;
    40.  
    41.     //creat dynamic matrix
    42.     board= (int**)calloc((bot-top)/2, sizeof(int*));
    43.     for(i=0; i<bot-top; i++)
    44.         board[i]= (int*)calloc((right-left), sizeof(int));
    45.  
    46.     //Set value for **board
    47.     for(i=0; i<(bot-top)/2; i++)
    48.         for(j=0; j<(right-left)/2; j++)
    49.             board[i][j]=-10; // -10 : no bomb && closed
    50.  
    51.     frame(WHITE);//Draw WHITE frame
    52.     makeBomb(board,(right-left)/2,BombNumber);
    53.     /*
    54.         (right-left)/2
    55.         For example:  |_|_|_|
    56.         right-left=6, but there are 3 cells
    57.     */
    58.  
    59.     fillBoard(board,(bot-top)/2,(right-left)/2);
    60.     hideBoard();
    61.  
    62.     int cursorLeft=left+1, cursorTop=top+1;//Cursor
    63.     i=0;
    64.     j=0;
    65.  
    66.     gotoxy(cursorLeft,cursorTop);
    67.     textbackground(GREEN);
    68.     showCell(board,cursorTop-top-1,cursorLeft-left-1);
    69.  
    70.     do
    71.       {
    72.         flushall();
    73.         c=getch();
    74.         if(play(board,c,i,j,cursorLeft,cursorTop)==0) goto beginning;
    75.  
    76.       }
    77.     while(c!=0xd);//play until button ENTER is pressed
    78.  
    79.     //free the matrix
    80.     for(j=0; j<(right-left)/2; j++)
    81.         free(board[j]);
    82.     free(board);
    83. }
    84.  
    85.  
    86. void menu()
    87. {
    88.     char c;
    89.     clrscr();
    90.     textcolor(WHITE);
    91.     gotoxy(21,8);
    92.     cprintf("MINE SWEEPER");
    93.     gotoxy(20,10);
    94.     cprintf("1. Beginner (Moi tap choi)");
    95.  
    96.     gotoxy(20,12);
    97.     cprintf("2. Experienced (Da biet choi)");
    98.  
    99.     gotoxy(20,14);
    100.     cprintf("3. Professional (Cao thu)");
    101.  
    102.     gotoxy(20,16);
    103.     cprintf("0. Quit ");
    104.     gotoxy(20,18);
    105.     cprintf("Chon cap do: ");
    106.     do
    107.       {
    108.             c=getch();
    109.       }
    110.     while(c<'0' || c>'3');
    111.  
    112.     switch(c)
    113.         {
    114.             case '1': bot=top+16; right=left+16; BombNumber=5; break;
    115.             case '2': bot=top+22; right=left+22; BombNumber=20; break;
    116.             case '3': bot=top+30; right=left+30; BombNumber=10; break;
    117.             case '0': return;
    118.         }
    119. }
    120.  
    121. int play(int **&board, char c,int &i,int &j,int &cursorLeft, int &cursorTop)
    122. {
    123.     switch(c)
    124.             {
    125.                 case 0x48://button UP
    126.                             if(cursorTop>top+1)
    127.                                 {
    128.                                     gotoxy(cursorLeft,cursorTop);
    129.                                     textbackground(BLACK);
    130.                                     showCell(board,i,j);
    131.                                     /* Because the cursor is GREEN
    132.                                         before it leaves a cell, we must
    133.                                         set textbackgound(BLACK)
    134.                                     */
    135.                                     cursorTop-=2;//set new position of the cursor
    136.                                     i--;
    137.                                 }
    138.                             break;
    139.  
    140.                 case 0x50://button DOWN
    141.                             if(cursorTop<bot-1)
    142.                                 {
    143.                                     gotoxy(cursorLeft,cursorTop);
    144.                                     textbackground(BLACK);
    145.                                     showCell(board,i,j);
    146.                                     cursorTop+=2;
    147.                                     i++;
    148.                                 }
    149.                             break;
    150.                 case 0x4d://button RIGHT
    151.                             if(cursorLeft<right-1)
    152.                                 {
    153.                                     gotoxy(cursorLeft,cursorTop);
    154.                                     textbackground(BLACK);
    155.                                     showCell(board,i,j);
    156.                                     cursorLeft+=2;
    157.                                     j++;
    158.                                 }
    159.                             break;
    160.                 case 0x4b://button LEFT
    161.                             if(cursorLeft>left+1)
    162.                                 {
    163.                                     gotoxy(cursorLeft,cursorTop);
    164.                                     textbackground(BLACK);
    165.                                     showCell(board,i,j);
    166.                                     cursorLeft-=2;
    167.                                     j--;
    168.                                 }
    169.                             break;
    170.                 case 0x3b:/* button F1*/
    171.                                 return 0;
    172.  
    173.                 case 0x3e:/*button F4*/
    174.                                 if(openBoard(board,i,j))
    175.                                     {
    176.                                         lose=1;
    177.                                         death(board);
    178.                                     }
    179.                                 break;
    180.  
    181.                 case 0x3f:/*button F5*/
    182.                                 lockBomb(board,i,j);break;
    183.  
    184.                 case 0x42:/*button F8*/
    185.                                 lose=1; death(board); break;
    186.  
    187.             }
    188.     //move the cursor
    189.     gotoxy(cursorLeft,cursorTop);
    190.     textbackground(GREEN);
    191.     showCell(board,i,j);
    192.     textbackground(BLACK);
    193.     gotoxy(1,1);
    194.     return 1;
    195. }
    196.  
    197.  
    198. void frame(int color)
    199. {
    200.     register int i,j;
    201.     //Trade mark
    202.     textcolor(color);
    203.     gotoxy(5,top-5);
    204.     cprintf("Created by Chau Nguyen Thanh Vu~ T06-3546 K12T01");
    205.  
    206.     flag=BombNumber;//Available flags
    207.     textcolor(LIGHTCYAN);
    208.     gotoxy(left+5,top-3);
    209.     cprintf("Flags: %d",flag);
    210.  
    211.     //Draw grid
    212.     for(i=0; i<bot-top; i++)
    213.         for(j=0; j<right-left-1; j++)
    214.             {
    215.                 gotoxy(left+1+j,top+1+i);
    216.                 textcolor(LIGHTGRAY);
    217.                 if(i%2!=0 && j%2!=0)cprintf("%c",197); //draw Å
    218.                 else if(i%2!=0) cprintf("%c",196);//draw Ä
    219.                 else if(j%2!=0) cprintf("%c",179);//draw ³
    220.             }
    221.  
    222.     textcolor(WHITE);
    223.     // Ve ÉÍÍÍÍÍÍÍÍÍ»
    224.     gotoxy(left,top);
    225.     cprintf("%c",201); // Top left corner É
    226.  
    227.     for(i=left+1; i<right; i++)
    228.         {
    229.           gotoxy(i,top);
    230.           cprintf("%c",205);    //Top horizonal line Í
    231.         }
    232.  
    233.     cprintf("%c",187); // Top right corner »
    234.  
    235.  
    236.     //Ve ÈÍÍÍÍÍÍÍÍÍͼ
    237.     gotoxy(left,bot); //(10,40)
    238.     cprintf("%c",200); // Bottom left corner È
    239.  
    240.     for(i=left+1; i<right; i++)
    241.         cprintf("%c",205);  // Bottom horizonal line  Í
    242.  
    243.     cprintf("%c",188); //Bottom right corner ¼
    244.  
    245.     for(i=top+1; i<bot; i++)
    246.         {
    247.           gotoxy(left,i);
    248.           cprintf("%c",186); // Left vertical line º
    249.  
    250.         }
    251.  
    252.  
    253.     for(i=top+1; i<bot; i++)
    254.         {
    255.           gotoxy(right,i);
    256.           cprintf("%c",186); // Right vertical line º
    257.         }
    258.  
    259.     //Number row
    260.     for(i=0,j=1; i<bot-top; i+=2,j++)
    261.         {
    262.             gotoxy(left-2,top+1+i);
    263.             cprintf("%2.d",j);
    264.         }
    265.  
    266.     //Alphabet column
    267.     for(i=0,j=65; i<right-left; i+=2,j++)
    268.         {
    269.             gotoxy(left+i,top-1);
    270.             cprintf("%2.c",j);
    271.         }
    272.  
    273.     //Instructions
    274.     textcolor(WHITE);
    275.     gotoxy(right+2,top+1); cprintf("F1: New Game (Choi lai)");
    276.     gotoxy(right+2,top+3); cprintf("F4: Open cell (Mo o^)");
    277.     gotoxy(right+2,top+5); cprintf("F5: Lock bomb (Kho'a bom)");
    278.     gotoxy(right+2,top+7); cprintf("F8: Resign (chiu thua)");
    279.     gotoxy(right+2,top+10); cprintf("Use ARROW keys to move");
    280.     gotoxy(right+2,top+12); cprintf("Press ENTER to QUIT");
    281.  
    282. }
    283.  
    284.  
    285. int exist(int **bomb, int row, int x, int y)
    286. {//check whether 2 bombs in 1 cell
    287.     for(int i=0; i<row; i++)
    288.         if(bomb[i][0]==x && bomb[i][1]==y) return 1;
    289.     return 0;
    290. }
    291.  
    292.  
    293. void makeBomb(int **&board, int range, int BombQuantity)
    294. {
    295.     int i,j,x,y;
    296.     randomize();
    297.  
    298.     //Dynamic matrix
    299.     int **bomb;
    300.     bomb=(int**)calloc(BombQuantity,sizeof(int*));
    301.     for(i=0; i<BombQuantity; i++)
    302.         bomb[i]= (int*)calloc(2,sizeof(int));
    303.  
    304.     for(i=0; i<BombQuantity;i++)
    305.        {
    306.            do
    307.            {
    308.                 //range from 0 -> (right-left)/2
    309.                 x= random(range);
    310.                 y= random(range);
    311.            }
    312.            while(exist(bomb,BombQuantity,x,y)==1);//2 bomb not 1 place
    313.             bomb[i][0]=x;
    314.            bomb[i][1]=y;
    315.             board[x][y]=-9;// -9 : 1 bomb && closed
    316.         }
    317.  
    318.     //Free the matrix
    319.     for(j=0; j<2; j++)
    320.         free(bomb[j]);
    321.     free(bomb);
    322. }
    323.  
    324.  
    325. void fillBoard(int **&board, int row, int col)
    326. {
    327.     int count,i,j;
    328.     for(i=0; i<row; i++)
    329.         for(j=0; j<col; j++)
    330.             if(board[i][j]!=-9)
    331.             {
    332.                 count=0;
    333.                 if(board[i-1][j]==-9) count++;
    334.                 if(board[i+1][j]==-9) count++;
    335.                 if(board[i][j-1]==-9) count++;
    336.                 if(board[i][j+1]==-9) count++;
    337.                 if(board[i-1][j-1]==-9) count++;
    338.                 if(board[i-1][j+1]==-9) count++;
    339.                 if(board[i+1][j-1]==-9) count++;
    340.                 if(board[i+1][j+1]==-9) count++;
    341.                 if(count==0) board[i][j]=-10; //-10: no bom && closed
    342.                 else board[i][j]=-count;// count<0 means: closed
    343.             }
    344. }
    345.  
    346.  
    347. void showBoard(int **board)
    348. {
    349.     for(int hang=0,i=0; i<(bot-top)/2;hang+=2,i++)
    350.         for(int cot=0,j=0; j<(right-left)/2;cot+=2,j++)
    351.             {
    352.                 gotoxy(left+1+cot,top+1+hang);
    353.                 showCell(board,i,j);
    354.             }
    355.  
    356. }
    357.  
    358. void showCell(int **board, int row, int col)
    359. {
    360.     textcolor(LIGHTMAGENTA);
    361.     if( (board[row][col]>=10 && lose==0)//lock selected cell
    362.          ||(board[row][col]==11) )//locked bomb
    363.             cprintf("%c",6);
    364.  
    365.     else if(board[row][col]>=10 && board[row][col]!=11  && lose==1)
    366.              { //locked, not bomb
    367.                 textcolor(LIGHTRED);
    368.                 cprintf("X");
    369.              }
    370.     else
    371.         {
    372.             textcolor(CYAN);
    373.             switch(board[row][col])
    374.                 {
    375.                     case  -9: cprintf("?"); break; //-9: closed bomb
    376.                     case -10: cprintf("?"); break; //-10: closed nothing
    377.                     case   0: cprintf(" "); break; // 0: opened nothing
    378.                     case   9:                      // 9: opened bomb
    379.                               textcolor(LIGHTRED);
    380.                               cprintf("*");
    381.                               break;
    382.                     default:
    383.                               if(board[row][col]>0)
    384.                                 { // >0 : opened number
    385.                                     textcolor(LIGHTBLUE);
    386.                                     cprintf("%d",board[row][col]);
    387.                                     break;
    388.                                 }
    389.                               else//if(board[row][col]<0): closed
    390.                                 {
    391.                                     textcolor(CYAN);
    392.                                     cprintf("?");
    393.                                     break;
    394.                                 }
    395.                  }
    396.         }
    397. }
    398.  
    399. void hideBoard()
    400. {
    401.     for(int i=top+1; i<bot; i+=2)
    402.         for(int j=left+1; j<right; j+=2)
    403.             {
    404.                 gotoxy(j,i);
    405.                 textcolor(CYAN);
    406.                 cprintf("?");
    407.             }
    408. }
    409.  
    410. int openBoard(int **board,int i, int j)
    411. {
    412.     int flag=0;
    413.     if(board[i][j]==-9) return 1;//Open bomb, die!!
    414.     else if(board[i][j]==-10)
    415.         {
    416.             openMass(board,i,j);//open all non-bomb cell
    417.             flag=1;
    418.         }
    419.     else if(board[i][j]<0)  board[i][j]=-board[i][j];
    420.     if(flag==1) showBoard(board);
    421.     return 0;
    422. }
    423.  
    424. void openMass(int **board,int i, int j)
    425. {
    426.     if(board[i][j]==-10)// -10: non-bomb && closed
    427.         board[i][j]=0;// 0: non-bomb && opened
    428.  
    429.     if(board[i-1][j]==-10) openMass(board,i-1,j);
    430.     if(board[i+1][j]==-10) openMass(board,i+1,j);
    431.     if(board[i][j-1]==-10) openMass(board,i,j-1);
    432.     if(board[i][j+1]==-10) openMass(board,i,j+1);
    433.  
    434.     if(board[i-1][j]<0)/*If a numbered cell is next to
    435.                                 a non-bomb cell, open that numbered cell */
    436.             board[i-1][j]=-board[i-1][j];
    437.  
    438.     if(board[i+1][j]<0)
    439.             board[i+1][j]=-board[i+1][j];
    440.  
    441.     if(board[i][j-1]<0)
    442.             board[i][j-1]=-board[i][j-1];
    443.  
    444.     if(board[i][j+1]<0)
    445.             board[i][j+1]=-board[i][j+1];
    446.  
    447.     return;
    448. }
    449.  
    450. void death(int **board)
    451. {
    452.     int hang,cot,i,j;
    453.     for(i=0; i<(bot-top)/2;i++)
    454.         for(j=0; j<(right-left)/2; j++)
    455.             {
    456.                 if(board[i][j]==-10) board[i][j]=0;//opend all non-bomb cells
    457.                 if(board[i][j]<0) board[i][j]=-board[i][j];
    458.                                         //opened all numbered cells
    459.                                         //becase <0 : closed
    460.                                         //       >0 : opened
    461.             }
    462.  
    463.     showBoard(board);
    464.  
    465.     if(lose==1)// LOSE mode
    466.         {
    467.             gotoxy(left+16,top-3);
    468.             textcolor(YELLOW);
    469.             cprintf("BAN DA THUA ! NHAN F1 DE CHOI LAI.");
    470.         }
    471.     else// WIN mode
    472.         {
    473.             gotoxy(left+16,top-3);
    474.             textcolor(YELLOW);
    475.             cprintf("CHUC MUNG! BAN DA CHIEN THANG!");
    476.         }
    477.  
    478.     gotoxy(right+2, top+15);
    479.     textcolor(LIGHTRED);
    480.     cprintf("X");
    481.     textcolor(WHITE);
    482.     cprintf(": not a bomb (khong phai bom)");
    483.  
    484.     gotoxy(right+2, top+17);
    485.     textcolor(LIGHTRED);
    486.     cprintf("*");
    487.     textcolor(WHITE);
    488.     cprintf(": a bomb (day la bom)");
    489.  
    490.     gotoxy(right+2, top+19);
    491.     textcolor(LIGHTMAGENTA);
    492.     cprintf("%c",6);
    493.     textcolor(WHITE);
    494.     cprintf(": locked bomb (bom bi kho'a)");
    495. }
    496.  
    497. void lockBomb(int **&board,int i,int j)//locked or unlock selected cell
    498. {
    499.     if(board[i][j]<0 && flag>0)//only lock <0 cell (closed cell)
    500.         {
    501.             if(board[i][j]==-9) Quantity--; //if a bomb is locked
    502.             /*Quantity of bomb is not shown
    503.               it is the remaining bombs to defuse
    504.               when it goes to 0, you win.*/
    505. /* (1)*/ board[i][j]+=20;/*for example: board[i][j]=-1 -> board[i][j]=19
    506.                                   19>0 : so it won't be opened by showCell()
    507.                                   because showCell() only opens <0 cell*/
    508.             flag--;
    509.             textcolor(WHITE);
    510.             gotoxy(left+12,top-3);
    511.             cprintf("%2.1d",flag);
    512.             if(Quantity==0)
    513.                 {
    514.                     lose=0;// you win
    515.                     death(board);//show all cells in WIN mode
    516.                 }
    517.         }
    518.     else if(board[i][j]>=10 && lose==0)
    519.         {
    520. /* (2)*/ board[i][j]-=20;
    521.             /* In (1), board[i][j]=-1 -> board[i][j]=19;
    522.                 In (2), board[i][j]=19 -> board[i][j]=-1;
    523.                 => when the flag is removed,
    524.                     board[i][j] returns to the previous value
    525.             */
    526.             if(board[i][j]==-9) Quantity++;//if a bomb is unlocked
    527.             flag++;
    528.             textcolor(WHITE);
    529.             gotoxy(left+12,top-3);
    530.             cprintf("%2.1d",flag);
    531.         }
    532. }


    Tucõi phước
    Tìnhdây oan

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

    Game Caro 2 người chơi,
    Luật: 5 "con" là thắng, không cần phân biệt chặn đầu, bịt đuôi.

    C Code:
    1. /*
    2.  * Game: CARO human v.s human
    3.  * DHDL Van Lang
    4.  * Class: K12T01
    5.  * Total size: 7.62 KB
    6. */
    7.  
    8. #include <stdio.h>
    9. #include <conio.h>
    10. #include <stdlib.h>
    11. #include <string.h>
    12.  
    13. #define player1 -1
    14. #define player2 1
    15.  
    16. void askName();
    17. void showName();
    18. void frame(int color);// Playing frame
    19. void showCell(int **board, int i, int j);
    20. int play(int **&board, char c,int &i,int &j,int &cursorLeft, int &cursorTop);
    21. void newArea(int i,int j);
    22. void check(int **board);//Win or lose
    23.  
    24.  
    25. int top=7,left=5,bot=37,right=35,turn=player1, endGame=0;
    26. int minTop=(bot-top)/2, maxRight=0;
    27. int minLeft=(right-left)/2, maxBot=0;
    28.      //Area in the matrix, which has been filled
    29. char play1[30], play2[30];// players' name
    30.  
    31. void main()
    32. {
    33.     int **board,i,j;
    34.     char c=0;
    35.     askName();
    36.  
    37.     beginning:
    38.     clrscr();
    39.     c=0;
    40.     endGame=0;
    41.  
    42.     //creat dynamic matrix
    43.     board= (int**)calloc((bot-top)/2, sizeof(int*));
    44.     for(i=0; i<bot-top; i++)
    45.         board[i]= (int*)calloc((right-left), sizeof(int));
    46.  
    47.     //Set value for **board, because calloc() works not perfectly
    48.     for(i=0; i<(bot-top)/2; i++)
    49.         for(j=0; j<(right-left)/2; j++)
    50.             board[i][j]=0;
    51.  
    52.     frame(WHITE);//Draw WHITE frame
    53.  
    54.  
    55.     int cursorLeft=left+1, cursorTop=top+1;//Cursor
    56.     i=0;
    57.     j=0;
    58.  
    59.     gotoxy(cursorLeft,cursorTop);
    60.     textbackground(GREEN);
    61.     showCell(board,cursorTop-top-1,cursorLeft-left-1);
    62.  
    63.     do
    64.       {
    65.         flushall();
    66.         showName();
    67.         c=getch();
    68.         if(play(board,c,i,j,cursorLeft,cursorTop)==0) goto beginning;
    69.  
    70.       }
    71.     while(c!=0xd);//play until button ENTER is pressed
    72.  
    73.     //free the matrix
    74.     for(j=0; j<(right-left)/2; j++)
    75.         free(board[j]);
    76.     free(board);
    77.  
    78. }
    79.  
    80.  
    81. void askName()
    82. {
    83.     clrscr();
    84.     textcolor(WHITE);
    85.  
    86.     do
    87.       {
    88.             cprintf("Nhap ten nguoi choi thu 1 (toi da 20 ky tu): ");
    89.             gets(play1);
    90.       }
    91.     while(strlen(play1)<=0 || strlen(play1)>20);
    92.     do
    93.       {
    94.             cprintf("Nhap ten nguoi choi thu 2 (toi da 20 ky tu): ");
    95.             gets(play2);
    96.       }
    97.     while(strlen(play2)<=0 || strlen(play2)>20);
    98. }
    99.  
    100.  
    101. void showName()
    102. {
    103.     textbackground(BLACK);
    104.     textcolor(WHITE);
    105.     gotoxy(right+2,top+2);
    106.     cprintf("Luot di cua: ");
    107.     for(int i=0; i<30; i++) printf(" ");//Erase last name
    108.  
    109.     gotoxy(right+15,top+2);
    110.     if(turn==player1)
    111.         {
    112.             textcolor(LIGHTRED);
    113.             cprintf("%s (O)",play1);
    114.         }
    115.     else
    116.         {
    117.             textcolor(LIGHTCYAN);
    118.             cprintf("%s (X)",play2);
    119.         }
    120. }
    121.  
    122.  
    123. void frame(int color)
    124. {
    125.     register int i,j;
    126.     //Trade mark
    127.     textcolor(color);
    128.     gotoxy(5,top-5);
    129.     cprintf("Created by Chau Nguyen Thanh Vu~ T06-3546 K12T01");
    130.  
    131.     //Draw grid
    132.     for(i=0; i<bot-top; i++)
    133.         for(j=0; j<right-left-1; j++)
    134.             {
    135.                 gotoxy(left+1+j,top+1+i);
    136.                 textcolor(LIGHTGRAY);
    137.                 if(i%2!=0 && j%2!=0)cprintf("%c",197); //draw Å
    138.                 else if(i%2!=0) cprintf("%c",196);//draw Ä
    139.                 else if(j%2!=0) cprintf("%c",179);//draw ³
    140.             }
    141.  
    142.     textcolor(WHITE);
    143.     // Ve ÉÍÍÍÍÍÍÍÍÍ»
    144.     gotoxy(left,top);
    145.     cprintf("%c",201); // Top left corner É
    146.  
    147.     for(i=left+1; i<right; i++)
    148.         {
    149.           gotoxy(i,top);
    150.           cprintf("%c",205);    //Top horizonal line Í
    151.         }
    152.  
    153.     cprintf("%c",187); // Top right corner »
    154.  
    155.  
    156.     //Ve ÈÍÍÍÍÍÍÍÍÍͼ
    157.     gotoxy(left,bot); //(10,40)
    158.     cprintf("%c",200); // Bottom left corner È
    159.  
    160.     for(i=left+1; i<right; i++)
    161.         cprintf("%c",205);  // Bottom horizonal line  Í
    162.  
    163.     cprintf("%c",188); //Bottom right corner ¼
    164.  
    165.     for(i=top+1; i<bot; i++)
    166.         {
    167.           gotoxy(left,i);
    168.           cprintf("%c",186); // Left vertical line º
    169.  
    170.         }
    171.  
    172.  
    173.     for(i=top+1; i<bot; i++)
    174.         {
    175.           gotoxy(right,i);
    176.           cprintf("%c",186); // Right vertical line º
    177.         }
    178.  
    179.     //Number row
    180.     for(i=0,j=1; i<bot-top; i+=2,j++)
    181.         {
    182.             gotoxy(left-2,top+1+i);
    183.             cprintf("%2.d",j);
    184.         }
    185.  
    186.     //Alphabet column
    187.     for(i=0,j=65; i<right-left; i+=2,j++)
    188.         {
    189.             gotoxy(left+i,top-1);
    190.             cprintf("%2.c",j);
    191.         }
    192.  
    193.     //Instructions
    194.     textcolor(WHITE);
    195.     gotoxy(right+2,top+5); cprintf("Ctrl-N: New Game (Choi lai)");
    196.     gotoxy(right+2,top+11); cprintf("Use ARROW keys to move");
    197.               gotoxy(right+2,top+13; cprintf("Press SPACE BAR to check");
    198.     gotoxy(right+2,top+15); cprintf("Press ENTER to QUIT");
    199.  
    200. }
    201.  
    202.  
    203. int play(int **&board, char c,int &i,int &j,int &cursorLeft, int &cursorTop)
    204. {
    205.      switch(c)
    206.             {
    207.                 case 0x48://button UP
    208.                             if(cursorTop>top+1)
    209.                                 {
    210.                                     gotoxy(cursorLeft,cursorTop);
    211.                                     textbackground(BLACK);
    212.                                     showCell(board,i,j);
    213.                                     /* Because the cursor is GREEN
    214.                                         before it leaves a cell, we must
    215.                                         set textbackgound(BLACK)
    216.                                     */
    217.                                     cursorTop-=2;//set new position of the cursor
    218.                                     i--;
    219.                                 }
    220.                             break;
    221.  
    222.                 case 0x50://button DOWN
    223.                             if(cursorTop<bot-1)
    224.                                 {
    225.                                     gotoxy(cursorLeft,cursorTop);
    226.                                     textbackground(BLACK);
    227.                                     showCell(board,i,j);
    228.                                     cursorTop+=2;
    229.                                     i++;
    230.                                 }
    231.                             break;
    232.                 case 0x4d://button RIGHT
    233.                             if(cursorLeft<right-1)
    234.                                 {
    235.                                     gotoxy(cursorLeft,cursorTop);
    236.                                     textbackground(BLACK);
    237.                                     showCell(board,i,j);
    238.                                     cursorLeft+=2;
    239.                                     j++;
    240.                                 }
    241.                             break;
    242.                 case 0x4b://button LEFT
    243.                             if(cursorLeft>left+1)
    244.                                 {
    245.                                     gotoxy(cursorLeft,cursorTop);
    246.                                     textbackground(BLACK);
    247.                                     showCell(board,i,j);
    248.                                     cursorLeft-=2;
    249.                                     j--;
    250.                                 }
    251.                             break;
    252.                 case 0xe:/* hot key Ctrl-N*/
    253.                                 return 0;
    254.  
    255.                 case 0x20:/*button SPACE-BAR*/
    256.                                 if(board[i][j]==0 && endGame!=1)
    257.                                     {
    258.                                         board[i][j]=turn;
    259.                                         newArea(i,j);
    260.                                         check(board);
    261.                                         turn=-turn;
    262.                                     }
    263.                                 break;
    264.  
    265.  
    266.             }
    267.  
    268.     //move the cursor
    269.     gotoxy(cursorLeft,cursorTop);
    270.     textbackground(GREEN);
    271.     showCell(board,i,j);
    272.     textbackground(BLACK);
    273.     return 1;
    274. }
    275.  
    276. //int minTop=(bot-top)/2, maxBot=0;
    277. //int minLeft=(right-left)/2, maxRight=0;
    278. void newArea(int i,int j)
    279. {
    280.     if(i<minTop) minTop=i;
    281.     if(i>maxBot) maxBot=i;
    282.  
    283.     if(j<minLeft) minLeft=j;
    284.     if(j>maxRight) maxRight=j;
    285.  
    286. }
    287.  
    288.  
    289. void showCell(int **board, int i, int j)
    290. {
    291.     switch(board[i][j])
    292.         {
    293.             case -1: textcolor(LIGHTRED);
    294.                         cprintf("O"); break;
    295.  
    296.             case  0: cprintf(" ");
    297.                         break;
    298.             case  1:
    299.                         textcolor(LIGHTCYAN);
    300.                         cprintf("X");
    301.                         break;
    302.         }
    303.  
    304. }
    305.  
    306.  
    307. void check(int **board)//Win or lose
    308. {
    309.     int winner;
    310.     for(int x= minTop; x<=maxBot; x++)
    311.         for(int y= minLeft; y<=maxRight; y++)
    312.             {
    313.                 //Kiem tra doc
    314.                 if(board[x][y]!=0 && board[x][y]==board[x+1][y])
    315.                     {
    316.                         int dem=2;
    317.                         for(int z=x+2; z<=maxBot; z++)
    318.                             if(board[z][y]==board[x][y])
    319.                                 dem++;
    320.                             else break;
    321.  
    322.                         if(dem==5) { winner=turn; goto result; }
    323.                         else winner=0;
    324.                     }
    325.  
    326.                 //Kiem tra ngang
    327.                 else if(board[x][y]!=0 && board[x][y]==board[x][y+1])
    328.                     {
    329.                         int dem=2;
    330.                         for(int z=y+2; z<=y+4; z++)
    331.                             if(board[x][z]==board[x][y])
    332.                                 dem++;
    333.                         if(dem==5) { winner=turn; goto result; }
    334.                         else winner=0;
    335.                     }
    336.  
    337.                 //Kiem tra cheo trai -> phai
    338.                 else if(board[x][y]!=0 && board[x][y]==board[x+1][y+1])
    339.                     {
    340.                         int dem=2;
    341.                         for(int z=2; z<=4; z++)
    342.                             if(board[x+z][y+z]==board[x][y])
    343.                                 dem++;
    344.                         if(dem==5) { winner=turn; goto result; }
    345.                         else winner=0;
    346.                     }
    347.  
    348.                 //Kiem tra cheo phai -> trai
    349.                 else if(board[x][y]!=0 && board[x][y]==board[x-1][y+1])
    350.                     {
    351.                         int dem=2;
    352.                         for(int z=2; z<=4; z++)
    353.                             if(board[x-z][y+z]==board[x][y])
    354.                                 dem++;
    355.                         if(dem==5) { winner=turn; goto result; }
    356.                         else winner=0;
    357.                     }
    358.             }
    359.  
    360.     result:
    361.     gotoxy(left+3,top-3);
    362.     textcolor(YELLOW+BLINK);
    363.     textbackground(BLACK);
    364.     if(winner==player1)
    365.         {
    366.             cprintf("%s (O) DA CHIEN THANG!",strupr(play1));
    367.             endGame=1;
    368.         }
    369.     else if(winner==player2)
    370.                 {
    371.                     cprintf("%s (X) DA CHIEN THANG!",strupr(play2));
    372.                     endGame=1;
    373.                 }
    374. }


    Tucõi phước
    Tìnhdây oan

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

    Ặc cái này tui viết lâu rồi , cái caro thì viết trên giấy vì lúc đó chưa có máy tính thầy bảo được rồi tui vứt cái code ở đâu mất nên không chuyển qua cái demo được , bi giờ đang cần để thử ứng dụng cái thuật toán tham lam nên chắc hôm nào ngồi viết lại , còn game con rắn tui viết dở ẹt tuy vậy còn nhiếu ý tưởng lắm , hôm nào U post cái file exe lên đây anh em đánh giá cho , còn cái exe của kid thì post lên lâu rồi hôm nào search thử góp ý lại nhé .

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

    Thuật toán tham lam là sao anh ?


    Tucõi phước
    Tìnhdây oan

  6. #6
    Ngày gia nhập
    07 2007
    Nơi ở
    Thành phố Hồ Chí Minh
    Bài viết
    9

    Mặc định Code game Con rắn trong Text mode

    Đó còn là 1 tên khác của thuật toán vét cạn,... Bạn có thể lên google để tìm thêm thông tin về thuật toán này... ^_^
    ========================================
    Chúc các bạn 1 ngày làm việc vui vẻ...
    ========================================

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

    Cảm ơn nhiều

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

    chrPress = getch();
    cho mình hỏi cái hàm này là gì ?
    nó có tương tự như getch(); k ?
    [CENTER][QUOTE][CENTER][COLOR="Red"][SIZE="6"](*_*) Learn to live in the present (*_*)
    (*_*) And stop worrying about the future (*_*)

  9. #9
    Ngày gia nhập
    08 2008
    Bài viết
    2

    Mấy cái game trên lỗi tùm lum hết lun )
    Coi lại đi mấy huynh

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

    sao mình paste vao borland c 5.02 thì nó báo là call to undefined function delay vậy, cái game con rắn đó
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. Trả lời: 1
    Bài viết cuối: 13-07-2014, 08:06 AM
  2. Code nối hai bài thơ trong file text bằng C++! Có cách nào tối ưu hơn không?
    Gửi bởi davidpuskin trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 14-09-2011, 06:52 AM
  3. in code thành file text trong C++?
    Gửi bởi it92 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 01-04-2011, 09:05 PM
  4. code C#: Tìm số nhị phân trong một đoạn text?
    Gửi bởi mik trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 23-12-2010, 11:48 AM
  5. Souce code C# | Cool Text -Crazy Text
    Gửi bởi thepbac trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 22-11-2010, 03:49 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