程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 滄海一粟之垃圾游戲一

滄海一粟之垃圾游戲一

編輯:C語言基礎知識
這個方塊寫得很簡單,我只保留了一部分功能,但能運行, 初學編程,不足之處請原諒, 不明白之處可以發郵件給我。 #include<graphics.h>
  #include<stdio.h>
  #include<dos.h>
  #include<bios.h>
  #define TIMEINT 5
  #define X x-10
  #define d 20
  #define up 72
  #define left 75
  #define right 77
  #define enter 2
  #define esc 1
  int x,y,boxshape,boxdir,start=1;//方塊橫縱坐標,方塊外形,方塊方向
  int board[22][12];//桌面
  int fq[7][4][9]={
            {{-2,0,-1,0,0,0,0,1,1},
             {0,-1,0,0,-1,1,0,1,2},
             {-2,0,-2,1,-1,1,0,1,3},
             {-1,-1,-1,0,-1,1,0,-1,0}},
            {{-1,-1,-1,0,0,0,0,1,1},
             {-1,0,-2,1,-1,1,0,0,2},
             {-1,-1,-1,0,0,0,0,1,3},
             {-1,0,-2,1,-1,1,0,0,0}},
     {{-2,0,-2,1,-1,0,0,0,1},
             {-1,-1,0,-1,0,0,0,1,2},
             {0,0,-2,1,-1,1,0,1,3},
             {-1,-1,-1,0,-1,1,0,1,0}},
     {{0,-1,-1,0,0,0,0,1,1},
             {-1,0,-2,1,-1,1,0,1,2},
             {-1,-1,-1,0,-1,1,0,0,3},
             {-2,0,-1,0,-1,1,0,0,0}},
            {{-1,0,-1,1,0,0,0,1,1},
             {-1,0,-1,1,0,0,0,1,1},
             {-1,0,-1,1,0,0,0,1,1},
             {-1,0,-1,1,0,0,0,1,1}},
            {{-3,0,-2,0,-1,0,0,0,1},
             {-1,-1,-1,0,-1,1,-1,2,2},
             {-3,0,-2,0,-1,0,0,0,1},
             {-1,-1,-1,0,-1,1,-1,2,2}},
            {{0,-1,-1,0,-1,1,0,0},
             {-2,0,-1,0,-1,1,0,1},
             {0,-1,-1,0,-1,1,0,0},
      {-2,0,-1,0,-1,1,0,1}},};
   int collison();
  void init();
  void drawbox();
  void clearoldbox();
  int timeCome();
  int get_key();
  main()
  {
  int gdrive=VGA,gmode=VGAHI,errorcode;
  int i,j,flag,k,m,key;
  initgraph(&gdrive,&gmode,"d: c");
  errorcode=graphresult();
  if(errorcode!=0)
  {printf("the graph error:%s",grapherrormsg(errorcode));
  printf("press any key to halt");
  getch();
  exit(1);
  }
  for(i=0;i<22;i++)
  board[i][0]=board[i][11]=1;
  for(j=0;j<12;j++)
  board[21][j]=1;
  for(i=1;i<=20;i++)
  for(j=1;j<=10;j++)
  board[i][j]=0;
  init();
  while(1)
  {
    if(start==1){x=15;y=4;boxshape=rand()%7;boxdir=0;drawbox();start=0;}
      if(bioskey(1)!=0)
         {key=get_key();
          switch(key)
          {case left: clearoldbox();
                     x=x-1;
       if(collison())x=x+1;
                     else x=x;
                     drawbox();
                     break;
           case right: clearoldbox();
                       x=x+1;
                      if(collison())x=x-1;
                      else x=x;
                      drawbox();
                      break;
           case up:  clearoldbox();
                     boxdir=(boxdir+1)%4;
                     if(collison())boxdir=(boxdir+3)%4;
                     else boxdir=boxdir;
                     drawbox();
                     break;
            case esc:exit(0);
            default :break;
   }
   }
   if(timeCome())
             {clearoldbox();
              y=y+1;
              if(collison())
       {if(y>4)y=y-1;
        else {getch();exit(0);}
        board[y+fq[boxshape][boxdir][0]-1][x+fq[boxshape][boxdir][1]-9]=1;
        board[y+fq[boxshape][boxdir][2]-1][x+fq[boxshape][boxdir][3]-9]=1;
        board[y+fq[boxshape][boxdir][4]-1][x+fq[boxshape][boxdir][5]-9]=1;
        board[y+fq[boxshape][boxdir][6]-1][x+fq[boxshape][boxdir][7]-9]=1;
        drawbox();
               for(i=20;i>4;i--)
         { flag=1;
                 for(j=1;j<11;j++)
                   {flag=flag&&board[i][j];
                    /*if(board[i][j]==0)flag=1;else flag=flag;*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved