资源描述:
《c++俄罗斯方块源码(完整功能版)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、先是效果图:主菜单:游戏:设置:错误处理:627行,代码如下: #include #include #include #include #include #include #include #pragma comment( lib,"winmm.lib" )//定义 //方块#define NO 0#define SQR 1 //碰撞检测#define OK
2、 0#define CANTMOVE 1 //方向#define UP 0#define DOWN 1#define LEFT 2#define RIGHT 3 //错误码#define no_enough_memory 0#define set_no_found 1#define dat_no_found 2#define error_argument 3//函数声明 //模块void play();//开始游戏void sets();//设置void highsc
3、ores();//排行榜void copyright();//作者 //功能void mapsetup();//准备地图bool newsqr();//放置方块,返回是否游戏结束int move(int direction);//移动方块,返回定义表void movetomap();//把当前方块移动到地图上int wholeline();//检查是否组成了一层,返回层数,-1表示没有void deleteline(int which);//删除一行void endup();//结束游戏,清理内存
4、 //显示void show();//刷新画面void showmenu(char* menu);//显示菜单 //文件void loadset();//加载设置void saveset();//保存设置void loadhs();//加载排行榜bool addscores(int score,char name[50]);//增加一个分数,返回是否是高分void savehs();//保存排行榜 //坐标变换int get(int x,int y);void set(int x,int
5、y,int date);//结构 //设置struct{ int xs,ys;//屏幕大小 int speed;//速度 char sqr[3],no[3],frame[3];//方块、空白处、边框的样式}gameset; //排行榜struct{ char name[50]; int score;}rating[10];//全局变量 //变量int* map=NULL;//地图bool now[4][4];//当前方块int xnow,ynow;//当前位
6、置int guide;//分数 //常量const bool shap[7][4][4]={//形状{ ,0,0,0, ,0,0,0,1,1,1,1, ,0,0,0,},{ ,0,0,0, ,1,1,0, ,1,1,0, ,0,0,0,},{ ,0,0,0, ,1,1,1, ,0,1,0, ,0,0,0,},{ ,0,0,0,1,0,0,0,1,1,1,0, ,0,0,0,},{ ,0,0,0, ,0,0,1, ,1,1,1, ,0,0,0,
7、},{ ,1,0,0, ,1,1,0, ,0,1,0, ,0,0,0,},{ ,0,1,0, ,1,1,0, ,1,0,0, ,0,0,0,}};const char errword[4][50]={"程序没能取得足够的内存","无法打开或找不到设置文件set.ini","无法打开或找不到排行榜数据highscore.dat","您设置的参数太大或者太小"}; //控制台HANDLE hout;//控制台句柄COORD curpos={0,0};//光标坐标//主函数
8、int main(){start1: try { hout = GetStdHandle(STD_OUTPUT_HANDLE);//获取控制台句柄,以便移动光标 srand(time(0));//用当前时间初始化随机数生成器 loadset();//加载 loadhs();start2: while(1) { showmenu("俄罗斯方块请选择菜单:1.开