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