Frooster

2 Blocks

Jan 24th, 2016
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.86 KB | None | 0 0
  1. #include <graphics.h>
  2.  
  3. #include <stdlib.h>
  4.  
  5. #include <stdio.h>
  6.  
  7. #include <conio.h>
  8.  
  9. #include <dos.h>
  10.  
  11. #include <iostream.h>
  12.  
  13. #include <time.h>
  14.  
  15. long int score=0;
  16.  
  17. void assigny(int k,int yb[4],int pb[4][10])
  18.  
  19. {pb[k][1]=yb[k];
  20.  
  21. pb[k][3]=yb[k]+20;
  22.  
  23. pb[k][5]=yb[k]+20;
  24.  
  25. pb[k][7]=yb[k];
  26.  
  27. pb[k][9]=yb[k];
  28.  
  29. };
  30.  
  31. void assignblock(int k,int r[4],int xb[4],int yb[4],int pb[4][10])
  32.  
  33. {
  34.  
  35.   if(r[k]==1&&random(3)>0)
  36.  
  37.    {score++;
  38.  
  39.     if(k%2==0)
  40.  
  41.      {
  42.  
  43.       if(random(2)==0)
  44.  
  45.       xb[k]=120;
  46.  
  47.       else
  48.  
  49.       xb[k]=240;
  50.  
  51.       }
  52.  
  53.     else
  54.  
  55.      {
  56.  
  57.       if(random(2)==0)
  58.  
  59.       xb[k]=390;
  60.  
  61.       else
  62.  
  63.       xb[k]=510;
  64.  
  65.       }
  66.  
  67.   /////
  68.  
  69.   if(xb[k]==xb[(k+2)%4])
  70.  
  71.   { do
  72.  
  73.     {yb[k]=random(200)+21;
  74.  
  75.      }while(abs(yb[k]-yb[(k+2)%4])<=50);
  76.  
  77.    }
  78.  
  79.    else
  80.  
  81.   { do
  82.  
  83.     {yb[k]=random(200)+21;
  84.  
  85.      }while(abs(yb[k]-yb[(k+2)%4])<=100);
  86.  
  87.    }
  88.  
  89. //////
  90.  
  91. pb[k][0]=xb[k];
  92.  
  93. pb[k][2]=xb[k];
  94.  
  95. pb[k][4]=xb[k]+20;
  96.  
  97. pb[k][6]=xb[k]+20;
  98.  
  99. pb[k][8]=xb[k];
  100.  
  101. assigny(k,yb,pb);
  102.  
  103. r[k]=0;
  104.  
  105. }
  106.  
  107. };
  108.  
  109. //////
  110.  
  111. void game()
  112.  
  113. {
  114.  
  115. int xb[4],x1=120,x2=390,yb[4],pb[4][10];
  116.  
  117. int p1[10] = {120,400,120,440,140,440,140,400,120,400};
  118.  
  119. int p2[10] = {390,400,390,440,410,440,410,400,390,400};
  120.  
  121. int r[4] = {1,1,1,1};
  122.  
  123. score=0;
  124.  
  125. char key;
  126.  
  127. cleardevice();
  128.  
  129.      settextstyle(2,HORIZ_DIR,4);
  130.  
  131.      outtextxy(1,10,"SCORE ");
  132.  
  133.      cout<<endl<<endl<<"  ";
  134.  
  135.      moveto(190,0);
  136.  
  137.      lineto(190, 475);
  138.  
  139.      moveto(460,0);
  140.  
  141.      lineto(460, 475);
  142.  
  143.      moveto(70,0);
  144.  
  145.      lineto(70, 475);
  146.  
  147.      moveto(580,0);
  148.  
  149.      lineto(580, 475);
  150.  
  151.      moveto(310,0);
  152.  
  153.      lineto(310, 475);
  154.  
  155.      moveto(340,0);
  156.  
  157.      lineto(340, 475);
  158.  
  159. setcolor(0);
  160.  
  161. setfillstyle(1,RED);
  162.  
  163. fillpoly(4,p1);
  164.  
  165. setcolor(0);
  166.  
  167. setfillstyle(1,BLUE);
  168.  
  169. fillpoly(4,p2);
  170.  
  171. int t=0;
  172.  
  173. randomize();
  174.  
  175. for(;t!=1;)
  176.  
  177. {
  178.  
  179. assignblock(0,r,xb,yb,pb);
  180.  
  181. assignblock(1,r,xb,yb,pb);
  182.  
  183. assignblock(2,r,xb,yb,pb);
  184.  
  185. assignblock(3,r,xb,yb,pb);
  186.  
  187. while((yb[0]<500)&&(yb[1]<500)&&(yb[2]<500)&&(yb[3]<500))
  188.  
  189. {
  190.  
  191.     delay(3);
  192.  
  193.     setfillstyle(1,BLACK);
  194.  
  195.     fillpoly(4,pb[0]);
  196.  
  197.     fillpoly(4,pb[1]);
  198.  
  199.     fillpoly(4,pb[2]);
  200.  
  201.     fillpoly(4,pb[3]);
  202.  
  203.     yb[0]+=1;
  204.  
  205.     yb[1]+=1;
  206.  
  207.     yb[2]+=1;
  208.  
  209.     yb[3]+=1;
  210.  
  211.     assigny(0,yb,pb);
  212.  
  213.     assigny(1,yb,pb);
  214.  
  215.     assigny(2,yb,pb);
  216.  
  217.     assigny(3,yb,pb);
  218.  
  219.     setfillstyle(1,YELLOW);
  220.  
  221.     fillpoly(4,pb[0]);
  222.  
  223.     fillpoly(4,pb[1]);
  224.  
  225.     fillpoly(4,pb[2]);
  226.  
  227.     fillpoly(4,pb[3]);
  228.  
  229. if(((xb[0]==x1)&&(yb[0]>=400)&&(yb[0]<=440))||((xb[1]==x2)&&(yb[1]>=400)&&
  230.  
  231. (yb[1]<=440))||((xb[2]==x1)&&(yb[2]>=400)&&(yb[2]<=440))||((xb[3]==x2)&&(yb[3]>=400)&&(yb[3]<=440)))
  232.  
  233. {
  234.  
  235.    t=1;
  236.  
  237.    break;
  238.  
  239. }
  240.  
  241.     if(kbhit())
  242.  
  243.    {
  244.  
  245.  key=getch();
  246.  
  247.  if(key=='a')
  248.  
  249.  {    if(x1==240)
  250.  
  251.       {
  252.  
  253. setfillstyle(1,BLACK);
  254.  
  255. fillpoly(4,p1);
  256.  
  257. p1[0]=120;
  258.  
  259. p1[2]=120;
  260.  
  261. p1[4]=140;
  262.  
  263. p1[6]=140;
  264.  
  265. p1[8]=120;
  266.  
  267. setfillstyle(1,RED);
  268.  
  269. fillpoly(4,p1);
  270.  
  271. x1=120;
  272.  
  273.        }
  274.  
  275.       else
  276.  
  277.        {
  278.  
  279. setfillstyle(1,BLACK);
  280.  
  281. fillpoly(4,p1);
  282.  
  283. setfillstyle(1,RED);
  284.  
  285. p1[0]=240;
  286.  
  287. p1[2]=240;
  288.  
  289. p1[4]=260;
  290.  
  291. p1[6]=260;
  292.  
  293. p1[8]=240;
  294.  
  295. fillpoly(4,p1);
  296.  
  297. x1=240;
  298.  
  299. }
  300.  
  301.   }
  302.  
  303. if(key=='l')
  304.  
  305.       {    if(x2==390)
  306.  
  307.    {
  308.  
  309.        setfillstyle(1,BLACK);
  310.  
  311.        fillpoly(4,p2);
  312.  
  313.        setfillstyle(1,BLUE);
  314.  
  315. p2[0]=510;
  316.  
  317. p2[2]=510;
  318.  
  319. p2[4]=530;
  320.  
  321. p2[6]=530;
  322.  
  323. p2[8]=510;
  324.  
  325.        fillpoly(4,p2);
  326.  
  327.        x2=510;
  328.  
  329.    }
  330.  
  331.     else
  332.  
  333.     {
  334.  
  335.        setfillstyle(1,BLACK);
  336.  
  337.        fillpoly(4,p2);
  338.  
  339.        setfillstyle(1,BLUE);
  340.  
  341. p2[0]=390;
  342.  
  343. p2[2]=390;
  344.  
  345. p2[4]=410;
  346.  
  347. p2[6]=410;
  348.  
  349. p2[8]=390;
  350.  
  351.        fillpoly(4,p2);
  352.  
  353.        x2=390;
  354.  
  355.       }
  356.  
  357.       }
  358.  
  359.  }
  360.  
  361. if(yb[0]==500)
  362.  
  363. r[0]=1;
  364.  
  365. if(yb[1]==500)
  366.  
  367. r[1]=1;
  368.  
  369. if(yb[2]==500)
  370.  
  371. r[2]=1;
  372.  
  373. if(yb[3]==500)
  374.  
  375. r[3]=1;
  376.  
  377. cout<<"\b\b\b"<<score;
  378.  
  379. }
  380.  
  381.   }
  382.  
  383. cleardevice();
  384.  
  385. settextstyle(2,0,20);
  386.  
  387. setcolor(10);
  388.  
  389. outtextxy(222,100,"GAME OVER");
  390.  
  391. outtextxy(210,150,"YOUR SCORE ");
  392.  
  393. char str[5];
  394.  
  395. outtextxy(320,200,itoa(score,str,10));
  396.  
  397. }
  398.  
  399. void main()
  400.  
  401. {
  402.  
  403. int gdriver = DETECT, gmode, errorcode,t=0;
  404.  
  405. char key;
  406.  
  407. initgraph(&gdriver, &gmode, "C:\\TurboC3\\BGI");
  408.  
  409. errorcode = graphresult();
  410.  
  411. if (errorcode != grOk)
  412.  
  413. {
  414.  
  415.    printf("Graphics error: %s\n", grapherrormsg(errorcode));
  416.  
  417.    printf("Press any key to halt:");
  418.  
  419.    getch();
  420.  
  421.    exit(1);
  422.  
  423. }
  424.  
  425. settextstyle(2,HORIZ_DIR,20);
  426.  
  427. outtextxy(220,100,"2 BLOCKS");
  428.  
  429. settextstyle(2,HORIZ_DIR,8);
  430.  
  431. outtextxy(190,240,"ARE YOU READY????");
  432.  
  433. settextstyle(2,HORIZ_DIR,4);
  434.  
  435. outtextxy(245,350,"Press space bar to play");
  436.  
  437. settextstyle(2,HORIZ_DIR,4);
  438.  
  439. while(getch()==32)
  440.  
  441. {game();settextstyle(2,HORIZ_DIR,4);outtextxy(245,240,"Press space bar to play again");}
  442.  
  443.    cleardevice();
  444.  
  445.   settextstyle(4,HORIZ_DIR,4);
  446.  
  447.   outtextxy(320,400,"Quitting");exit(0);
  448.  
  449. closegraph();
  450.  
  451. }
Add Comment
Please, Sign In to add comment