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

Đề tài: Code sự va chạm có lỗi xử lý thế nào?

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    2

    Mặc định Code sự va chạm có lỗi xử lý thế nào?

    C++ Code:
    1. #include<conio.h>
    2. #include<stdio.h>
    3. #include<stdlib.h>
    4. #include<math.h>
    5. #include<iostream.h>
    6. #include<graphics.h>
    7. #include<dos.h>
    8. char getkey(int &dx,int &dy);
    9. class MOUSE
    10. {   private:
    11.         int x,y;
    12.         REGS r;
    13.     public:
    14.         void khoitao();
    15.         void hienchuot();
    16.         void anchuot();
    17.         int bamchuot();
    18.         int getx();
    19.         int gety();
    20. };
    21. void MOUSE::khoitao()
    22. {   r.x.ax=0;
    23.     int86(0x33,&r,&r);
    24. }
    25. void MOUSE::hienchuot()
    26. {   r.x.ax=1;
    27.     int86(0x33,&r,&r);
    28. }
    29. void MOUSE::anchuot()
    30. {   r.x.ax=2;
    31.     int86(0x33,&r,&r);
    32. }
    33. int MOUSE::bamchuot()
    34. {   r.x.ax=3;
    35.     int86(0x33,&r,&r);
    36.     x=r.x.cx;
    37.     y=r.x.dx;
    38.     return r.x.bx;
    39. }
    40. int MOUSE::getx()
    41. {   return x;
    42. }
    43. int MOUSE::gety()
    44. {   return y;
    45. }
    46. class TRON
    47. {   private:
    48.         int x,y,r;int c1,c2,h1,h2;int x1,x2,y1,y2;
    49.     public:
    50.         TRON()
    51.         {x=y=r=0;}
    52.         TRON(int a,int b,int d)
    53.         {x=a;y=b;r=d;}
    54.         void dichuyen(int b);
    55.         void hien()
    56.         {   setcolor(10);
    57.             circle(x,y,r);
    58.             c1=130;h1=125;c2=getmaxx()-c1;h2=getmaxy()-h1;
    59.             rectangle(c1,h1,c2,h2);
    60.             line(x1,y1,x2,y2);
    61.             //ngang                                 //doc
    62.             line(235,150,310,150);
    63.             line(130,150,160,150);
    64.  
    65.  
    66.             line(235,230,260,230);
    67.             line(130,225,210,225);
    68.             line(260,205,310,205);
    69.             line(310,175,335,175);          line(310,150,310,125);
    70.             line(360,150,385,150);          line(235,150,235,250);
    71.                                             line(285,150,285,180);
    72.             line(155,175,185,175);          line(260,205,260,175);
    73.             line(155,200,235,200);          line(210,175,210,125);
    74.                                             line(155,175,155,200);
    75.                                             line(185,150,185,175);
    76.                                             line(285,205,285,235);
    77.             line(410,195,460,195);          line(310,205,310,175);
    78.             line(460,170,485,170);          line(335,235,335,150);
    79.             line(485,145,507,145);          line(385,150,385,125);
    80.             line(485,195,507,195);          line(235,230,235,235);
    81.             line(435,220,485,220);          line(360,150,360,160);
    82.             line(435,230,485,230);          line(460,150,460,195);
    83.             line(360,210,385,210);          line(485,125,485,145);
    84.             line(360,160,385,160);          line(485,195,485,220);
    85.             line(335,185,360,185);          line(435,220,435,230);
    86.             line(155,250,235,250);          line(385,160,385,210);
    87.             line(130,275,155,275);          line(410,150,410,275);
    88.             line(155,300,195,300);          line(180,250,180,275);
    89.             line(180,275,270,275);          line(155,275,155,300);
    90.             line(155,325,220,325);          line(220,275,220,325);
    91.             line(270,325,300,325);          line(435,125,435,170);
    92.             line(260,260,385,260);          line(245,300,245,353);
    93.             line(295,300,325,300);          line(270,275,270,325);
    94.             line(295,285,360,285);          line(325,300,325,353);
    95.             line(325,300,360,300);          line(270,260,270,290);
    96.             line(350,325,385,325);          line(260,230,260,260);
    97.             line(435,255,460,255);          line(295,285,295,300);
    98.             line(460,265,485,265);          line(385,260,385,325);
    99.             line(460,300,507,300);          line(360,285,360,300);
    100.             line(410,325,485,325);          line(460,255,460,265);
    101.             line(385,300,410,300);          line(485,230,485,240);
    102.             line(485,240,507,240);          line(485,265,485,275);
    103.             line(410,275,435,275);          line(460,290,460,300);
    104.             line(335,235,410,235);          line(410,325,410,353);
    105.                                             line(435,255,435,325);
    106.                                             line(310,230,310,260);
    107.                                             line(160,127,160,150);
    108.  
    109.         }
    110.         void an()
    111.         {   setcolor(getbkcolor());
    112.             circle(x,y,r);
    113.         }
    114. };
    115. char getkey(int &dx,int &dy)
    116. {   int ch1,ch2;
    117.     dx=dy=0;
    118.     while(1)
    119.     {   ch1=getch();
    120.         if(ch1==0)
    121.         ch2=getch();
    122.         if(ch1=='q'|| ch1=='Q') return('q');
    123.         if(ch1==0&&(ch2==80||(ch2==72)||(ch2==75)||(ch2==77)))
    124.         {   if(ch2==80) dy=1;
    125.             else
    126.                 if(ch2==72) dy=-1;
    127.                 else
    128.                     if(ch2==77) dx=1;
    129.                     else dx=-1;
    130.                     return(0);
    131.         }
    132.     }
    133. }
    134. void TRON::dichuyen(int b)
    135. {   int dx,dy;
    136.     while(1)
    137.     {   hien();
    138.         if(getkey(dx,dy)=='q') break;
    139.         an();
    140.         x+=b*dx;
    141.         y+=b*dy;
    142.         if(x>510-r||x<140) x=-x;
    143.         if(y>352-r||y<138) y=-y;
    144.         if((x+r>=235)&&(x+r<=310))
    145.         {   y=147-r;
    146.             x+=b*dx;
    147.         }
    148.         if((y+r>=125)&&(y+r<=150))
    149.         {       y+=b*dy;
    150.             if(x>=305)
    151.                 x=300;
    152.                 if((y+r>=125)&&(y+r<=150))
    153.                        {    if((x<225)&&(x>205))
    154.                         x=222;  x+=b*dx;
    155.                        }
    156.          }
    157.         if((x>155)&&(x<230))
    158.         {       if((y>130)&&(y<190))
    159.                    {    y+=b*dy;
    160.                     x+=b*dx;
    161.                    }
    162.                    if((y==147-r>130)&&(y==147-r<190))
    163.                 x+=b*dx;
    164.                 y+=b*dy;
    165.                 if(y=190)
    166.                 x+=b*dx;
    167.           /* if((x>155)&&(x<175))
    168.            {        if((y>130)&&(y<165))
    169.             {   y+=b*dy;
    170.                 x+=b*dx;
    171.             }
    172.             if(y=165)
    173.             x+=b*dx;
    174.             y+=b*dy;*/
    175.            }
    176.  
    177.     }
    178. }
    179. void ktdh()
    180. {   int gm=0,gd=0;
    181.     initgraph(&gm,&gd,"C:\\tc\\bgi");
    182.     if(graphresult()!=0)
    183.     {   cout<<"loi do hoa";
    184.         getch();
    185.         exit(1);
    186.     }
    187. }
    188. void main()
    189. {   clrscr();
    190.     ktdh();
    191.     outtextxy(240,30,"End_of_the_world");
    192.     int x,y;
    193.     MOUSE m;
    194.        m.khoitao();
    195.     m.hienchuot();
    196.     setlinestyle(0,0,1);
    197.     while(1)
    198.     {   if(m.bamchuot()==1) break;
    199.     }
    200.     TRON t(298,137,10);
    201.     outtextxy(278,115,"start");
    202.     outtextxy(415,355,"end");
    203.     t.dichuyen(2);
    204.      int u[101],v[101];
    205.        int i,n;
    206.        char *p[101];
    207.        //ve bau troi day sao
    208.        for(i=1;i<=3000;i++)
    209.        {    putpixel(random(getmaxx()),random(getmaxy()),random(getmaxcolor()));
    210.        }
    211.        //luu hien trang 100 hinh chu nhat tren man hinh de khoi phuc
    212.        for(i=1;i<=100;i++)
    213.        {
    214.     u[i]=random(getmaxx())-10;
    215.     v[i]=random(getmaxy())-10;
    216.     if(u[i]<0) u[i]=0;
    217.     if(v[i]<0) v[i]=0;
    218.     n=imagesize(u[i],v[i],u[i]+10,v[i]+10);
    219.     p[i]=(char*)malloc(n);
    220.     getimage(u[i],v[i],u[i]+10,v[i]+10,p[i]);
    221.        }
    222.        while(!kbhit());
    223.        getch();
    224.        getch();
    225.        closegraph();
    226. }

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Hãy chỉ ra lỗi ở đâu, lỗi như thế nào mọi người mới có thể giúp. Đến hỏi một vấn đề mà cũng còn không biết cách hỏi làm sao, dạo này rất bực mình với các bạn sinh viên lên đây quăng bài quá.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    04 2009
    Bài viết
    2

    em muốn hỏi cái sự va cham của đường tròn với đường thẳng ở trong bài.Nếu gặp đường thẳng thì ko đi qua dc.phải đi dường khác.
    Đã được chỉnh sửa lần cuối bởi hizo : 09-04-2009 lúc 04:16 PM.

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

  1. code c chạy như thế nào?
    Gửi bởi hackerviet trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 31
    Bài viết cuối: 27-08-2013, 12:55 PM
  2. các bạn cho mình hỏi sao đoạn code của mình ko chạy thế
    Gửi bởi quocdatuit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 09-11-2012, 09:11 PM
  3. Trình bày code như thế nào để gởi lên Voj có thể chấm được
    Gửi bởi johanncruyf trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 01-07-2011, 03:57 PM
  4. Cách mô phỏng Debug de hiện code của chính chương trình khi nó chạy như thế nào ???
    Gửi bởi nhatbcvt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 01-01-2011, 09:41 AM
  5. code chặn thực thi chương trình như thế nào?
    Gửi bởi levanhau03 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 12-11-2010, 11:09 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