俄罗斯方块1.0版

Posted my——master

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了俄罗斯方块1.0版相关的知识,希望对你有一定的参考价值。

  1 #include<graphics.h>
  2 #include"time.h"
  3 #include"math.h"
  4 #include"string.h"
  5 #include"stdlib.h"
  6 #include"stdio.h"
  7 #include"iostream.h"
  8 #include<conio.h>
  9 IMAGE img;
 10 int tem();
 11 int i2;
 12 int X=13;
 13 int Y=22;
 14 int x=4;
 15 int x_1;
 16 int y_1;
 17 int y=0;
 18 int g_x;
 19 int g_y;
 20 int c;
 21 int YN=0;
 22 int BYN;
 23 int news=1;
 24 int begin;
 25 int flge=1;
 26 int downtime=300;
 27 int luoji=0;
 28 //int cls[13][22]={1};
 29 int ql[4][4]={0};
 30 int g_b_x;
 31 int g_b_s;
 32 int g_b_z;
 33 int g_b_y;
 34 int get_b_x[13]={0};
 35 int get_g_s[13]={21,21,1,2,0,0};
 36 int b[4][4]={0}; //某类方块的值
 37 int a[13][22]={0};
 38 int a1[13][22]={0};
 39 int b1[4][4]={0}; //临时行列数列
 40 int g_tple;
 41 int g_tple1=2;
 42 int score=0;       //分数
 43 int N;              //关卡
 44 int T1[13][22]={0};
 45 int T[13][22]={0};//窗口行列数列
 46 // int T[13][17]={0,1,1,1,0,0,1,0,1,0,1};
 47 int up();
 48 int b_b1();
 49 int b1_b();
 50 int b1_a1();
 51 int bianjie();
 52   int g1_nextblock();
 53   int g_nextblock();
 54   int a_T();
 55   int aa1z();
 56   int aa1y();
 57   int a_a1();
 58   int a1_a();
 59   int T1_T();
 60   int T_T1();
 61   int run();
 62   void showa();
 63   int jiemian();
 64   int b_a();
 65   int clear();
 66   int cleara();
 67   int cleara1();
 68   int movedown();
 69   void get_fangxiang();
 70   int get_b_4();
 71   int get_g();
 72   void Make_b();
 73   void Make_T();
 74   void clear_b();
 75 
 76   int runing();
 77 #define GAME_X 600
 78 #define GAME_Y 700     
 79   int Block[][4] = 
 80     {
 81  //田字形
 82     {0, 0, 0, 0},
 83      {0, 1, 1, 0},
 84     {0, 1, 1, 0},
 85      {0, 0, 0, 0},
 86  //直线
 87     {0, 0, 0, 0},
 88     {1, 1, 1, 1},
 89     {0, 0, 0, 0},
 90     {0, 0, 0, 0},
 91  //
 92     {0, 0, 0, 0},
 93      {1, 1, 1, 0},
 94      {0, 1, 0, 0},
 95      {0, 0, 0, 0},
 96  //L
 97      {0, 1, 0, 0},
 98     {0, 1, 0, 0},
 99      {0, 1, 1, 0},
100      {0, 0, 0, 0},
101  //
102      {0, 1, 0, 0},
103     {0, 1, 0, 0},
104      {1, 1, 0, 0},
105      {0, 0, 0, 0},
106  //
107      {0, 0, 1, 0},
108      {0, 1, 1, 0},
109      {0, 1, 0, 0},
110      {0, 0, 0, 0},
111  //
112      {0, 1, 0, 0},
113      {0, 1, 1, 0},
114      {0, 0, 1, 0},
115      {0, 0, 0, 0},
116     }; 
117   //char mycolor[7][7]={‘RED‘,‘GREEN‘,‘YELLOW‘};
118   /*for(int i=0;i<28;i++)    {
119       for(int j=0;j<4;j++)
120           cout<<Block0[i][j];cout<<endl;  }    */
121   int init()
122   {
123       begin=1;N=1;
124       score=0;
125       return 0;
126   }
127 
128   int jiemian()       //主界面布局    (有全局变量GAME_X,GAME_Y
129 {
130  char mm[20]="下一块方块";
131 //int Y=700,X=600;   
132 initgraph(GAME_X,GAME_Y);
133 //setlinecolor(255);
134 HWND hwnd=GetHWnd();
135 SetWindowText(hwnd,"俄罗斯方块1.0版@www.baidu.com/p/y123456789xx98 ");
136 for(int i=0;i<GAME_X;i++)
137 {
138     setlinecolor(BLACK);
139     line(i,0,i,699);
140 }
141  setlinecolor(BLUE);
142 line(39,9,39,671);
143 line(39,671,431,671);
144 line(431,9,431,671);
145 line(39,9,431,9);
146 line(440,10,590,10);
147 line(440,400,590,400);
148 line(440,10,440,400);
149 line(590,10,590,400);    
150 setbkmode(TRANSPARENT);
151 settextcolor(RED);
152 outtextxy(450,40,mm);
153 line(440,220,590,220);
154 line(440,220,440,600);
155 line(440,600,590,600);
156 line(590,600,590,220);
157 outtextxy(450,230,"得分");
158 outtextxy(450,430,"关卡"); 
159 /*BeginBatchDraw();
160 for(i=0;i<13;i++)
161 for(int j=0;j<44;j++)
162 {
163     setlinecolor(RED);
164     fillrectangle(40+i*30,10+15*j,40+i*30,10+15*j);
165 }   EndBatchDraw();     
166 */return 0;
167 }
168   int g1_nextblock() //下一块方块存在b[][]数组中
169   {
170       for(int i1=0;i1<4;i1++){for(int j1=0;j1<4;j1++)
171       {       b[i1][j1]=Block[g_tple1*4+i1][j1];}
172       }
173       return 0;
174   }
175   int g_nextblock()      //随机产生下一块方块,放于b[4][4]中,且绘制右边(b)布局 显示得分和关卡
176   {       setlinecolor(BLUE);IMAGE img;                                     
177        //int g_tple=rand()%7;
178      int line=60,col=450;        //g_tple为方块类型
179    for(int i1=0;i1<4;i1++){for(int j1=0;j1<4;j1++)
180    { int g_block=Block[g_tple*4+i1][j1]; //b[i1][j1]=Block[g_tple*4+i1][j1];
181    //b1[i1*4+j1]=Block[g_tple*4+i1][j1];
182 setfillcolor(RED); // int i3=100000;        while(i3>0)i3--;
183 fillrectangle(col+j1*30,line+i1*30,col+j1*30+30*g_block,line+i1*30+30*g_block);}} //Sleep(500);
184 getimage( &img,450,60,120,120);
185                 char g_score[10]={0};
186                 sprintf(g_score,"%d",score);settextstyle(0,0,g_score); //得分
187                 //sprintf(score, "%d", score);
188                 outtextxy(500,230,g_score);
189                 //N=score/2+1;
190                 char g_N[10]={0};sprintf(g_N,"%d",N);settextstyle(0,0,g_N);    //关卡
191                  outtextxy(500,430,g_N);
192 
193 /*
194     setfillcolor(BLACK);setlinecolor(BLACK);
195     fillrectangle(420,60,540,180);    
196  */
197    return g_tple;
198   }
199      void clear_b()            //清除b区域
200   {
201       setfillcolor(BLACK);setlinecolor(BLACK);
202       fillrectangle(450,60,570,180);
203       fillrectangle(500,230,570,300);
204       fillrectangle(500,430,570,500);
205 
206   }
207 
208 
209   void showa() //根据a[13][22]数组绘制运行界面a
210   {        
211       //int a[13][22]={1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,};
212       setfillcolor(RED);
213       setlinecolor(BLUE);  BeginBatchDraw();
214       for(int l=0;l<13;l++){
215           for(int h=0;h<22;h++){
216             fillrectangle(40+l*30,10+h*30,40+l*30+30*a[l][h],10+h*30+30*a[l][h]); 
217       }}EndBatchDraw();
218       //clear_b();//tem();     
219      // Sleep(10);
220 //      Make_b();
221 //   return 0;
222   }                                    
223  
224   /*int tem()    //临时测试
225   {                               
226       int tem1[100000]={0};
227       FILE *fp1;fp1=fopen("D://身份系统\\222.txt","a+");
228       //for(int i=0;i<13;i++){
229           for(int j=0;j<22;j++)
230      {tem1[j]=21;}
231      // }
232       fwrite(tem1,13,1,fp1);fclose(fp1);
233       return 0;
234   }     */
235   int b1_a1()                  //在我的调用方式下:b1为下一个方块数据因为b_b1(),a1为A区域的下一状态
236   {         if(x<0)x=0;if(x>9)x=9;
237        for(int l=0;l<4;l++)
238          for(int h=0;h<4;h++)
239             {
240             //    b[h][l]=b1[h][l];
241                 a1[x+l][y+h]=b1[h][l]; }
242     return 0;
243   }
244   int b_b1()               //将下一块的数据暂存于b1[][]中
245   {
246       for(int l=0;l<4;l++)
247         for(int h=0;h<4;h++)
248             b1[l][h]=0;
249      for(l=0;l<4;l++)
250         for(int h=0;h<4;h++)
251             b1[h][l]=b[h][l]; 
252      return 0;
253      }
254  
255   int b1_b()              //调用下一块方块时将b1[][]数据给b[][]
256   {        
257       for(int l=0;l<4;l++)
258         for(int h=0;h<4;h++)
259             b[l][h]=0;
260       for(l=0;l<4;l++)
261           for(int h=0;h<4;h++)
262           {    //if(x<0)x=0;if(x>9)x=9;
263               b[h][l]=b1[h][l];  }
264             //    a[x+l][y+h]=b[h][l]; }
265     return 0;
266   }
267   int up()                       //变形  每次图形在4*4矩阵中逆时针旋转(可考虑中心旋转)
268   {
269       for(int l=0;l<4;l++)
270         for(int h=0;h<4;h++)
271             b1[l][h]=0;
272 /*       for(int i=0;i<4;i++)
273            for(int j=0;j<4;j++)
274            {
275                b[i][j]=b1[i][j];
276            }
277 */       for( int i=0;i<4;i++)
278            for(int j=0;j<4;j++)
279            {
280                  b1[i][j]=b[j][3-i];
281            }
282 //           for(l=0;l<4;l++)    {
283 //               for(int h=0;h<4;h++)
284 //                   a1[x+l][y+h]=b1[h][l]; }
285 //               run();
286     /*       for(l=0;l<4;l++)
287                for(int h=0;h<4;h++)
288                {    if(x<0)x=0;if(x>9)x=9;
289                     b[h][l]=b1[h][l];
290                     a[x+l][y+h]=b[h][l]; }
291     */
292            //flge=0;
293       return 0;
294   }
295   void Make_b()               //下一状态图
296   {
297      putimage(420,60,&img);
298   }
299   void Make_T()               //类似于背景的A区域增加数据 和绘制
300   {        //      int a[13][22]={1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,};
301       BeginBatchDraw();
302       for(int l=0;l<13;l++){
303           for(int h=0;h<22;h++){
304              setfillcolor(RED);
305              setlinecolor(BLUE); 
306              fillrectangle(40+l*30,10+h*30,40+l*30+30*T[l][h],10+h*30+30*T[l][h]); 
307       }}   EndBatchDraw();
308 //   return 0;
309   }
310   int get_g()      //获取g图形边界 与T[13][22]有关
311   {
312 /*      get_g_s[13]=21; 
313       for(int i=0;i<13;i++)    {
314           for(int j=0;j<22;j++)
315           {      
316               if(T[i][j]==1)
317               { get_g_s[i]=j;break;}
318               else
319                   get_g_s[i]=21;
320 
321           }
322       }
323 */          return 0;
324   }
325   int get_b_4()            //获取b[][]图形在4*4矩阵中与各边的距离
326   {       int g_b_x=0;        
327      for(int l=0;l<4;l++){ 
328          for(int h=0;h<4;h++)
329              if(b[h][l]==1)
330                  if(g_b_x<=h)
331                  g_b_x=h;}
332       int g_b_z=3;
333       for(l=0;l<4;l++){
334          for(int h=3;h>=0;h--)
335              if(b[l][h]==1)
336                 if(g_b_z>=h)
337                     g_b_z=h;}
338       int g_b_y=0;
339       for(l=0;l<4;l++){ 
340          for(int h=0;h<4;h++)
341              if(b[l][h]==1)if(g_b_y<=h)
342                  g_b_y=h;}
343       int g_b_s=3;
344       for(l=0;l<4;l++){
345          for(int h=3;h>=0;h--)
346              if(b[h][l]==1)
347                 if(g_b_s>=h)
348                     g_b_s=h;}
349       return 0;
350   }
351    int bianjie()      //边界修正和判断
352    {
353        if((x+g_b_z)<0)x++;
354        if((y+g_b_x)>22)y--;
355        if((x+g_b_y)>10)x--;
356        else YN=1;
357           return 0;
358   }
359    int aa1y()         //提前判断能右移动否
360    {        BYN=1;
361        for(int i=0;i<22;i++){
362             if(a[12][i]==1)
363             {    g_x=0;BYN=0;}    }
364     /*for(i=0;i<13;i++) {
365             if(a[i][21]==1)
366             {g_y=0;YN=0;}    }
367    */
368        return 0;
369    }
370                      
371    int aa1z()         //能左移动否
372    {        BYN=1;
373        for(int i=0;i<22;i++){
374             if(a[0][i]==1)
375             {    g_x=0;BYN=0;}    }
376       for(i=0;i<13;i++) {
377             if(a[i][21]==1)
378             {g_y=0;YN=0;}    }
379     
380        return 0;
381    }
382 int a_a1()                 //将操作后的a[][]数据存于a1[][]中,即a1为a的下一态
383 {         
384     for(int l=0;l<13;l++) {
385         for(int h=0;h<22;h++)
386             a1[l][h]=0;     }
387 /*    for(int i=0;i<22;i++){
388             if(a[0][i]==1||a[21][i]==1)
389             {    g_x=0;}    YN=0;    }
390     for(i=0;i<13;i++) {
391             if(a[21][i]==1)
392             {g_y=0;YN=0;}YN=0;    }
393 */    for(l=0;l<13;l++) {
394         for(int h=0;h<22;h++)
395         {    if(a[l][h]==1)
396         {a1[l+g_x][g_y+h]=a[l][h]; }
397         }           }
398         return 0;
399 }
400 int a1_a()                 //正常状态下将a1[][](上一次的下一状态)数据转移给a[][]
401 {
402     for(int l=0;l<13;l++)
403         for(int h=0;h<22;h++)
404             a[l][h]=a1[l][h];
405 return 0;
406 }
407 
408 
409 
410   int b_a()       //将b方块传递到a[13][22]中,初始位置与x,y有关
411   {         cleara();
412      for(int l=0;l<4;l++){ //g_x=0;
413          for(int h=0;h<4;h++)
414             //if(Block[g_tple*4+h][l]==1) 
415             if(b[h][l]==1)
416              {
417                  b1[h][l]=b[h][l];//g_x++;//Block[g_tple*4+h][l];
418                  a[x+l][y+h]=b1[h][l];
419              }
420               //a[x+l][y+h]=Block[g_tple*4+h][l];
421               // tem();
422      }
423     return 0;
424   }     
425   int cleara()                //a[][]数组清零
426   {
427       for(int l=0;l<13;l++){
428          for(int h=0;h<22;h++)
429          {    
430               a[l][h]=0;
431           }
432       }
433 return 0;
434   }    
435   int cleara1()                         //a1[][]数组清零
436   {
437       for(int l=0;l<13;l++){
438          for(int h=0;h<22;h++)
439          {    
440               a[l][h]=0;
441           }
442       }
443 return 0;
444   }
445 
446   int clear()        //重新绘制运行区域A
447   {BeginBatchDraw();
448                for(int i=0;i<13;i++){
449              for(int j=0;j<22;j++){
450              setfillcolor(BLACK);
451              setlinecolor(BLACK); //fillrectangle(41,11,429,699);
452              fillrectangle(40+i*30,10+j*30,40+i*30+30,10+j*30+30);
453             }}     EndBatchDraw();
454     //         fillrectangle(10,10,400,670);
455     return 0;
456     }
457   int run()                //能否继续 下降
458   {           YN=1;
459       for(int l=0;l<13;l++)
460           for(int h=0;h<22;h++)
461               if(T[l][h]==a1[l][h]&&T[l][h]==1)
462               { YN=0;goto loop1;     }
463               else
464                   YN=1;
465 loop1:;
466       return 0;
467   }
468   int movedown()            //边界运算,能否在下降
469   {      int i,YN=1;
470       for(i=0;i<13;i++)
471       {
472           if((get_g_s[i]-get_b_x[i])<=0)
473           {YN=0;break;}
474           else 
475               YN=1;                 //YN=1能下降
476       }            
477       return 0;
478   }
479   int a_T()                //将a[13][22]->T[13][22]//T[13][22]为a[13][22]的上一个稳定状态初态为全零    
480   {
481       for(int i=0;i<13;i++)
482           for(int j=0;j<22;j++)
483           {
484               T[i][j]=a[i][j];
485           }
486           flge=0;
487       return 0;
488   }
489 
490   int T_T1()                //将a[13][22]->T[13][22]//T[13][22]为a[13][22]的上一个稳定状态初态为全零    
491   {
492       for(int i=0;i<13;i++)
493           for(int j=0;j<22;j++)
494           {
495               T1[i][j]=T[i][j];
496           }
497           flge=0;
498       return 0;
499   }
500 
501    int T1_T()                //将a[13][22]->T[13][22]//T[13][22]为a[13][22]的上一个稳定状态初态为全零    
502   {
503       for(int i=0;i<13;i++)
504           for(int j=0;j<22;j++)
505           {
506               T1[i][j]=T1[i][j];
507           }
508           flge=0;
509       return 0;
510   }
511 
512 void get_fangxiang()
513 {    i2=0;
514     if(kbhit())
515        c=getch();
516 //    return 0;
517 } 
518 
519 int runing()
520 {
521   return 0;
522 }
523 
524 
525 
526 int main()
527 {     
528 
529     while(news){
530     int t[13][17]={0};
531     int g_t[4][4]={0};
532     jiemian();
533     init();
534     while(begin)            //游戏结束
535     {        x=4;    
536             y=0;
537             YN=0;
538             srand(time(0)); 
539             g_tple=rand()%7;
540             clear_b();
541         //    Sleep(100);
542             g1_nextblock();
543             g_nextblock(); YN=1;
544           flge=1;       b_a();
545 
546           IMAGE img;     //加载的图片
547     loadimage(&img,"D:\\2017\\图形文件\\方形图\\7ed6e1d3572c11df653ea107602762d0f703c232.gif",50,70);
548     putimage(500,500,&img);    
549     while(flge)                       //一个方块下落完成
550     {                       
551 /*            x=4;    
552             y=0;
553             YN=0;                
554             g_tple=rand()%7;
555             clear_b();
556             Sleep(100);    g_nextblock();
557 */            int z=1;
558         luoji=0;
559           fflush(stdin);
560         //    Sleep(500); 
561            g_y=1;y=y+g_y;
562 
563         //    while(z){ 
564         while(kbhit())
565         {    
566             c=getch();//flushall; fflush(stdin);
567             if(c)               
568             {    while(c&&YN)       
569                 switch(c)                                     
570                 {
571                     case 32:{c=getch();c=0;break;}
572                     case 72:{
573                         up();x_1=x;clear();cleara(); cleara1();b1_a1();run();if(y>18)YN=0;
574                         if(YN==1)//fflush(stdin);
575                         {
576                             b1_b();b_a();
577                             //a1_a();
578                         //    Make_T();showa();
579                         }
580                         if(YN==0)
581                             {x=x_1;b_a();
582                             //Make_T();showa();
583                             }
584                         c=0;  //c=getch();
585                         BeginBatchDraw();
586                         Make_T();showa(); EndBatchDraw();
587                         Sleep(0);//cleara(); 
588                         break;}
589                     case 77:{g_x=1;aa1y();a_a1();run();if(YN&&BYN){a_a1();a1_a();clear();BeginBatchDraw();showa();Make_T();EndBatchDraw();Sleep(0);x=x+g_x;}luoji=1;g_x=0;g_y=0;c=0;}break;
590             //    case 77:{x++;bianjie();clear();showa();cleara();c=0;break;}
591                     case 75:{g_x=-1;aa1z();a_a1();run();if(YN&&BYN){a_a1();a1_a();clear();BeginBatchDraw();showa();Make_T();EndBatchDraw();Sleep(0);x=x+g_x;}luoji=1;g_x=0;g_y=0;c=0;}break;
592             //    case 75:{x--;run();if(YN){clear();bianjie();showa();cleara();}c=0;break;}
593                     case 80:{g_y=1;aa1z();a_a1();run();if(YN){a_a1();a1_a();clear();BeginBatchDraw();showa();Make_T();EndBatchDraw();Sleep(0);y=y+g_y;}luoji=1;g_x=0;c=0;}break;
594                 //case 80:{y++;run();if(YN){bianjie();clear();showa();cleara();}c=0;break;}
595     //                case 32:Sleep(4000); 
596                     default:{c=0;break;}
597                 }
598             }
599         }     
600             clear();
601         //    g_y=1;y=y+g_y;
602             a_a1();//a1_a();
603             run();aa1z();//a_a1();
604             if(YN==1)
605             {a1_a();BeginBatchDraw();Make_T();showa();EndBatchDraw();}
606             Sleep(downtime);                                            //YN=0 一块下落完成
607             if(YN==0&&luoji==0)     
608             {
609                  for(int l=0;l<13;l++)
610                      for(int h=0;h<22;h++)
611                      {     if(a[l][h]==1)
612                          T[l][h]=a[l][h];
613                      }
614                 //b_a();
615             //    showa();
616                 BeginBatchDraw();Make_T();showa();EndBatchDraw();//Sleep(10); 
617                 flge=0;
618 //1                YN=1;// clear();     
619             }
620             if(YN==0&&luoji==1)
621             {
622                  for(int l=0;l<13;l++)
623                      for(int h=0;h<22;h++)
624                      {     if(a[l][h]==1)
625                          T[l][h]=a[l][h];
626                      }
627                 BeginBatchDraw();Make_T();showa();EndBatchDraw();//Sleep(100); 
628                 flge=0;     
629             }
630             if(YN==0)                                                     //满行消除
631             {     int i=0,k=0;//int T1[13][22]={0},T2[13][22]={0};
632                 for(int h=0;h<22;h++)
633                 {  int i=0;int T1[13][22]={0},T2[13][22]={0};
634                     for(int l=0;l<13;l++)
635                 {if(T[l][h]==1)
636                 {i++;if(i==13)
637                     {score+=10; N=score/100+1; downtime=((N)<10)?(downtime-30*N):200;  //分数关数下降速度控制
638                     for(l=0;l<13;l++)T[l][h]=0;k=h;
639                     for(int h=0;h<k;h++){for(int l=0;l<13;l++)T1[l][h+1]=T[l][h];}
640                     for(h=k+1;h<22;h++){for(int l=0;l<13;l++)T2[l][h]=T[l][h];}
641                     for(l=0;l<13;l++){for(int h=0;h<22;h++)T[l][h]=0;}
642                      for(l=0;l<13;l++){for(int h=k+1;h<22;h++)T[l][h]=T2[l][h];}
643                     for(l=0;l<13;l++){for(int h=0;h<k+1;h++)if(T1[l][h]==1)T[l][h]=T1[l][h];}
644                     }
645                 }
646                 }
647                 }
648     
649                 BeginBatchDraw();Make_T;EndBatchDraw();// Sleep(400);
650                 g_tple1=g_tple;
651                 flge=0;             //方块已到底
652                 for(int l=0;l<13;l++){if(T[l][0]==1||t[l][1]){
653                     begin=0; news=0;    }
654 
655                 }//游戏结束
656             }
657 
658     }
659     }
660     cleara();a_T();BeginBatchDraw();Make_T();EndBatchDraw();//showa();
661 //setfillcolor(BLUE);setlinecolor(BLUE);
662     char news1[10]={"游戏结束:"};
663     char news2[15]={"按ESC退出:"};
664     char news3[10]={"其他继续:"};
665 settextstyle(0,0,news1);
666 settextstyle(0,0,news2);
667 settextstyle(0,0,news3);
668 outtextxy(450,260,news1);
669 outtextxy(450,290,news2);
670 outtextxy(450,320,news3); //Sleep(5000);
671 //while(kbhit())
672 //{      
673     //getchar();
674     kbhit();
675     news=getch();
676     if(news==27)news=0;;
677 //}
678 
679          }
680     return 0;
681 }

 

以上是关于俄罗斯方块1.0版的主要内容,如果未能解决你的问题,请参考以下文章

C++俄罗斯方块

shell版俄罗斯方块二:程序流程

WPF俄罗斯方块改进版

java版俄罗斯方块

只会C语言编程还要学哪些才能做俄罗斯方块这样的小游戏?

Delphi版俄罗斯方块-前奏