尔罗斯方块

  上学期看到学长写了一个贪吃蛇,就一直想要做一个不同的游戏,当时觉得写出来并不是不可能,可还是因为能力有限,很多东西都不懂,就放弃了这个想法。这学期还没开始,就一直心想着编一个俄罗斯方块出来,可是当我真正开始的时候,才发现没有那么简单,什么头绪也没有就开始凭着感觉去写。大干花了两个晚上的时间写了大概有100~200行代码,再回过头来去看那个贪吃蛇的代码,发现自己写的完全什么用也没有。没办法只有全部删掉,先研究研究再从头开始。

      在中途也碰到过很多问题,有一段时间就干脆不去管它,搁置了大概有一两周的时间,之后开始写才一点一点理清思路,写各种函数(由于对c++还算是没入门,只能用c语言写下去了),再考虑各种情况,再一点一点拼凑起来,总算是把他给摆平了。不过到现在也还是有各种BUG,还希望多多见谅。(实在是不好找错了)。没事了可以拿去玩一玩。还希望各位指出其中的BUG,容小菜再去改一改。。。

      从这500行的代码中,其实感觉自己也没用到什么新东西,不懂得直接调用别人的,其他的基本上都是FOR循环以及IF和ELSE,所以这不算什么学到很多新知识,但是有一点,就是从这么长的代码中明白一点,就是如何去管理这样长的代码:用容易理解的函数名以及变量名;各种函数的功能明确;如何去安排每个细节;然后就是一点一点耐心的调试,一边调试一边编写。。。。还是很有收获的!!!

/*******************************/
   /******Writer:   GJ      *******/
   /******Language: C       *******/
   /******Date:   2013 3 23 *******/
   /*******************************/
   #include<iostream>
   #include<stdio.h>
   #include<conio.h>
   #include<string.h>
   #include<time.h>
   #include<stdlib.h>
   #include<windows.h>
   using namespace std;
   #define me(a) memset(a,0,sizeof(a))
   #define judge(bl,ok) for(i=0;i<5;i++)if(bl[i].x&&map[bl[i].x][bl[i].y])ok=0
   #define is_pure(node,ok) if(map[node.x][node.y])ok=0
   const int HEIGHT=24,LENGTH=40,SIDE=22;
 
   char INIT_MAP[HEIGHT+1][LENGTH+1];
   int map[HEIGHT][SIDE];
   struct node{int x,y;int color;};
   const int TIME_DWELL=1000;
   int state=0;
 
   /**********获取句柄**********/
   HANDLE Output=GetStdHandle(STD_OUTPUT_HANDLE);
   HANDLE Input=GetStdHandle(STD_INPUT_HANDLE);
 
   /**********设置光标位置**********/
   void SetCursor(int x,int y){
       COORD cd={x,y};
       SetConsoleCursorPosition(Output,cd);
   }
 
   /**************初始化图**************/
   void INITMAP()
   {
       for(int i=0;i<HEIGHT;i++)
           for(int j=0;j<SIDE;j++){
               if(i==0||i==HEIGHT-1||j==0||j==SIDE-1)map[i][j]=1;
               else map[i][j]=0;
           }
   }
 
   /********右上方提前显示方块******/
   node bl[5];
   void Former_Print_block(int n)
   {
       int i;
       for(i=0;i<5;i++){bl[i].x=bl[i].y=0;}
       if(n==0){
           bl[0].x=3,bl[0].y=28;  bl[1].x=3,bl[1].y=30;
           bl[2].x=4,bl[2].y=30;  bl[3].x=4,bl[3].y=32;
       }
       if(n==1){
           bl[0].x=3,bl[0].y=32;  bl[1].x=3,bl[1].y=30;
           bl[2].x=4,bl[2].y=30;  bl[3].x=4,bl[3].y=28;
       }
       if(n==2){
           bl[0].x=3,bl[0].y=30;  bl[1].x=4,bl[1].y=28;
           bl[2].x=4,bl[2].y=30;  bl[3].x=4,bl[3].y=32;
       }
       if(n==3){
           bl[0].x=3,bl[0].y=27;   bl[1].x=3,bl[1].y=29;
           bl[2].x=3,bl[2].y=31;  bl[3].x=3,bl[3].y=33;
       }
       if(n==4){
           bl[0].x=3,bl[0].y=29;  bl[1].x=3,bl[1].y=31;
           bl[2].x=4,bl[2].y=29;  bl[3].x=4,bl[3].y=31;
       }
       if(n==5){
           bl[0].x=3,bl[0].y=28;  bl[1].x=4,bl[1].y=28;
           bl[2].x=4,bl[2].y=30;  bl[3].x=4,bl[3].y=32;
       }
       if(n==6){
           bl[0].x=3,bl[0].y=32;  bl[1].x=4,bl[1].y=28;
           bl[2].x=4,bl[2].y=30;  bl[3].x=4,bl[3].y=32;
       }
       for(i=0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值