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

Đề tài: Thắc mắc phần ĐIỂM trong trò chơi "PINBALL" (lập trình hướng đối tượng)

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

    Red face Thắc mắc phần ĐIỂM trong trò chơi "PINBALL" (lập trình hướng đối tượng)

    Các a đi qua xem hộ e cái này với ạ! Phần điểm nó cộng k như ý muốn. E muốn khi đập vào gạch thì điểm nó ++ nhưng k đc

    C Code:
    1. #include<conio.h>
    2. #include<stdio.h>
    3. #include<stdlib.h>
    4. #include<graphics.h>
    5. #include<iostream.h>
    6. #include<dos.h>
    7. //============================================//
    8. class HCN;
    9. class TUONG;
    10. class BONG;
    11. class THANH;
    12. class PINBALL;
    13. //===========================================//
    14.  
    15. class HCN
    16. {
    17.     private:
    18.         int x,y,d,r,m;
    19.     public:
    20.         void taoHCN(int,int,int,int,int);
    21.         void ve();
    22.         void xoa();
    23.         int &getX();
    24.         int &getY();
    25.         int &getD();
    26.         int &getR();
    27. };
    28. class TUONG
    29. {
    30.     private:
    31.         HCN a[50];
    32.         int n;
    33.     public:
    34.         void taotuong();
    35.         void ve();
    36.         void xoa();
    37.         HCN getTUONG(int k)
    38.         {
    39.             return a[k];
    40.         }
    41.         int &getN()
    42.         {
    43.             return n;
    44.         }
    45. };
    46. class BONG
    47. {
    48.     private:
    49.         int x,y,r,m;
    50.     public:
    51.         void taobong(int,int,int,int);
    52.         void ve();
    53.         void xoa();
    54.         int &getX();
    55.         int &getY();
    56.         int &getR();
    57. };
    58. class THANH
    59. {
    60.     private:
    61.         int x,y,d,r,m;
    62.     public:
    63.         void taothanh(int,int,int,int,int);
    64.         void ve();
    65.         void xoa();
    66.         int &getX();
    67.         int &getY();
    68.         int &getD();
    69.         int &getR();
    70. };
    71.  
    72.  
    73. class PINBALL
    74. {
    75.     private:
    76.         TUONG tuong;
    77.         BONG bong;
    78.         THANH thanh;
    79.     public:
    80.         void khoitao();
    81.         void play();
    82.         int ktDobong();
    83.         int ktTruotbong();
    84. };
    85. //================================================//
    86. //---------Cac ham trong class BONG----------------//
    87.  
    88. void BONG::taobong(int x1,int y1,int r1,int m1)
    89.     {
    90.         x=x1;
    91.         y=y1;
    92.         r=r1;
    93.         m=m1;
    94.     }
    95. void BONG::ve()
    96.     {
    97.         setcolor(m);
    98.         circle(x,y,r);
    99.         circle(x,y,r+1);
    100.     }
    101. void BONG::xoa()
    102.     {
    103.         setcolor(BLACK);
    104.         circle(x,y,r);
    105.         circle(x,y,r+1);
    106.     }
    107.  
    108. int &BONG::getX()
    109.     {
    110.         return x;
    111.     }
    112. int &BONG::getY()
    113.     {
    114.         return y;
    115.     }
    116. int &BONG::getR()
    117.     {
    118.         return r;
    119.     }
    120. //----------------- Cac ham trong class HCN---------//
    121. void HCN::taoHCN(int x1,int y1,int d1, int r1, int m2)
    122.     {
    123.         x=x1;
    124.         y=y1;
    125.         d=d1;
    126.         r=r1;
    127.         m=m2;
    128.  
    129.     }
    130. void HCN::ve()
    131.     {
    132.         setcolor(m);
    133.         rectangle(x,y,x+d,y+r);
    134.  
    135.     }
    136. void HCN::xoa()
    137.     {
    138.         setcolor(getbkcolor());
    139.         rectangle(x,y,x+d,y+r);
    140.     }
    141.  
    142. int &HCN::getX()
    143.     {
    144.         return x;
    145.            //   return x2;
    146.     }
    147. int &HCN::getY()
    148.     {
    149.         return y;
    150.     }
    151. int &HCN::getD()
    152.     {
    153.         return d;
    154.     }
    155. int &HCN::getR()
    156.     {
    157.         return r;
    158.     }
    159. //----------------------------------------------//
    160. void ktdh()
    161.     {
    162.         int gm=0,gd=0;
    163.         initgraph(&gm,&gd,"..\\BGI");
    164.         if(graphresult()!=0)
    165.         {
    166.             cout<<"Loi do hoa";getch();exit(1);
    167.         }
    168.     }
    169.  
    170. //------------------ tao khung---------------//
    171. void khung(int maukhung)
    172.     {
    173.         setcolor(maukhung);
    174.         rectangle(0,0,getmaxx(),getmaxy());
    175.         line(getmaxx()-70,0, getmaxx()-70, getmaxx());
    176.         setcolor(13);
    177.         outtextxy(getmaxx()-50, 50,"DIEM");
    178.         outtextxy(getmaxx()-50, 150,"TRUOT");
    179.         setcolor(WHITE);
    180.         outtextxy(getmaxx()-60, 350,"PINBALL");
    181.         outtextxy(getmaxx()-50, 365,"GAME");
    182.         outtextxy(getmaxx()-50, 380,"10B3");
    183.  
    184.     }
    185. int diem=0,truot=0;
    186. void sodiem()
    187. {
    188.   char s[3];
    189.   setcolor(BLACK);
    190.   setfillstyle(SOLID_FILL, BLACK);
    191.   bar(getmaxx()-50, 60, getmaxx()-5,90);
    192.   sprintf(s, "%d",diem);
    193.   setcolor(YELLOW);
    194.   outtextxy(getmaxx()-37, 70, s);
    195. }
    196. void sotruot()
    197. {
    198.   char s[3];
    199.   setcolor(BLUE);
    200.   setfillstyle(SOLID_FILL, BLACK);
    201.   bar(getmaxx()-50, 160, getmaxx()-10, 180);
    202.   sprintf(s, "%d",truot);
    203.   setcolor(YELLOW);
    204.   outtextxy(getmaxx()-33,170, s);
    205. }
    206. //--------- Cac ham trong class THANH--------//
    207. void THANH::taothanh(int x1,int y1,int d1, int r1, int m1)
    208.     {
    209.         x=x1;
    210.         y=y1;
    211.         d=d1;
    212.         r=r1;
    213.         m=m1;
    214.  
    215.     }
    216. void THANH::ve()
    217.     {
    218.         setcolor(m);
    219.         setfillstyle(1,13);
    220.         rectangle(x,y,x+d,y+r);
    221.     }
    222. void THANH::xoa()
    223.     {
    224.         setcolor(getbkcolor());
    225.         setfillstyle(1,getbkcolor());
    226.         rectangle(x,y,x+d,y+r);
    227.     }
    228.  
    229. int &THANH::getX()
    230.     {
    231.         return x;
    232.     }
    233. int &THANH::getY()
    234.     {
    235.         return y;
    236.     }
    237. int &THANH::getD()
    238.     {
    239.         return d;
    240.     }
    241. int &THANH::getR()
    242.     {
    243.         return r;
    244.     }
    245.  
    246. //----------------- Cac ham trong class TUONG ---------//
    247. void TUONG::taotuong()
    248.     {
    249.          int i,j;
    250.         n=9;
    251.         a[0].taoHCN(10,5,50,10,WHITE);
    252.           for(i=1;i<=n;i++)
    253.              {
    254.             a[i].taoHCN(a[i-1].getX()+56,5,50,10,WHITE);
    255.               }
    256.     }
    257. void TUONG::ve()
    258.     {
    259.         for(int i=0;i<=n;i++)
    260.            {    setcolor(WHITE);
    261.             a[i].ve();
    262.            }
    263.     }
    264. void TUONG::xoa()
    265.     {
    266.         for(int i=0;i<=n;i++)
    267.         a[i].xoa();
    268.     }
    269. //=================================================//
    270. void PINBALL::khoitao()
    271. {
    272.     int maukhung;
    273.     maukhung=rand()%14+1;
    274.     khung(maukhung);
    275.     sodiem();
    276.     sotruot();
    277.     bong.taobong(240,454,5,YELLOW);
    278.     bong.ve();
    279.     thanh.taothanh(200,466,80,10,WHITE);
    280.     thanh.ve();
    281.     tuong.taotuong();
    282.     tuong.ve();
    283. }
    284. void PINBALL::play()
    285. {
    286.     khoitao();
    287.     int dx=1;
    288.     int dy=1;
    289.     int i;
    290.     char ch;
    291.     int n=11;
    292.     do
    293.     {
    294.         int xb,yb;
    295.         xb=bong.getX();
    296.         yb=bong.getY();
    297.         bong.ve();
    298.         delay(5);
    299.         bong.xoa();
    300.         bong.getX()+=dx;
    301.         bong.getY()-=dy;
    302.         if(bong.getX()>getmaxx()-78||bong.getX()<8)
    303.             {
    304.             dx=-dx;
    305.             }
    306.         if(bong.getY()<8||abs(thanh.getY()-bong.getY())<=8&&thanh.getX()<=bong.getX()&&bong.getX()<=(thanh.getX()+80))
    307.             {
    308.             dy=-dy;
    309.             }
    310.         for(i=0;i<=n;i++)
    311.         {
    312.             if(abs(yb-tuong.getTUONG(i).getY()-10)<=5&&xb>tuong.getTUONG(i).getX()&&xb<(tuong.getTUONG(i).getX()+50))
    313.                 {
    314.                 tuong.getTUONG(i).xoa();
    315. //                  dy=-dy;
    316.                       //    dx=dx;
    317.                       diem++;
    318.                     sodiem();
    319.                     break;
    320.                 }
    321.         }
    322.  
    323.  
    324.         if((xb<thanh.getX()||xb>(thanh.getX()+80))&&yb>=(getmaxy()-12))
    325.         {
    326.             truot++;
    327.             bong.taobong(thanh.getX()+40,thanh.getY()-10,5,YELLOW);
    328.             bong.ve();
    329.             delay(5);
    330.             bong.xoa();
    331.             bong.getX()+=dx;
    332.             bong.getY()-=dy;
    333.             sotruot();
    334.         }
    335.         if(truot==3)
    336.         {
    337.             break;
    338.         }
    339.         if(kbhit())
    340.         {
    341.         ch=getch();
    342.         if(ch==27)
    343.         break;
    344.         if(ch==77&&thanh.getX()<getmaxx()-165)
    345.             {
    346.                 thanh.xoa();
    347.                 thanh.getX()=thanh.getX()+15;
    348.                 thanh.ve();
    349.             }
    350.         if(ch==75&&thanh.getX()>10)
    351.             {
    352.                 thanh.xoa();
    353.                 thanh.getX()=thanh.getX()-15;
    354.                 thanh.ve();
    355.             }
    356.         }
    357.     } while(ch!=27);
    358. }
    359. void main()
    360. {
    361.     ktdh();
    362.     PINBALL ok;
    363.     ok.play();
    364.     getch();
    365. }
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi Yoh : 06-12-2011 lúc 04:02 PM.

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

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Trả lời: 4
    Bài viết cuối: 14-09-2011, 11:01 PM
  3. Phân biệt "Công nghệ", "Ngôn ngữ", "Công cụ" trong thế giới lập trình
    Gửi bởi nhuan07 trong diễn đàn Thắc mắc chung
    Trả lời: 2
    Bài viết cuối: 09-06-2011, 08:45 AM
  4. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM
  5. Lập trình C++ khai báo biến "int" "float" khác nhau như thế nào? (giúp em gấp)
    Gửi bởi hacphieu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 02-04-2011, 10:57 AM

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