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

Đề tài: Code Game Rắn Săn Mồi trong C. Mong nhận được góp ý

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

    Wink Code Game Rắn Săn Mồi trong C. Mong nhận được góp ý

    Cháu đang viết game " Rắn Săn mồi",đang trong giai đoạn bắt đầu cháu chỉ viết cho con Rắn chỉ có 4 đoạn,chỉ đưa ra nhiệm vụ là khi nhấn phím điều khiển thì nó chạy theo hướng mình điều khiển thôi.Nhưng nó chỉ chạy sang phải là đúng còn các hướng khác nó chạy sai mất tiu.

    Giải thuật của cháu như sau:
    " khai báo một struct để chứa thông tin của mỗi đoạn của con rắn,gồm có
    1.Trạng thái hiện tại( tức là đoạn đó đang di chuyển theo hướng nào).
    2.Trạng thái tiếp theo .(mục đích là để các đoạn chạy theo trạng thái cũ của đoạn trước nó).
    Nhưng nó chạy kì quá hà!!
    Code của cháu nè,nhờ các bác coi giúp,cháu mong nhận được những lời góp ý quý báu từ các bác!!!

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #define left 75
    4. #define right 77
    5. #define up 72
    6. #define down 80
    7. typedef struct
    8. {
    9.    int x,y; //toa do cua moi diem
    10.    int stanow,stathen;//trang thai cua moi diem truoc va sau,de dinh huong cho diem theo sau no ,qua phai(1),hay qua trai(2),len(3),xuong(4)
    11. }ran;
    12. ran s[10];//cho con ran o 4 doan ,sau nay lam duoc tinh tiep
    13. void demo(void);
    14. void moveright(void);
    15. void moveleft(void);
    16. void moveup(void);
    17. void movedown(void);
    18. void delay(void);
    19.  
    20. /******************************************************************/
    21. void main()
    22. {
    23.       int i;
    24.       int j=0;
    25.       char c;
    26.       gotoxy(1,10); putchar(42);
    27.       gotoxy(2,10); putchar(42);
    28.       gotoxy(3,10); putchar(42);
    29.       gotoxy(4,10); putchar(42);
    30.       for(i=0;i<4;i++)
    31.       {
    32.         s[i].x=++j;
    33.          s[i].y=10;
    34.       }
    35.       demo(); //khoi dong trang thái ban dau cua con ran
    36.       fflush(stdin);
    37.       c=getch();
    38.       do
    39.       {
    40.         if(c==0)
    41.          {
    42.               switch(getch())
    43.             {
    44.                 case left:
    45.                             moveleft();
    46.                            break;
    47.                case right:
    48.                             moveright();
    49.                            break;
    50.                case up:
    51.                             moveup();
    52.                            break;
    53.                case down:
    54.                             movedown();
    55.                            break;
    56.             }
    57.  
    58.          }
    59.          fflush(stdin);
    60.          c= getch();
    61.       }
    62.       while(c!=27);
    63. }
    64. /***************************************************************/
    65. void moveright(void)
    66. {
    67.         int i;
    68. con1:
    69.       s[3].stathen=1;    //xet diem dau tien cua con ran
    70.       gotoxy(s[3].x,s[3].y);
    71.       printf("%c",32);//xoa dau vet cu cua con ran
    72.       s[3].x++;
    73.       gotoxy(s[3].x,s[3].y);
    74.       printf("*");
    75.       for(i=2;i>=0;i--)
    76.       {
    77.         s[i].stathen=s[i+1].stanow;
    78.          gotoxy(s[i].x,s[i].y);
    79.          printf("%c",32);
    80.          switch(s[i].stathen)
    81.          {
    82.             case 1:
    83.                   s[i].x++;
    84.                   break;
    85.             case 2:
    86.                   s[i].x--;
    87.                   break;
    88.             case 3:
    89.                   s[i].y--;
    90.                   break;
    91.             case 4:
    92.                     s[i].y++;
    93.                   break;
    94.          }
    95.          gotoxy(s[i].x,s[i].y);
    96.          printf("*");
    97.          s[i].stanow=s[i].stathen;//de quy cho lan sau
    98.       }
    99.       s[3].stanow=s[3].stathen;
    100.       delay();
    101.       if(!kbhit())  //neu khong phim nao duoc nhan
    102.         goto con1;
    103. }
    104. /************************************************************/
    105. void moveleft(void)
    106. {
    107.         int i;
    108.  con2:
    109.       s[3].stathen=2;    //xet diem dau tien cua con ran
    110.       gotoxy(s[3].x,s[3].y);
    111.       printf("%c",32);//xoa dau vet cu cua con ran
    112.       s[3].x--;
    113.       gotoxy(s[3].x,s[3].y);
    114.       printf("*");
    115.       for(i=2;i>=0;i--)
    116.       {
    117.         s[i].stathen=s[i+1].stanow;
    118.          gotoxy(s[i].x,s[i].y);
    119.          printf("%c",32);
    120.          switch(s[i].stathen)
    121.          {
    122.             case 1:
    123.                   s[i].x++;
    124.                   break;
    125.             case 2:
    126.                   s[i].x--;
    127.                   break;
    128.             case 3:
    129.                   s[i].y--;
    130.                   break;
    131.             case 4:
    132.                     s[i].y++;
    133.                   break;
    134.          }
    135.          gotoxy(s[i].x,s[i].y);
    136.          printf("*");
    137.          s[i].stanow=s[i].stathen;//de quy cho lan sau
    138.       }
    139.       s[3].stanow=s[3].stathen;
    140.       delay();
    141.  
    142.       if(!kbhit())
    143.         goto con2;
    144. }
    145. /**********************************************************/
    146. void moveup(void)
    147. {
    148.         int i;
    149. con3:
    150.       s[3].stathen=3;    //xet diem dau tien cua con ran
    151.       gotoxy(s[3].x,s[3].y);
    152.       printf("%c",32);//xoa dau vet cu cua con ran
    153.       s[3].y--;
    154.       gotoxy(s[3].x,s[3].y);
    155.       printf("*");
    156.       for(i=2;i>=0;i--)
    157.       {
    158.         s[i].stathen=s[i+1].stanow;
    159.          gotoxy(s[i].x,s[i].y);
    160.          printf("%c",32);
    161.          switch(s[i].stathen)
    162.          {
    163.             case 1:
    164.                   s[i].x++;
    165.                   break;
    166.             case 2:
    167.                   s[i].x--;
    168.                   break;
    169.             case 3:
    170.                   s[i].y--;
    171.                   break;
    172.             case 4:
    173.                     s[i].y++;
    174.                   break;
    175.          }
    176.          gotoxy(s[i].x,s[i].y);
    177.          printf("*");
    178.          s[i].stanow=s[i].stathen;//de quy cho lan sau
    179.       }
    180.       s[3].stanow=s[3].stathen;
    181.       delay();
    182.       if(!kbhit())
    183.         goto con3;
    184. }
    185. /************************************************************/
    186. void movedown(void)
    187. {
    188.     int i;
    189. con4:
    190.       s[3].stathen=4;    //xet diem dau tien cua con ran
    191.       gotoxy(s[3].x,s[3].y);
    192.       printf("%c",32);//xoa dau vet cu cua con ran
    193.       s[3].y++;
    194.       gotoxy(s[3].x,s[3].y);
    195.       printf("*");
    196.       for(i=2;i>=0;i--)
    197.       {
    198.         s[i].stathen=s[i+1].stanow;
    199.          gotoxy(s[i].x,s[i].y);
    200.          printf("%c",32);
    201.          switch(s[i].stathen)
    202.          {
    203.             case 1:
    204.                   s[i].x++;
    205.                   break;
    206.             case 2:
    207.                   s[i].x--;
    208.                   break;
    209.             case 3:
    210.                   s[i].y--;
    211.                   break;
    212.             case 4:
    213.                     s[i].y++;
    214.                   break;
    215.          }
    216.          gotoxy(s[i].x,s[i].y);
    217.          printf("*");
    218.          s[i].stanow=s[i].stathen;//de quy cho lan sau
    219.       }
    220.       s[3].stanow=s[3].stathen;
    221.    delay();
    222.    if(!kbhit())
    223.     goto con4;
    224. }
    225. /************************************************************************/
    226. void delay(void)
    227. {
    228.       unsigned long int z;
    229.         unsigned long int x,y;
    230.       for(x=0;x<=256;x++)
    231.       {
    232.         for(y=0;y<=200000;y++)
    233.          z++;
    234.       }
    235. }
    236. /********************************************************************/
    237. void demo(void)
    238. {
    239.     s[3].stanow=1;
    240.     moveright();
    241. }

    Cháu ơi cháu lần sau cháu bỏ dùm code vô thẻ code (có hình {#}) trên thanh công cụ nhá
    Đã được chỉnh sửa lần cuối bởi iamvtn : 01-12-2007 lúc 06:23 PM.

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

    Thấy cậu làm tớ ngán quá à. Chắc người ta ko nhấn phím là con snake của cậu ngồi ngủ quá.
    Kiếm code nào đi. nghiền ngẫm.

  3. #3
    Ngày gia nhập
    07 2010
    Bài viết
    3

    Cool Source code game rắn săn mồi viết bằng C#

    Game rắn săn mồi tham khảo viết bằng c# đây. Mấy bạn lấy về tham khảo nhé!

    Mình đính kèm 2 source code
    Attached Files Attached Files

  4. #4
    Ngày gia nhập
    06 2009
    Nơi ở
    Cái hộp
    Bài viết
    1,255

    Giải thuật đơn giản lắm nè ko cần mỗi "khúc" của con rắn lại lưu cả hướng đi đâu, chỉ cần lưu tọa độ thôi. Còn hướng đi là 1 biến toàn cục riêng. Khi di chuyển thì chỉ cần dựa vào hướng đi để nhảy lên trên đầu rắn vẽ 1 cái, nhảy đến đuôi rắn cắt nó đi vậy là xong.
    Chúc cháu vui!
    Men talk of killing time, while time quietly kills them.
    Time is what we want most, but what we use worst.
    ------------------------------
    YinYang's Programming Blog

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

    Mặc định Lỗi lúc rắn ăn mồi

    Bài con rắn của bạn phuchero3011 bị lỗi khi con rắn ăn 1 cục mồi thì thân con rắn tăng từ 4 + 1 = 7 lận bạn ơi.

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

  1. Mã nguồn C Source Code Game Rắn săn mồi
    Gửi bởi tauit_dnmd trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 31-12-2016, 11:41 PM
  2. Lập trình C Code Game rắn săn mồi trên ngôn ngữ C
    Gửi bởi ductrikt94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 12
    Bài viết cuối: 13-08-2013, 04:28 PM
  3. Phần mềm giải bài tập Ma Trận. Mong nhận được sự góp ý xây dựng
    Gửi bởi tpnguyen_91 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 13-08-2011, 01:51 AM
  4. Code Game Rắn Săn mồi trên C#
    Gửi bởi kendy92 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 06-04-2010, 10:32 AM
  5. code C# game rắn săn mồi
    Gửi bởi pine8xproit trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 07-10-2009, 01:47 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