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ố 27 kết quả

Đề tài: Mã nguồn game | Một số game nhỏ trên C

  1. #1
    Ngày gia nhập
    09 2006
    Bài viết
    62

    Mặc định Mã nguồn game | Một số game nhỏ trên C

    Bắn đĩa bay

    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    
    #define MAX 256
    
    int BoyerMoore(char *source, char *find);
    
    void main()
    {
      char source[MAX], find[MAX];
      int f;
    
      printf("\nNhap vao chuoi nguon : ");
      gets(source);
      printf("Nhap vao chuoi tim kiem : ");
      gets(find);
    
      if ((f = BoyerMoore(source, find)) > 0)
        printf("chuoi tim thay tai chi so %d", f);
      else
        printf("Khong tim thay chuoi da cho", f);
      getch();
    }
    
    int BoyerMoore(char *source, char *find)
    {
      int skip[MAX], i = 0, len, j=-1, lensource;
    
      len = strlen(find);
      lensource = strlen(source);
      for (i=0; i<MAX; i++)
        skip[i] = len-1;
      for (i=0; i<len; i++)
        if (skip[find[i]] == len-1)
           skip[find[i]] = len-i-1;
    
      i = j = len-1;
      do {
        if (source[i] == find[j])
        {
          i--;
          j--;
        }
        else
        {
          if (len-j+1 > skip[source[i]])
            i += len-j+1;
          else
            i += skip[source[i]];
          j = len-1;
        }
      } while (j>0 && i<lensource);
    
      if (j<=0)
        return i;
      else
        return -1;
    }
    
    st (Y:DY)
    Đã được chỉnh sửa lần cuối bởi iamvtn : 17-11-2007 lúc 01:43 PM.
    Click here for more Info of Cviet-Translator-Group

    ! be thankful for small blessings...

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    62

    Mặc định Trò chơi logic

    Trò chơi logic
    C Code:
    1. #include <conio.h>
    2. #include <dos.h>
    3. #include <string.h>
    4. #include <stdlib.h>
    5. #include<stdio.h>
    6. int day[7] = {-1,-1,-1,-1,-1,-1,-1};
    7. int sonhap[4];
    8. int somay[4];
    9. int solanthu;
    10. int timthay;
    11.  
    12. void khoitao()
    13. {
    14.   char tieude[] = "L O G I C    G A M E";
    15.   int j, i, dich;
    16.   textmode(C40);
    17.   clrscr();
    18.   textcolor(YELLOW);
    19.   dich = (40 - strlen(tieude)) / 2;
    20.   for (i=strlen(tieude)-1; i>=0; i--)
    21.   {
    22.     movetext(1,3,39,3,2,3);
    23.     gotoxy(1,3);
    24.     putch(tieude[i]);
    25.     delay(40);
    26.   }
    27.   for (i=1; i<=dich; i++)
    28.   {
    29.     movetext(1,3,39,3,2,3);
    30.     gotoxy(1,3);
    31.     putch(' ');
    32.     delay(40);
    33.   }
    34.   randomize();
    35.   for (i=0; i<4; i++)
    36.   {
    37.     do {
    38.       j = random(6)+1;
    39.     } while (day[j] != -1);
    40.     day[j] = i;
    41.     somay[i] = j;
    42.    // printf ("%d",&j);
    43.   }
    44.   gotoxy(14,5);         cprintf("ÉÍÍÍÍÍÍÑÍÍÍÍÍÍ»");
    45.   for (i=0; i<6; i++)
    46.   {
    47.     gotoxy(14,5+i*2+1); cprintf("º      ³      º");
    48.     gotoxy(14,5+i*2+2); cprintf("ÇÄÄÄÄÄÄÅÄÄÄÄÄĶ");
    49.   }
    50.   gotoxy(14,17);        cprintf("ÈÍÍÍÍÍÍÏÍÍÍÍÍͼ");
    51.   solanthu = 1;
    52.   timthay = 0;
    53.   textcolor(WHITE);
    54.   gotoxy(1, 25);
    55.   cprintf("Nhap chuoi 4 so khac nhau tu 1 den 6");
    56. }
    57.  
    58. void nhapso()
    59. {
    60.   char c;
    61.   int i;
    62.  
    63.   for (i=0; i<4; i++)
    64.     sonhap[i]=0;
    65.   gotoxy(16,5+solanthu*2-1);
    66.   do {
    67.     c = getch();
    68.     switch(c)
    69.     {
    70.       case '1' :
    71.       case '2' :
    72.       case '3' :
    73.       case '4' :
    74.       case '5' :
    75.       case '6' : textcolor(c-39);
    76.    cprintf("%c",c);
    77.    sonhap[wherex()-16-1] = c - 48;
    78.    if (wherex()==20)
    79.      gotoxy(wherex()-1, wherey());
    80.    break;
    81.       case 0   :
    82.    c = getch();
    83.    switch(c)
    84.    {
    85.      case 75 : if (wherex()>16)
    86.           gotoxy(wherex()-1,wherey());
    87.         break;
    88.      case 77 : if (wherex()<19)
    89.           gotoxy(wherex()+1,wherey());
    90.         break;
    91.    }
    92.    break;
    93.       default :  sound(880);
    94.    delay(100);
    95.    nosound();
    96.     }
    97.   } while (!((c=='\r') && (sonhap[0] != 0) && (sonhap[1] != 0)
    98.      && (sonhap[2] != 0) && (sonhap[3] != 0)));
    99. }
    100.  
    101. void kiemtra()
    102. {
    103.   int diem = 0, i;
    104.   for (i=0; i<4; i++)
    105.     if (day[sonhap[i]] != -1)
    106.        if (day[sonhap[i]] == i)
    107.    diem += 10;
    108.        else
    109.    diem ++;
    110.   if (diem==40)
    111.     timthay=1;
    112.   else
    113.   {
    114.     int sotrung, sotrat;
    115.     sotrung=diem / 10;
    116.     sotrat = diem % 10;
    117.     textcolor(GREEN);
    118.     gotoxy(23,5+solanthu*2-1);
    119.     for (i=1; i<=sotrung; i++)
    120.       cprintf("+");
    121.     textcolor(WHITE);
    122.     for (i=1; i<=sotrat; i++)
    123.       cprintf("-");
    124.     solanthu ++;
    125.   }
    126. }
    127.  
    128. void main()
    129. {
    130.   int i;
    131.  
    132.   khoitao();
    133.   do {
    134.     nhapso();
    135.     kiemtra();
    136.   } while ((solanthu <= 6) && (timthay==0));
    137.   if (timthay==1)
    138.   {
    139.     textcolor(YELLOW+BLINK);
    140.     gotoxy(1,23);
    141.     cprintf("Ban da thang.");
    142.   }
    143.   else
    144.   {
    145.     textcolor(GREEN+BLINK);
    146.     gotoxy(1,23);
    147.     cprintf("Ban da thua.");
    148.     textcolor(YELLOW);
    149.   }
    150.   cprintf(" Ket qua dung = ");
    151.   for (i=0; i<4; i++)
    152.   {
    153.     textcolor(somay[i]+9+BLINK);
    154.     cprintf("%c",somay[i]+48);
    155.   }
    156.   getch();
    157. }
    Đã được chỉnh sửa lần cuối bởi iamvtn : 17-11-2007 lúc 01:43 PM.
    Click here for more Info of Cviet-Translator-Group

    ! be thankful for small blessings...

  3. #3
    Ngày gia nhập
    09 2006
    Bài viết
    62

    Mặc định Ô ăn quan

    Ô ăn quan

    * Su dung cac nut S(trai) F( trai)
    Su dung nut E de chon o di */
    C Code:
    1. /* day la phien ban dau cho nen hoi dai va phan do hoa khong chi tiet
    2. mong cac bac thong cam,cu cho nhan xet nhe*/
    3. #include<stdio.h>
    4. #include<conio.h>
    5. #include<math.h>
    6. #include<graphics.h>
    7. #include<stdlib.h>
    8. #include<string.h>
    9. int plydepth;
    10. char c;
    11. int t[12];
    12. int rightplay(int x[],int i)
    13. {
    14. int n=x[i];
    15. int j,k;
    16. x[i]=0;
    17. for (j=1;j<=n;j++)
    18. {
    19. k=(i+j)%12;
    20. x[k]=x[k]+1;
    21. }
    22. if ((x[(k+1)%12]!=0)&&(k!=5)&&(k!=11))
    23. rightplay(x,k+1);
    24. else return k;
    25. }
    26. int leftplay(int x[],int i)
    27. {
    28. int n=x[i];
    29. int j,k;
    30. x[i]=0;
    31. for (j=1;j<=n;j++)
    32. {
    33. k=(i+12-j)%12;
    34. x[k]=x[k]+1;
    35. }
    36. if ((x[(k+11)%12])!=0&&(k!=1)&&(k!=7))
    37. leftplay(x,(k+11)%12);
    38. else return k;
    39. }
    40. int rightvalue(int x[],int i)
    41. {
    42. int t=0;
    43. int d=0;
    44. if (x[i]!=0)
    45. {
    46. t=rightplay(x,i);
    47. if ((x[(t+1)%12]==0)&&(x[(t+2)%12]!=0)&&(t!=5)&&(t!=11))
    48. {
    49. d=x[(t+2)%12];
    50. x[(t+2)%12]=0;
    51. if ((x[(t+3)%12]==0)&&(x[(t+4)%12]!=0)&&(t!=3)&&(t!=9))
    52. {
    53. d=d+x[(t+4)%12];
    54. x[(t+4)%12]=0;
    55. if ((x[(t+5)%12]==0)&&(x[(t+6)%12]!=0)&&(t!=1)&&(t!=7))
    56. {
    57. d=d+x[(t+6)%12];
    58. x[(t+6)%12]=0;
    59. if ((x[(t+7)%12]==0)&&(x[(t+8)%12]!=0))
    60. {
    61. d=d+x[(t+8)%12];
    62. x[(t+8)%12]=0;
    63. if ((x[(t+9)%12]==0)&&(x[(t+10)%12]!=0))
    64. {
    65. d=d+x[(t+10)%12];
    66. x[(t+10)%12]=0;
    67. if ((x[(t+11)%12]==0)&&(x[(t+12)%12]!=0))
    68. {
    69. d=d+x[(t+12)%12];
    70. x[(t+12)%12]=0;
    71. }
    72. }
    73. }
    74. }
    75. }
    76. }
    77. };
    78. return d;
    79. }
    80.  
    81.  
    82. int leftvalue(int x[],int i)
    83. {
    84. int t=0;
    85. int d=0;
    86. if (x[i]!=0)
    87. {
    88. t=leftplay(x,i);
    89. if ((x[(t+11)%12]==0)&&(x[(t+10)%12]!=0)&&(t!=1)&&(t!=7))
    90. {
    91. d=x[(t+10)%12];
    92. x[(t+10)%12]=0;
    93. if ((x[(t+9)%12]==0)&&(x[(t+8)%12]!=0)&&(t!=3)&&(t!=9))
    94. {
    95. d=d+x[(t+8)%12];
    96. x[(t+8)%12]=0;
    97. if ((x[(t+7)%12]==0)&&(x[(t+6)%12]!=0)&&(t!=5)&&(t!=11))
    98. {
    99. d=d+x[(t+6)%12];
    100. x[(t+6)%12]=0;
    101. if ((x[(t+5)%12]==0)&&(x[(t+4)%12]!=0))
    102. {
    103. d=d+x[(t+4)%12];
    104. x[(t+4)%12]=0;
    105. if ((x[(t+3)%12]==0)&&(x[(t+2)%12]!=0))
    106. {
    107. d=d+x[(t+2)%12];
    108. x[(t+2)%12]=0;
    109. if ((x[(t+1)%12]==0)&&(x[t]!=0))
    110. {
    111. d=d+x[t];
    112. x[t]=0;
    113. }
    114. }
    115. }
    116. }
    117. }
    118. }
    119. };
    120. return d;
    121. }
    122. int choice1(int x[])
    123. {
    124. int m[10];
    125. int i,j;
    126. int max=0;
    127. for (i=0;i<=9;i++)
    128. {
    129. int y[12];
    130. int j;
    131. for (j=0;j<=11;j++) y[j]=x[j];
    132. if (i>=5) m[i]=rightvalue(y,i-4);
    133. else m[i]=leftvalue(y,i+1);
    134. }
    135. for (i=1;i<=5;i++)
    136. if (x[i]>0)
    137. {
    138. max=i-1;
    139. break;
    140. }
    141. for (i=0;i<=9;i++)
    142. if (m[i]>m[max]) max=i;
    143. return max;
    144. }
    145.  
    146. int choice(int x[],int deep)
    147. {
    148. int m[10];
    149. int i,j;
    150. int h;
    151. int max=0;
    152. for (i=0;i<=9;i++)
    153. {
    154. int y[12];
    155. int j;
    156. for (j=0;j<=11;j++) y[j]=x[j];
    157. if (i>=5)
    158. {
    159. int t,s;
    160. h=h+1;
    161. t=rightvalue(y,i+2);
    162. s=choice1(y);
    163. if (s<5)
    164. {
    165. m[i]=t-leftvalue(y,s+1) ;
    166. if (h<=3) m[i]=choice(y,deep) ;
    167. }
    168. if (s>=5)
    169. {
    170. m[i]=t-rightvalue(y,s-4);
    171. if (h<=3) m[i]=choice(y,deep);
    172. }
    173. if (h==4) h=0;
    174. };
    175. if ((i>=0)&&(i<5))
    176. {
    177. int t,s;
    178. h=h+1;
    179. t=leftvalue(y,i+7);
    180. s=choice1(y);
    181. if (s<5)
    182. {
    183. m[i]=t-leftvalue(y,s+1);
    184. if (h<=3)m[i]=choice(y,deep);
    185. }
    186. if (s>=5)
    187. {
    188. m[i]=t-rightvalue(y,s-4);
    189. if (h<=3) m[i]=choice(y,deep);
    190. }
    191. if (h==4) h=0;
    192. }
    193. }
    194. for (i=7;i<=11;i++)
    195. if (x[i]>0)
    196. {
    197. max=i-2;
    198. break;
    199. }
    200. for (i=0;i<=9;i++)
    201. {
    202. if ((m[i]>m[max])&&(i<5)&&(x[i+7]!=0)) max=i;
    203. if ((m[i]>m[max])&&(i>=5)&&(x[i+2]!=0)) max=i;
    204. }
    205. return max;
    206. }
    207.  
    208.  
    209. void display(int mark[])
    210. {
    211. int tong=0;
    212. gotoxy(10,18);printf("You:%d",mark[0]);
    213. gotoxy(10,19);printf("Computer:%d",mark[1]);
    214. gotoxy(10,20);printf("So vien con lai:");
    215. tong=70-mark[0]-mark[1];
    216. printf(tong);
    217. gotoxy(10,21);printf("An B de lui mot nuoc");
    218. }
    219. void test(int x[],int mark[]);
    220. void computerplay(int x[],int mark[]);
    221. void moveright(int x[],int i,int mark[]);
    222. void moveleft(int x[],int i,int mark[]);
    223. void paint(int x[],int mark[]);
    224. void test1(int x[],int mark[]);
    225. void test2(int x[],int mark[]);
    226. void setup(void);
    227. void draw(int x,int y,int m,int value);
    228.  
    229.  
    230.  
    231. void main()
    232. {
    233. int dem;
    234. int a[12],b[12];
    235. int i,m;
    236. int mark[2];
    237. setup();
    238. do
    239. {
    240. if (c=='q') exit(1);
    241. clrscr();
    242. setbkcolor(GREEN);
    243. mark[0]=0;
    244. mark[1]=0;
    245. for (i=0;i<=11;i++)
    246. {
    247. if ((i==0)||(i==6)) a[i]=10;
    248. else a[i]=5;
    249. }
    250. settextstyle(3,0,4);
    251. outtextxy(10,200," Chose :Easy(E) Moderate(M) Hard(H) ?");
    252. c=getch();
    253. switch(c)
    254. {
    255. case 'e':plydepth=1;
    256. case 'm':plydepth=4;
    257. case 'h':plydepth=1000;
    258. default :plydepth=2;
    259. }
    260. outtextxy(70,300,"Press G neu muon di sau:");
    261. c=getch();
    262. if (c=='g') computerplay(a,mark);
    263. dem=0;
    264. if (c!='g') paint(a,mark);
    265. setcolor(BLUE);
    266. rectangle(200,150,250,200);
    267. draw(225,175,BLUE,a[1]);
    268. c=getch();
    269. do
    270. {
    271. if (c=='q') exit(1);
    272. if ((c=='f')&&(dem<4))
    273. {
    274. dem=dem+1;
    275. setcolor(BLUE);
    276. rectangle(200+dem*50,150,250+dem*50,200);
    277. draw(225+dem*50,175,BLUE,a[dem+1]);
    278. draw(225+(dem-1)*50,175,BLACK,a[dem]);
    279. setcolor(RED);
    280. rectangle(150+dem*50,150,200+dem*50,200);
    281. }
    282. if ((c=='s')&&(dem>0))
    283. {
    284. dem=dem-1;
    285. setcolor(BLUE);
    286. rectangle(200+dem*50,150,250+dem*50,200);
    287. draw(225+dem*50,175,BLUE,a[dem+1]);
    288. draw(225+(dem+1)*50,175,BLACK,a[dem+2]);
    289. setcolor(RED);
    290. rectangle(250+dem*50,150,300+dem*50,200);
    291. }
    292. if ((c=='e')&&(a[dem+1]!=0))
    293. {
    294. settextstyle(1,0,4);
    295. outtextxy(200,400,"Waiting.....(T/P)..");
    296. c=getch();
    297. setcolor(getbkcolor());
    298. outtextxy(200,400,"Waiting.....(T/P)..");
    299. if ((c=='f')||(c=='s'))
    300. {
    301.  
    302. if (c=='f') moveright(a,dem+1,mark);
    303. if (c=='s') moveleft(a,dem+1,mark);
    304. setcolor(RED);
    305. settextstyle(1,0,2);
    306. outtextxy(200,450,"An E de may di tiep");
    307. do c=getch(); while (c!='e');
    308. if (c=='e') computerplay(a,mark);
    309. setcolor(getbkcolor());
    310. settextstyle(1,0,2);
    311. outtextxy(200,450,"An E de may di tiep");
    312.  
    313. setcolor(BLUE);
    314. rectangle(200+50*dem,150,250+50*dem,200);
    315. draw(225+50*dem,175,BLUE,a[dem+1]);
    316. }
    317. }
    318. if (c=='b')
    319. { int m;
    320. int tong=0;
    321. for (m=0;m<=11;m++)
    322. a[m]=t[m];
    323. paint(a,mark);
    324. }
    325. c=getch();
    326. if (c=='c') break;
    327. }
    328.  
    329. while (1);
    330. }while (c=='c');
    331. getch();
    332. } /* End Main*/
    333. void setup(void)
    334. {
    335. int gdriver=DETECT,gmode,errorcode;
    336. initgraph(&gdriver,&gmode,"D:\\TUBORC2\\BGI");
    337. errorcode=graphresult();
    338. if (errorcode!=grOk)
    339. {
    340. printf("Graphics error:%s\n",grapherrormsg(errorcode));
    341. printf("Press any key to halt:");
    342. getch();
    343. exit(1);
    344. }
    345. } /*End Setup*/
    346. void draw(int x,int y,int m,int value)
    347. {
    348. int i,j;
    349. setcolor(m);
    350. if ((value>0)&&(value<=5))
    351. for (i=0;i<=value-1;i++) fillellipse(x-15+i*7.5,y,3.5,3.5);
    352. if ((value>5)&&(value<=10))
    353. {
    354. for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y,3.5,3.5);
    355. for (i=0;i<=value-6;i++) fillellipse(x-15+i*7.5,y+7.5,3.5,3.5);
    356. }
    357. if ((value>10)&&(value<=15))
    358. {
    359. for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y,3.5,3.5);
    360. for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y+7.5,3.5,3.5);
    361. for (i=0;i<=value-11;i++) fillellipse(x-15+i*7.5,y-7.5,3.5,3.5);
    362. }
    363. if ((value>15)&&(value<=20))
    364. {
    365. for (j=-1;j<=1;j++)
    366. for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y+7.5*j,3.5,3.5);
    367. for (i=0;i<=value-16;i++) fillellipse(x-15+i*7.5,y+15,3.5,3.5);
    368. }
    369. }
    370. void test(int x[],int mark[])
    371. {
    372. int i;
    373. if ((x[0]==0)&&(x[6]==0))
    374. {
    375. for (i=1;i<=5;i++) mark[0]=mark[0]+x[i];
    376. for (i=7;i<=11;i++) mark[2]=mark[1]+x[i];
    377. paint(x,mark);
    378. setcolor(RED);
    379. settextstyle(3,0,2);
    380. if (mark[0]<mark[1]) outtextxy(250,300,"YOU LOSE!");
    381. if (mark[0]==mark[1]) outtextxy(250,300,"EQUAL!");
    382. if (mark[0]>mark[1]) outtextxy(250,300,"YOU ARE VICTORIOUS!");
    383. gotoxy(15,18);printf("You:%d",mark[0]);
    384. gotoxy(15,19);printf("Computer:%d",mark[1]);
    385. outtextxy(250,350,"Press C if you want to continue!");
    386. }
    387. }
    388.  
    389. void test1(int x[],int mark[])
    390. {
    391. if ((x[1]==0)&&(x[2]==0)&&(x[3]==0)&&(x[4]==0)&&(x[5]==0))
    392. {
    393. x[1]=x[2]=x[3]=x[4]=x[5]=1;
    394. mark[0]=mark[0]-5;
    395. }
    396. }
    397. void test2(int x[],int mark[])
    398. {
    399. if ((x[7]==0)&&(x[8]==0)&&(x[9]==0)&&(x[10]==0)&&(x[11]==0))
    400. {
    401. x[7]=x[8]=x[9]=x[10]=x[11]=1;
    402. mark[1]=mark[1]-5;
    403. }
    404. }
    405. void computerplay(int x[],int mark[])
    406. {
    407. int i,tong;
    408. int m;
    409. int tg[5];
    410. tong=0;
    411. m=choice(x,plydepth);
    412. if (m>=5) mark[1]=mark[1]+rightvalue(x,m+2);
    413. if ((m>=0)&&(m<5)) mark[1]=mark[1]+leftvalue(x,m+7);
    414. test1(x,mark);
    415. paint(x,mark);
    416. test(x,mark);
    417. }
    418. void moveright(int x[],int i,int mark[])
    419. {
    420. int m;
    421. int tong;
    422. for (m=0;m<=11;m++) t[m]=x[m];
    423. mark[0]=mark[0]+rightvalue(x,i);
    424. test2(x,mark);
    425. paint(x,mark);
    426. test(x,mark);
    427. }
    428. void moveleft(int x[],int i,int mark[])
    429. {
    430. int m,tong;
    431. tong=0;
    432. for (m=0;m<=11;m++) t[m]=x[m];
    433. mark[0]=mark[0]+leftvalue(x,i);
    434. test2(x,mark);
    435. paint(x,mark);
    436. test(x,mark);
    437. }
    438. void paint(int x[],int mark[])
    439. {
    440. int i,j;
    441. clrscr();
    442. setbkcolor(GREEN);
    443. setcolor(RED);
    444. for (i=0;i<=4;i++) rectangle(200+50*i,100,250+50*i,150);
    445. for (i=0;i<=4;i++) rectangle(200+50*i,150,250+50*i,200);
    446. line(175,100,200,100);line(175,200,200,200);
    447. line(475,100,450,100);line(475,200,450,200);
    448. arc(175,150,90,270,50);
    449. arc(475,150,270,450,50);
    450.  
    451.  
    452. for (i=7;i<=11;i++) draw(425-(i-7)*50,125,BLACK,x[i]);
    453. for (i=1;i<=5;i++) draw(225+(i-1)*50,175,BLACK,x[i]);
    454. draw(475,150,BLACK,x[6]);
    455. draw(175,150,BLACK,x[0]);
    456. display(mark);
    457. }
    Đã được chỉnh sửa lần cuối bởi iamvtn : 17-11-2007 lúc 01:42 PM.
    Click here for more Info of Cviet-Translator-Group

    ! be thankful for small blessings...

  4. #4
    Ngày gia nhập
    09 2006
    Bài viết
    62

    Mặc định Rắn Săn Mồi

    Rắn Săn Mồi
    C Code:
    1. #include<iostream.h>
    2. #include<graphics.h>
    3. #include<iomanip.h>
    4. #include<conio.h>
    5. #include<dos.h>
    6. #include<stdlib.h>
    7. #include<stdio.h>
    8. #include<time.h>
    9.  
    10. void main()
    11. {
    12. int gdriver = DETECT, gmode, errorcode;
    13. initgraph(&gdriver, &gmode, "//bgi");
    14.  
    15.  
    16. clock_t start,end,r;
    17. int x,y,i,x1,y1,j,l,m,temp,tail,col,scr,scr1,tempo;
    18.  
    19. char scrn[10];
    20. // char key=0;
    21. temp=30;tail=3;
    22. scr1=0;
    23. int a[300],b[300];
    24. i=y=x=0;
    25.  
    26.  
    27. const char up='w';
    28. const char dw='s';
    29. const char ls='a';
    30. const char rs='d';
    31.  
    32. cout<<" RULES FOR THE GAME"<<endl;
    33. cout<<"KEYS---"<<endl<<" w- FORWARD"<<endl<<" a- LEFT TURN"<<endl<<" d- RIGHT TURN"<<endl<<" s- DOWN"<<endl;
    34. cout<<" Q- QUIT"<<endl;
    35. cout<<" TURN CAPS LOCK OFF"<<endl;
    36. cout<<" EAT THE INSECTS N LIVE...U DIE IF U CROSS THE LIMIT / MOVE OVER UR SELF /"<<endl;
    37. cout<<" CROSS UR LEFTOVER SKIN."<<endl;
    38. cout<<" SHEADS SKIN AFTER REGULAR INTERVALS.."<<endl;
    39. cout<<" KEEP MOVING TO FIND FOOD ELSE U DIE"<<endl;
    40. cout<<" POINTS ARE ADDED FOR EVERY INSECT YOU EAT,BUT EAT THE FIRST ONE BEFORE SECOND ONE COMES UP ELSE NO SCORE WILL BE ADDED UP"<<endl<<endl;
    41. cout<<" PRESS MOVE(a) KEY TO CONTINUE.....";
    42. getch();
    43.  
    44. cleardevice();
    45. setbkcolor(9);
    46. for(j=0;j<=7;j++)
    47. a[j]=b[j]=0;
    48.  
    49. rectangle(20,21,600,441);
    50. outtextxy(20,5,"SCORE..");
    51. randomize();
    52. l=(random(520)+60);
    53. if(l<=99)
    54. {l=l/10;
    55. l=l*10;}
    56. else {l=l/10;
    57. l=l*10; }
    58.  
    59. m=(random(400)+40);
    60. if(m<=99)
    61. {m=m/10;
    62. m=m*10; }
    63. else {m=m/10;
    64. m=m*10; }
    65. outtextxy(l,m,"*");
    66.  
    67. char key;
    68. do
    69.  
    70. {
    71.  
    72. setcolor(15);
    73. rectangle(20,21,600,440);
    74. if(i==60||i==120||i==190||i==270)
    75. {
    76. l=(random(520)+50);
    77. if(l<=99)
    78. {l=l/10;
    79. l=l*10;}
    80. else {l=l/10;
    81. l=l*10; }
    82.  
    83. m=(random(400)+30);
    84. if(m<=99)
    85. {m=m/10;
    86. m=m*10; }
    87. else {m=m/10;
    88. m=m*10; }
    89.  
    90. setcolor(15);
    91. outtextxy(l,m,"́");
    92. sound(3800);
    93.  
    94. }
    95.  
    96. start=clock();
    97. key=getch();
    98. end=clock();
    99. r=end-start;
    100. if(r>=15)
    101. { outtextxy(100,100,"YOU ARE TOO SLOW...:-( ");
    102. delay(1000);nosound();break;}
    103.  
    104. if (i==300 )
    105. { i=0;}
    106.  
    107. {
    108. if(key==up)
    109. { y-=10;}
    110. if(key==dw)
    111. { y+=10;}
    112. if(key==ls)
    113. { x-=10;}
    114. if(key==rs)
    115. { x+=10;}
    116. }
    117. setcolor(10);
    118. a[i]= x1=210+x;
    119. b[i]= y1=210+y;
    120. if(x1==l && y1==m)
    121. { scr1++;
    122. scr=10*scr1;
    123. sprintf(scrn,"%d",scr);
    124. nosound();
    125. setcolor(0);
    126. outtextxy(70,5,"ÛÛ");
    127. setcolor(15);
    128. outtextxy(70,5,scrn);
    129.  
    130. temp+=10;tail++; }
    131.  
    132. if(x1==20||x1==600||y1==20||y1==440)
    133. {nosound();break;}
    134.  
    135. col=getpixel(x1,y1);
    136. if(col>0)
    137. break;
    138. nosound();
    139. tempo=tail;
    140.  
    141. if(i>=(299-tempo))
    142. { setcolor(4);
    143. tempo-- ;
    144. }
    145. outtextxy(x1,y1,"X");
    146. setcolor(0);
    147. outtextxy(a[i-tail],b[i-tail],"X" );
    148. i++;
    149.  
    150.  
    151. } while (key !='q');
    152.  
    153. settextstyle(2,0,26);
    154. outtextxy(210,210,"OUT");
    155. getch();
    156. closegraph();
    157.  
    158. }
    Đã được chỉnh sửa lần cuối bởi iamvtn : 17-11-2007 lúc 01:41 PM.
    Click here for more Info of Cviet-Translator-Group

    ! be thankful for small blessings...

  5. #5
    Ngày gia nhập
    09 2006
    Bài viết
    62

    Mặc định Xếp Hình

    Xếp Hình

    C Code:
    1. /* Trò chơi xếp hình với đầy đủ các tính năng*/
    2. #include<stdio.h>
    3. #include<conio.h>
    4. #include<math.h>
    5. #include<string.h>
    6. #include<graphics.h>
    7. #include<ctype.h>
    8. #include<dos.h>
    9. #include<time.h>
    10. #include<stdlib.h>
    11. int KT;
    12. int L,maxspeed,level;
    13. char *img1,*img2,*img3;
    14. int OX,OY;
    15. int a1[16],a2[16],a3[16],a4[16],a5[15],a6[16],a7[16],md[16];
    16. int score,next,mau_ht=CYAN;
    17. int board[200];
    18. unsigned long int per_100()
    19. {
    20. static struct time ti;
    21. unsigned long int t;
    22. gettime(&ti);
    23. t=((ti.ti_hour*60+ti.ti_min)*60+ti.ti_sec)*100+ti.ti_hund;
    24. return t;
    25. }
    26. void rorate(int a[])
    27. {
    28. int tg[16];
    29. int i,j,n;
    30. for(i=0;i<KT;i++) tg[i]=0;
    31. for (i=0;i<=15;i++)
    32. {
    33. n=4*(i/4); j=4*(i-n)+3-n/4;
    34. tg[i]= a[j];
    35. }
    36. for (i=0;i<=KT;i++) a[i]=tg[i];
    37. }
    38. void setupgraph()
    39. {
    40. int gdriver=DETECT,gmode,errorcode;
    41. initgraph(&gdriver,&gmode,"");
    42. errorcode=graphresult();
    43. if (errorcode!=grOk)
    44. {
    45. printf("Graphics error: %s\n",grapherrormsg(errorcode));
    46. printf("Press any key to halt:");
    47. getch();
    48. exit(1);
    49. }
    50. }
    51. void setup()
    52. {
    53. int i;
    54. char st[10];
    55. KT=16; L=45; OX=200;OY=100;score=0;level=1;next=random(7)+1;maxspeed=45;
    56. for (i=0;i<KT;i++)
    57. {
    58. a1[i]=0;a2[i]=0;a3[i]=0;
    59. a4[i]=0;a5[i]=0;a6[i]=0;
    60. }
    61. for (i=0;i<200;i++) board[i]=0;
    62. a1[5]=a1[6]=a1[9]=a1[10]=1;
    63. a2[11]=a2[10]=a2[9]=a2[5]=1;
    64. a3[5]=a3[6]=a3[9]=a3[13]=1;
    65. a4[5]=a4[6]=a4[7]=a4[10]=1;
    66. a5[1]=a5[5]=a5[6]=a5[10]=1;
    67. a6[9]=a6[6]=a6[5]=a6[2]=1;
    68. a7[1]=a7[5]=a7[9]=a7[13]=1;
    69. setupgraph();
    70. setbkcolor(2);
    71. setfillstyle(1,mau_ht);
    72. bar(OX-10,OY-40,OX+220,OY+220);
    73. setfillstyle(1,10);
    74.  
    75. settextstyle(1,0,2);
    76. setfillstyle(1,4); bar(500,40,620,90);outtextxy(510,60,"R-RESTART");
    77. bar(500,120,620,170); outtextxy(510,140,"L-LEVEL");
    78. bar(500,200,620,250); outtextxy(520,220,"Q-QUIT");
    79. bar(500,280,620,330); outtextxy(520,300,"P-PAUSE");
    80. settextstyle(3,0,3);
    81. setcolor(RED);
    82. outtextxy(310,150,"SCORE:");sprintf(st,"%d",score) ;outtextxy(385,150,st);
    83. outtextxy(310,180,"LEVEL:"); sprintf(st,"%d",level);outtextxy(385,180,st);
    84. outtextxy(310,230,"NEXT:");
    85. setcolor(RED);
    86. rectangle(OX-1,OY-1,OX+101,OY+201);
    87. setlinestyle(0,0,3);
    88. setcolor(BLUE);
    89. rectangle(OX-10,OY-40,OX+220,OY+220);
    90. setcolor(BLUE);
    91. line(OX-10,OY-10,OX+220,OY-10);
    92. setcolor(RED);
    93. rectangle(OX-3,OY-3,OX+102,OY+202);
    94. setcolor(RED);
    95. settextstyle(1,0,2);
    96. outtextxy(OX,OY-35,"Design by Trung_dt11");
    97. setlinestyle(0,0,1);
    98. }
    99. void draw(int i,int j,int m,int n)
    100. {
    101. setfillstyle(1,m);
    102. bar(i+1,j+1,i+9,j+9);
    103. setcolor(n);
    104. rectangle(i,j,i+10,j+10);
    105. setcolor(getbkcolor());
    106. }
    107. void draw3(int x,int y,int a[],int col1)
    108. {
    109. int i;
    110. int m,n;
    111. for (i=0;i<KT;i++)
    112. if(a[i]==1)
    113. {
    114. m=i%4;n=i/4;
    115. draw(OX+10*x+10*m,OY+10*y+10*n,col1,BLUE);
    116. }
    117. }
    118. void clear(int x,int y,int a[])
    119. {
    120. int i,m,n,m_ht;
    121. for (i=0;i<KT;i++)
    122. if (a[i]==1)
    123. {
    124. m=i%4; n=i/4;
    125. draw(OX+10*x+10*m,OY+10*y+10*n,mau_ht,mau_ht);
    126. }
    127. }
    128. void newitem()
    129. {
    130. int i,n;
    131. n=next;
    132. next=random(7)+1;
    133. switch (next)
    134. {
    135. case 1: for (i=0;i<KT;i++) md[i]=a1[i];break;
    136. case 2: for (i=0;i<KT;i++) md[i]=a2[i];break;
    137. case 3: for (i=0;i<KT;i++) md[i]=a3[i];break;
    138. case 4: for (i=0;i<KT;i++) md[i]=a4[i];break;
    139. case 5: for (i=0;i<KT;i++) md[i]=a5[i];break;
    140. case 6: for (i=0;i<KT;i++) md[i]=a6[i];break;
    141. case 7: for (i=0;i<KT;i++) md[i]=a7[i];break;
    142. }
    143. setfillstyle(1,mau_ht);
    144. bar(319,259,361,301);
    145. draw3(12,16,md,random(3)+4);
    146. switch (n)
    147. {
    148. case 1: for (i=0;i<KT;i++) md[i]=a1[i];break;
    149. case 2: for (i=0;i<KT;i++) md[i]=a2[i];break;
    150. case 3: for (i=0;i<KT;i++) md[i]=a3[i];break;
    151. case 4: for (i=0;i<KT;i++) md[i]=a4[i];break;
    152. case 5: for (i=0;i<KT;i++) md[i]=a5[i];break;
    153. case 6: for (i=0;i<KT;i++) md[i]=a6[i];break;
    154. case 7: for (i=0;i<KT;i++) md[i]=a7[i];break;
    155. }
    156. }
    157. int test(int x,int y,int a[],int direction)
    158. {
    159. int i,j,m,n;
    160. int bool=0;
    161. int tg[16];
    162. for (i=0;i<KT;i++) tg[i]=a[i];
    163. rorate(tg);
    164. for (i=0;i<KT;i++)
    165. {
    166. if (a[i]==1)
    167. {
    168. m=i%4;n=i/4;j=(y+n)*10+x+m-1;
    169. if (direction==-1&&((x+m==0)||(board[j]==1))) { bool=1;break;}
    170. j=(y+n)*10+x+m+1;
    171. if (direction==1&&((m+x==9)||(board[j]==1))) { bool=1;break;}
    172. j=(y+n+1)*10+x+m;
    173. if (direction==0&&((n+y==19)||(board[j]==1))) { bool=1; break;}
    174. }
    175. if (tg[i]==1&&direction==3)
    176. {
    177. m=i%4;n=i/4;j=(y+n)*10+x+m;
    178. if ((board[j]==1)||(x+m>=10)||(m+x<0)) { bool=1;break;}
    179. }
    180. }
    181. return bool;
    182. }
    183. void putitem(int x,int y,int a[])
    184. {
    185. int i,j,m,n,tg;
    186. for (i=0;i<KT;i++)
    187. if (a[i]==1)
    188. {
    189. m=i%4;n=i/4;j=(y+n)*10+x+m;
    190. board[j]=1;
    191. }
    192. }
    193. void updatescore()
    194. {
    195. int level,i,t,j,m,n,k,h;
    196. char st[10];
    197. for (n=0;n<20;n++)
    198. {
    199. t=0;
    200. for (m=0;m<10;m++) t=t+board[10*n+m];
    201. if (t==10)
    202. {
    203. setfillstyle(1,mau_ht);
    204. bar(382,100,415,300);
    205. score=score+1;
    206. settextstyle(3,0,3);
    207. setcolor(RED);
    208. sprintf(st,"%d",score);outtextxy(385,150,st);
    209. level=score/20+1;
    210. if (level>=10) level=9;
    211. L=maxspeed-4*level;
    212. sprintf(st,"%d",level); outtextxy(385,180,st);
    213. for(i=n;i>=1;i--)
    214. for (j=0;j<10;j++) board[10*i+j]=board[10*(i-1)+j];
    215. for (i=0;i<10;i++) board[i]=0;
    216. }
    217. }
    218. for (k=0;k<200;k++)
    219. {
    220. if (board[k]==0)
    221. {
    222. m=k%10;n=k/10;
    223. draw(OX+10*m,OY+10*n,mau_ht,mau_ht);
    224. }
    225. if (board[k]==1)
    226. {
    227. m=k%10;n=k/10;
    228. draw(OX+10*m,OY+10*n,RED,BLUE);
    229. }
    230. }
    231. }
    232. void create_box()
    233. {
    234. unsigned n;
    235. setcolor(RED); settextstyle(1,0,3);
    236. cleardevice();
    237. setfillstyle(1,BLUE);
    238. bar(10,10,300,80);
    239. outtextxy(20,30,"ARE YOU SUREE (Y/N) ?");
    240. n=imagesize(0,0,310,85);
    241. img1=(char*)malloc(n);
    242. getimage(0,0,310,85,img1);
    243. cleardevice();
    244. bar(10,10,100,40);
    245. outtextxy(20,10,"PAUSE");
    246. n=imagesize(0,0,110,50);
    247. img2=(char*)malloc(n);
    248. getimage(0,0,110,50,img2);
    249. cleardevice();
    250. bar(10,10,250,50);
    251. outtextxy(20,20,"Press From 0 to 9");
    252. n=imagesize(0,0,260,60);
    253. img3=(char*)malloc(n);
    254. getimage(0,0,250,50,img3);
    255.  
    256. }
    257. void msgbox(int x,int y,int choice)
    258. {
    259. if (choice==1) putimage(x,y,img1,XOR_PUT);
    260. if (choice==2) putimage(x,y,img2,XOR_PUT);
    261. if (choice==3) putimage(x,y,img3,XOR_PUT);
    262. }
    263.  
    264. main()
    265. {
    266. int px=4,py=0;
    267. int col1,col2;
    268. int tg,tg1,speed;
    269. char ch1,ch2,ch;
    270. unsigned long int t_bd;
    271. unsigned long int t_ht;
    272. t_bd=per_100();
    273. setupgraph();
    274. create_box();
    275. setup();
    276. randomize();
    277. col1=RED; col2=GREEN;
    278. newitem();
    279. while (1)
    280. {
    281. if (L==2) L=tg;
    282. if (kbhit())
    283. {
    284. if (ch1=='r')
    285. {
    286. cleardevice();
    287. closegraph();
    288. setup();px=4;py=0;
    289. newitem();
    290. }
    291. if ((ch1=getch())==0) ch2=getch();
    292. if (ch1=='q')
    293. {
    294. msgbox(OX-50,OY+250,1);
    295. ch=getch();
    296. if (ch=='y') exit(1);
    297. else msgbox(OX-50,OY+250,1);
    298. }
    299. if (ch1=='p')
    300. {
    301. putimage(OX-5,OY+80,img2,XOR_PUT);
    302. while((ch=getch())!='p');
    303. putimage(OX-5,OY+80,img2,XOR_PUT);
    304. }
    305. if (ch1=='l')
    306. {
    307. msgbox(OX,OY+250,3);
    308. speed=getch();
    309. if (speed>=49&&speed<=57) maxspeed=45-4*(speed-49);
    310. L=maxspeed;
    311. msgbox(OX,OY+250,3);
    312. }
    313. if (ch1==0)
    314. {
    315. clear(px,py,md);
    316. if ((ch2==72)&&(test(px,py,md,3)==0)) rorate(md);
    317. if ((ch2==75)&&(test(px,py,md,-1)==0)) px--;
    318. if ((ch2==77)&&(test(px,py,md,1)==0)) px++;
    319. if ((ch2==80)&&(test(px,py,md,0)==0))
    320. {
    321. tg=L;
    322. L=2;
    323. }
    324. draw3(px,py,md,col1);
    325. }
    326. }
    327. t_ht=per_100();
    328. if (t_ht-t_bd>L)
    329. {
    330. t_bd=t_ht;
    331. if (test(px,py,md,0)==0)
    332. {
    333. clear(px,py,md);
    334. py++;
    335. draw3(px,py,md,col1);
    336. };
    337. if (test(px,py,md,0)==1)
    338. {
    339. col1=random(3)+4;
    340. putitem(px,py,md);
    341. py=0;px=4;
    342. updatescore();
    343. newitem();
    344. if(test(px,py,md,0))
    345. {
    346. setcolor(YELLOW);
    347. outtextxy(220,200,"GAME OVER");
    348. getch();
    349. setup();
    350. }
    351. }
    352. }
    353. }
    354. getch();
    355. }
    Đã được chỉnh sửa lần cuối bởi iamvtn : 17-11-2007 lúc 01:41 PM.
    Click here for more Info of Cviet-Translator-Group

    ! be thankful for small blessings...

  6. #6
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Mặc định Game hứng banh

    Game hứng banh

    C Code:
    1. #include <graphics.h>
    2. #include <stdlib.h>
    3. #include <stdio.h>
    4. #include <conio.h>
    5. #include <dos.h>
    6.  
    7.  
    8. int midx, midy, x, y, sx, sy, by, scr, spd, ch=3;
    9. int r=20, i, d=0;
    10.  
    11. /*
    12. midx,midy = mid of screen
    13. x,y       = coordinates of ball  (initial pos can be changed)
    14. sx,sy     = direction for ball to mov (1 for +ve, 0 for -ve)
    15. by        = location of box
    16. scr       = score
    17. spd       = speed
    18. ch        = menu choice
    19. r         = radius of ball
    20. i         = for internel loops
    21. d         = debugging mode on / off
    22. */
    23.  
    24. void load();
    25. void menu();
    26. void box();
    27. void gamover();
    28. void credit();
    29. /*/////////////////////////////ball*/
    30. void ball()
    31. {  x=y=22;sx=sy=1;scr=0;spd=2;
    32.    setbkcolor(8);
    33.    cleardevice();
    34.    setcolor(1);                                  /*color 4 border*/
    35.    rectangle(0,0,getmaxx(),getmaxy() );          /* border*/
    36.  
    37.    while(1)
    38.    {
    39.     if(x>(midx*2-3)-r)
    40.     {   sx=0;
    41.         /*scr=scr-10;*/
    42.         gamover();                         /*conditions for*/
    43.         sound(100);                        /* ball to move*/
    44.     }
    45.     if(x<(r+3))
    46.     {   sx=1;   sound(100);}
    47.  
    48.     if(y>(midy*2-3)-r)
    49.     {   sy=0;   sound(100);}
    50.     if(y<(r+3))
    51.     {   sy=1;   sound(100);}
    52.  
    53.     if(x==getmaxx()-45-r && y>by-20 && y<(by+80))
    54.     {
    55.         sx=0;
    56.         scr=scr+10;
    57.         sound(500);
    58.         if(scr%100==0)                     /*if score inc by 100*/
    59.         {
    60.             spd++;             /*inc speed*/
    61.             sound(600);
    62.             delay(100);
    63.             nosound();
    64.         }
    65.     }
    66.  
    67.     if(sx==0)  x=x-spd;                      /*ball*/
    68.     else  x=x+spd;                           /*movment*/
    69.  
    70.     if(sy==0)  y=y-spd;                      /*ball*/
    71.     else y=y+spd;                            /*movement*/
    72.  
    73.     setcolor(1);                             /*ball outline color*/
    74.     setfillstyle( SOLID_FILL, 3 );           /*ball color*/
    75.     fillellipse(x, y, r, r);                 /*draw ball*/
    76.  
    77.  
    78.     for(i=0;i<12;i=i+2)
    79.         arc(x, y, 230+i*6, 40-i*6, r-i);    /*for 3d touch*/
    80.  
    81.     /*  settextstyle(4, HORIZ_DIR, 0);*/        /*4 writing inside the ball*/
    82.     /*outtextxy(x-10,y-20,"N");*/
    83.     nosound();
    84.     gotoxy(5,2);
    85.     printf("* BALL GAME v1.2 *");
    86.     printf("                                   SCORE:%3d",scr);                 /*disp score*/
    87.     printf("    SPEED:%2d",spd-1);            /*and speed*/
    88.     if(d==1)
    89.     {
    90.         gotoxy(getmaxx()-60,1);
    91.         printf("debugging mode ");
    92.         printf("\n\n#box:\nby=%d  ",by);
    93.         printf("\n\n#ball:");
    94.         printf("\nx=%d  \ny=%d  ",x,y);
    95.         printf("\n\ngetmaxx = %d",getmaxx());
    96.         printf("\ngetmaxy = %d",getmaxy());
    97.     }
    98.  
    99.     setcolor(7);
    100.     if(kbhit())                             /*if i/p, mov box*/
    101.         box();
    102.     else                                   /*if no i/p disp in same pos*/
    103.         rectangle(getmaxx()-40,by,getmaxx()-30,by+60);
    104.  
    105.     delay(10);
    106.     setfillstyle( SOLID_FILL, 8 );                /*clear ball & box*/
    107.     setcolor(8);
    108.     fillellipse(x, y, r, r);
    109.     rectangle(getmaxx()-40,by,getmaxx()-30,by+60);
    110.    }
    111. }
    112. /*///////////////////////////////box*/
    113. void box()
    114. {
    115.    switch(getch())
    116.    {
    117.       case 0x48:                         /*up key  */
    118.        if(by<5)
    119.         break;
    120.        else
    121.         by=by-12;                 /*can be inc further to mov faster*/
    122.         break;
    123.  
    124.       case 0x50:                         /*down key*/
    125.        if(by>getmaxy()-65)
    126.         break;
    127.        else
    128.         by=by+12;                 /*can be inc further to mov faster*/
    129.        break;
    130.       /*case 0x4b://left
    131.       case 0x4d://right  */
    132.       case 'p':
    133.            rectangle(getmaxx()-40,by,getmaxx()-30,by+60); /*disp box*/
    134.            for(i=0;i<midx;i=i+4)
    135.            rectangle(midx-i-50,midy-i-10,midx+i+50,midy+i+10);
    136.            rectangle(midx-50,midy-10,midx+50,midy+10);
    137.            outtextxy(midx-35,midy-11,"PAUSED");
    138.            getch();
    139.            cleardevice();
    140.            setcolor(1);
    141.            rectangle(0,0,getmaxx(),getmaxy() );
    142.            break;
    143.       case 'd':
    144.            if(d==0)
    145.                d=1;
    146.            else
    147.            {
    148.                d=0;
    149.                cleardevice();
    150.                setcolor(1);
    151.                rectangle(0,0,getmaxx(),getmaxy() );
    152.            }
    153.            break;
    154.       case 0x1b:                         /*esc key */
    155.            menu();
    156.  
    157.       }
    158.    rectangle(getmaxx()-40,by,getmaxx()-30,by+60); /*disp box*/
    159.  
    160.    return;
    161. }
    162. /*////////////////////////////////load screen*/
    163. void load()
    164. {
    165.    setcolor(3);
    166.    rectangle(1,1,getmaxx()-1,getmaxy()-1 );     /*border*/
    167.    settextstyle(8, HORIZ_DIR, 9);
    168.    outtextxy(30,20,"BALL GAME");
    169.  
    170.    gotoxy(37,18);
    171.    printf("LOADING");
    172.    rectangle(midx-210,midy+30,midx+201,midy+50);
    173.    for(i=0;i<=50;i++)                          /*loading disp loop */
    174.    {
    175.     gotoxy(14+1+i,17+1);
    176.     printf("Ý");
    177.     /*sound(100+10*i);*/
    178.     delay(100);
    179.     gotoxy(33,17);
    180.     printf("%3d % Complete",i*2);
    181.    }
    182.    delay(200);
    183. }
    184. /*///////////////////////////////menu */
    185. void menu()
    186. {
    187. while(1)                                      /*menu */
    188.    {
    189.     cleardevice();
    190.     rectangle(1,1,getmaxx()-1,getmaxy()-1 );  /*border*/
    191.     setcolor(3);
    192.     settextstyle(8, HORIZ_DIR, 9);
    193.     outtextxy(30,20,"BALL GAME");
    194.     settextstyle(2, HORIZ_DIR, 7);
    195.     outtextxy(midx-27,midy+10,"START");
    196.     outtextxy(midx-38,midy+50,"CREDITS");
    197.     outtextxy(midx-19,midy+90,"EXIT");
    198.  
    199.     ch=ch%2;
    200.     rectangle(midx-50,midy+50-ch*40,midx+50,midy+75-ch*40); /*selection*/
    201.     switch(getch())
    202.     {
    203.         case 72:  ch++;  break;                   /*up key*/
    204.         case 80:  ch--;  break;                   /*down key*/
    205.         case 13:                                  /*enter key*/
    206.             if(ch==1)
    207.                 ball();
    208.             else if(ch==0)
    209.                 credit();
    210.             else if(ch==-1)
    211.                 exit(1);
    212.     }
    213.    }
    214. }
    215. /*////////////////////////////gamover */
    216. void gamover()
    217. {
    218.     setcolor(3);
    219.     for(i=0;i<135;i++)
    220.     {
    221.         circle(midx,midy,i*3);
    222.         delay(15);
    223.     }
    224.     setfillstyle(SOLID_FILL,7);
    225.     for(i=0;i<100;i++)
    226.     {
    227.         fillellipse(midx,midy-20,3*i,20);
    228.         delay(15);
    229.     }
    230.     setcolor(1);
    231.     settextstyle(4, HORIZ_DIR, 0);
    232.     outtextxy(midx-80,midy-40,"GAME OVER");
    233.     delay(400);
    234.     getch();
    235.     menu();
    236. }
    237. /*///////////////////////credits */
    238. void credit()
    239. {
    240.     setcolor(7);
    241.     randomize();
    242.     for(i=0;i<2*midx;i++)                  /*random lines*/
    243.     {
    244.         rectangle(1,1,rand()%100+i,midy*2);
    245.         delay(10);
    246.     }
    247.  
    248.     for(i=0;i<2*midx;i++)                 /*clrs space for writing*/
    249.     {
    250.          circle(midx*2-i,midy*2-90,8);
    251.        /*   rectangle(midx*2,midy*2-100,midx*2-i,midy*2-80);*/
    252.         delay(8);
    253.     }
    254.     setcolor(1);
    255.     settextstyle(3, HORIZ_DIR, 3);
    256.     outtextxy(20,midy*2-108,"created by,");
    257.     setcolor(7);
    258.     for(i=0;i<2*midx;i++)
    259.     {
    260.            circle(i,midy*2-60,8);
    261.            delay(8);
    262.     }
    263.     setcolor(1);
    264.     settextstyle(3, HORIZ_DIR, 3);
    265.     outtextxy(midx*2-100,midy*2-78,"...nithin");
    266.     delay(200);
    267.     settextstyle(4, HORIZ_DIR, 0);
    268.  
    269.     setfillstyle(SOLID_FILL,7);
    270.     for(i=0;i<100;i++)
    271.     {
    272.         fillellipse(midx,midy+25,2*i,20);
    273.         delay(15);
    274.     }
    275.     outtextxy(midx-133,midy,"agnithin@yahoo.com");
    276.     getch();
    277.     setcolor(8);
    278.     for(i=0;i<2*midx;i++)                   /*clears screen*/
    279.     {
    280.         rectangle(1,1,i,midy*2);
    281.         delay(8);
    282.     }
    283.     setcolor(3);
    284.     return;
    285. }
    286.  
    287. /*//////////////////////main()*/
    288. int main(void)
    289. {
    290.    int gdriver = DETECT, gmode, errorcode;
    291.    initgraph(&gdriver, &gmode, "c:\\tc\\bgi");   /*change this to ur tc dir*/
    292.  
    293.    midx = getmaxx() / 2;
    294.    midy = getmaxy() / 2;
    295.    by=getmaxy()-70;
    296.    setbkcolor(8);
    297.    load();                           /*disp loading screen*/
    298.    menu();
    299.    ball();                           /*main game          */
    300.    closegraph();
    301.  
    302.    return 0;
    303. }

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

    Mình phải dùng C gì để có đồ họa vậy bạn ơi

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

    Trích dẫn Nguyên bản được gửi bởi sieuphuong Xem bài viết
    Game hứng banh

    C Code:
    1. #include <graphics.h>
    2. #include <stdlib.h>
    3. #include <stdio.h>
    4. #include <conio.h>
    5. #include <dos.h>
    6.  
    7.  
    8. int midx, midy, x, y, sx, sy, by, scr, spd, ch=3;
    9. int r=20, i, d=0;
    10.  
    11. /*
    12. midx,midy = mid of screen
    13. x,y       = coordinates of ball  (initial pos can be changed)
    14. sx,sy     = direction for ball to mov (1 for +ve, 0 for -ve)
    15. by        = location of box
    16. scr       = score
    17. spd       = speed
    18. ch        = menu choice
    19. r         = radius of ball
    20. i         = for internel loops
    21. d         = debugging mode on / off
    22. */
    23.  
    24. void load();
    25. void menu();
    26. void box();
    27. void gamover();
    28. void credit();
    29. /*/////////////////////////////ball*/
    30. void ball()
    31. {  x=y=22;sx=sy=1;scr=0;spd=2;
    32.    setbkcolor(8);
    33.    cleardevice();
    34.    setcolor(1);                                  /*color 4 border*/
    35.    rectangle(0,0,getmaxx(),getmaxy() );          /* border*/
    36.  
    37.    while(1)
    38.    {
    39.     if(x>(midx*2-3)-r)
    40.     {   sx=0;
    41.         /*scr=scr-10;*/
    42.         gamover();                         /*conditions for*/
    43.         sound(100);                        /* ball to move*/
    44.     }
    45.     if(x<(r+3))
    46.     {   sx=1;   sound(100);}
    47.  
    48.     if(y>(midy*2-3)-r)
    49.     {   sy=0;   sound(100);}
    50.     if(y<(r+3))
    51.     {   sy=1;   sound(100);}
    52.  
    53.     if(x==getmaxx()-45-r && y>by-20 && y<(by+80))
    54.     {
    55.         sx=0;
    56.         scr=scr+10;
    57.         sound(500);
    58.         if(scr%100==0)                     /*if score inc by 100*/
    59.         {
    60.             spd++;             /*inc speed*/
    61.             sound(600);
    62.             delay(100);
    63.             nosound();
    64.         }
    65.     }
    66.  
    67.     if(sx==0)  x=x-spd;                      /*ball*/
    68.     else  x=x+spd;                           /*movment*/
    69.  
    70.     if(sy==0)  y=y-spd;                      /*ball*/
    71.     else y=y+spd;                            /*movement*/
    72.  
    73.     setcolor(1);                             /*ball outline color*/
    74.     setfillstyle( SOLID_FILL, 3 );           /*ball color*/
    75.     fillellipse(x, y, r, r);                 /*draw ball*/
    76.  
    77.  
    78.     for(i=0;i<12;i=i+2)
    79.         arc(x, y, 230+i*6, 40-i*6, r-i);    /*for 3d touch*/
    80.  
    81.     /*  settextstyle(4, HORIZ_DIR, 0);*/        /*4 writing inside the ball*/
    82.     /*outtextxy(x-10,y-20,"N");*/
    83.     nosound();
    84.     gotoxy(5,2);
    85.     printf("* BALL GAME v1.2 *");
    86.     printf("                                   SCORE:%3d",scr);                 /*disp score*/
    87.     printf("    SPEED:%2d",spd-1);            /*and speed*/
    88.     if(d==1)
    89.     {
    90.         gotoxy(getmaxx()-60,1);
    91.         printf("debugging mode ");
    92.         printf("\n\n#box:\nby=%d  ",by);
    93.         printf("\n\n#ball:");
    94.         printf("\nx=%d  \ny=%d  ",x,y);
    95.         printf("\n\ngetmaxx = %d",getmaxx());
    96.         printf("\ngetmaxy = %d",getmaxy());
    97.     }
    98.  
    99.     setcolor(7);
    100.     if(kbhit())                             /*if i/p, mov box*/
    101.         box();
    102.     else                                   /*if no i/p disp in same pos*/
    103.         rectangle(getmaxx()-40,by,getmaxx()-30,by+60);
    104.  
    105.     delay(10);
    106.     setfillstyle( SOLID_FILL, 8 );                /*clear ball & box*/
    107.     setcolor(8);
    108.     fillellipse(x, y, r, r);
    109.     rectangle(getmaxx()-40,by,getmaxx()-30,by+60);
    110.    }
    111. }
    112. /*///////////////////////////////box*/
    113. void box()
    114. {
    115.    switch(getch())
    116.    {
    117.       case 0x48:                         /*up key  */
    118.        if(by<5)
    119.         break;
    120.        else
    121.         by=by-12;                 /*can be inc further to mov faster*/
    122.         break;
    123.  
    124.       case 0x50:                         /*down key*/
    125.        if(by>getmaxy()-65)
    126.         break;
    127.        else
    128.         by=by+12;                 /*can be inc further to mov faster*/
    129.        break;
    130.       /*case 0x4b://left
    131.       case 0x4d://right  */
    132.       case 'p':
    133.            rectangle(getmaxx()-40,by,getmaxx()-30,by+60); /*disp box*/
    134.            for(i=0;i<midx;i=i+4)
    135.            rectangle(midx-i-50,midy-i-10,midx+i+50,midy+i+10);
    136.            rectangle(midx-50,midy-10,midx+50,midy+10);
    137.            outtextxy(midx-35,midy-11,"PAUSED");
    138.            getch();
    139.            cleardevice();
    140.            setcolor(1);
    141.            rectangle(0,0,getmaxx(),getmaxy() );
    142.            break;
    143.       case 'd':
    144.            if(d==0)
    145.                d=1;
    146.            else
    147.            {
    148.                d=0;
    149.                cleardevice();
    150.                setcolor(1);
    151.                rectangle(0,0,getmaxx(),getmaxy() );
    152.            }
    153.            break;
    154.       case 0x1b:                         /*esc key */
    155.            menu();
    156.  
    157.       }
    158.    rectangle(getmaxx()-40,by,getmaxx()-30,by+60); /*disp box*/
    159.  
    160.    return;
    161. }
    162. /*////////////////////////////////load screen*/
    163. void load()
    164. {
    165.    setcolor(3);
    166.    rectangle(1,1,getmaxx()-1,getmaxy()-1 );     /*border*/
    167.    settextstyle(8, HORIZ_DIR, 9);
    168.    outtextxy(30,20,"BALL GAME");
    169.  
    170.    gotoxy(37,18);
    171.    printf("LOADING");
    172.    rectangle(midx-210,midy+30,midx+201,midy+50);
    173.    for(i=0;i<=50;i++)                          /*loading disp loop */
    174.    {
    175.     gotoxy(14+1+i,17+1);
    176.     printf("Ý");
    177.     /*sound(100+10*i);*/
    178.     delay(100);
    179.     gotoxy(33,17);
    180.     printf("%3d % Complete",i*2);
    181.    }
    182.    delay(200);
    183. }
    184. /*///////////////////////////////menu */
    185. void menu()
    186. {
    187. while(1)                                      /*menu */
    188.    {
    189.     cleardevice();
    190.     rectangle(1,1,getmaxx()-1,getmaxy()-1 );  /*border*/
    191.     setcolor(3);
    192.     settextstyle(8, HORIZ_DIR, 9);
    193.     outtextxy(30,20,"BALL GAME");
    194.     settextstyle(2, HORIZ_DIR, 7);
    195.     outtextxy(midx-27,midy+10,"START");
    196.     outtextxy(midx-38,midy+50,"CREDITS");
    197.     outtextxy(midx-19,midy+90,"EXIT");
    198.  
    199.     ch=ch%2;
    200.     rectangle(midx-50,midy+50-ch*40,midx+50,midy+75-ch*40); /*selection*/
    201.     switch(getch())
    202.     {
    203.         case 72:  ch++;  break;                   /*up key*/
    204.         case 80:  ch--;  break;                   /*down key*/
    205.         case 13:                                  /*enter key*/
    206.             if(ch==1)
    207.                 ball();
    208.             else if(ch==0)
    209.                 credit();
    210.             else if(ch==-1)
    211.                 exit(1);
    212.     }
    213.    }
    214. }
    215. /*////////////////////////////gamover */
    216. void gamover()
    217. {
    218.     setcolor(3);
    219.     for(i=0;i<135;i++)
    220.     {
    221.         circle(midx,midy,i*3);
    222.         delay(15);
    223.     }
    224.     setfillstyle(SOLID_FILL,7);
    225.     for(i=0;i<100;i++)
    226.     {
    227.         fillellipse(midx,midy-20,3*i,20);
    228.         delay(15);
    229.     }
    230.     setcolor(1);
    231.     settextstyle(4, HORIZ_DIR, 0);
    232.     outtextxy(midx-80,midy-40,"GAME OVER");
    233.     delay(400);
    234.     getch();
    235.     menu();
    236. }
    237. /*///////////////////////credits */
    238. void credit()
    239. {
    240.     setcolor(7);
    241.     randomize();
    242.     for(i=0;i<2*midx;i++)                  /*random lines*/
    243.     {
    244.         rectangle(1,1,rand()%100+i,midy*2);
    245.         delay(10);
    246.     }
    247.  
    248.     for(i=0;i<2*midx;i++)                 /*clrs space for writing*/
    249.     {
    250.          circle(midx*2-i,midy*2-90,8);
    251.        /*   rectangle(midx*2,midy*2-100,midx*2-i,midy*2-80);*/
    252.         delay(8);
    253.     }
    254.     setcolor(1);
    255.     settextstyle(3, HORIZ_DIR, 3);
    256.     outtextxy(20,midy*2-108,"created by,");
    257.     setcolor(7);
    258.     for(i=0;i<2*midx;i++)
    259.     {
    260.            circle(i,midy*2-60,8);
    261.            delay(8);
    262.     }
    263.     setcolor(1);
    264.     settextstyle(3, HORIZ_DIR, 3);
    265.     outtextxy(midx*2-100,midy*2-78,"...nithin");
    266.     delay(200);
    267.     settextstyle(4, HORIZ_DIR, 0);
    268.  
    269.     setfillstyle(SOLID_FILL,7);
    270.     for(i=0;i<100;i++)
    271.     {
    272.         fillellipse(midx,midy+25,2*i,20);
    273.         delay(15);
    274.     }
    275.     outtextxy(midx-133,midy,"agnithin@yahoo.com");
    276.     getch();
    277.     setcolor(8);
    278.     for(i=0;i<2*midx;i++)                   /*clears screen*/
    279.     {
    280.         rectangle(1,1,i,midy*2);
    281.         delay(8);
    282.     }
    283.     setcolor(3);
    284.     return;
    285. }
    286.  
    287. /*//////////////////////main()*/
    288. int main(void)
    289. {
    290.    int gdriver = DETECT, gmode, errorcode;
    291.    initgraph(&gdriver, &gmode, "c:\\tc\\bgi");   /*change this to ur tc dir*/
    292.  
    293.    midx = getmaxx() / 2;
    294.    midy = getmaxy() / 2;
    295.    by=getmaxy()-70;
    296.    setbkcolor(8);
    297.    load();                           /*disp loading screen*/
    298.    menu();
    299.    ball();                           /*main game          */
    300.    closegraph();
    301.  
    302.    return 0;
    303. }
    cám ơn nhìu nha rất bổ ích cho mình
    mong bạn post thật nhiều core nữa cho anh em tham khảo

  9. #9
    Ngày gia nhập
    05 2009
    Bài viết
    25

    tui chạy game nào cũng bị lỗi hết mà sao mấy bác chayj được vậy

  10. #10
    Ngày gia nhập
    02 2009
    Bài viết
    98

    hay lắm.đáng học hỏi.Nhưng bạn có thể bắt phím nhanh hơn dc không.tưc là thời gian để di chuyển khối hứng bóng ấy.mình thấy delay hơi chậm.
    bạn hướng dẫn mình làm cái này nhé.mình sẽ hỏi nhiều đấy
    nic yahoo của mình:
    toantv_87

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

  1. Web game:choigameonline.biz-Chơi game online, game vui, game mini, game flash
    Gửi bởi timkiemvn002 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 27-08-2014, 11:08 AM
  2. game online | game mobile| game dien thoai| game casual} game dao vang online
    Gửi bởi ngaytanthe1 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 15-10-2013, 10:09 AM
  3. Lập trình Game trên C++ | Game engine programming
    Gửi bởi hpcloud22 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 19-02-2013, 11:13 PM
  4. Chơi game iwin,đánh bài, bầu cua, cờ tướng và nhiều game khác trên điện thoại di động
    Gửi bởi bboybon trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 17-11-2012, 07:14 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