下载资源后端资源详情
c语言涂格子游戏源码.zip
大小:11.67KB
价格:42积分
下载量:0
评分:
5.0
上传者:xlfhuahua
更新日期:2024-08-01

c语言涂格子游戏源码.zip

资源文件列表(大概)

文件名
大小
c语言涂格子游戏源码/
-
c语言涂格子游戏源码/c语言涂格子游戏源码/
-
c语言涂格子游戏源码/c语言涂格子游戏源码/c语言涂格子游戏源码/
-
c语言涂格子游戏源码/c语言涂格子游戏源码/c语言涂格子游戏源码/涂格子游戏(也叫点灯游戏).cpp
7.62KB
c语言涂格子游戏源码/c语言涂格子游戏源码/c语言涂格子游戏源码/涂格子游戏(也叫点灯游戏).dsp
3.56KB
c语言涂格子游戏源码/c语言涂格子游戏源码/c语言涂格子游戏源码/涂格子游戏(也叫点灯游戏).dsw
560B
c语言涂格子游戏源码/c语言涂格子游戏源码/c语言涂格子游戏源码/涂格子游戏(也叫点灯游戏).ncb
33KB
c语言涂格子游戏源码/c语言涂格子游戏源码/c语言涂格子游戏源码/涂格子游戏(也叫点灯游戏).opt
47.5KB
c语言涂格子游戏源码/c语言涂格子游戏源码/c语言涂格子游戏源码/涂格子游戏(也叫点灯游戏).plg
844B
c语言涂格子游戏源码/新建文件夹/
-

资源内容介绍

c语言涂格子游戏源码.zip
#include<graphics.h>#include<conio.h>#defineMaxNum14//单边最大格子数#defineG_length30//格子边长#defineUSER_LBUTTONDOWN101#defineUSER_RBUTTONDOWN102#defineUSER_MBUTTONDOWN103///////////////////////////////////////////////void PaintGrid(int Mid_x, int Mid_y, int num, int color);// 绘制游戏格子,初始化格子void OnLButtonDown(MOUSEMSG m, int num);// 左键按下void OnRButtonDown(int num);// 右键按下void OnMButtonDown();// 中键按下*暂无定义*void welcome();// 显示游戏主界面void goodbye(int num);// 显示结束画面void NextLevel(int num);// 下一关int GetMessage(MOUSEMSG m);// 获取鼠标信息int DispatchMessage(MOUSEMSG m, int opt);// 分发鼠标信息int JudgeFull(int num, int array[MaxNum][MaxNum]);// 格子是否填满///////////////////////////////////////////////// 定义游戏格子结构体struct Grid{int left;// 游戏区域边界int right;int top;int bottom;int array[MaxNum][MaxNum];// 记录格子状态int num;// 记录边界格子数目}grid;///////////////////////////////////////////////void main(){int opt, end=0;grid.num=4; welcome();PaintGrid(320, 240, grid.num, RGB(0,255,0));MOUSEMSG m;while(end!=1){m = GetMouseMsg();opt = GetMessage(m);end=DispatchMessage(m, opt);}goodbye(grid.num); closegraph();}///////////////////////////////////////////////// 获取鼠标信息int GetMessage(MOUSEMSG m){//鼠标循环switch(m.uMsg){case WM_LBUTTONDOWN:return USER_LBUTTONDOWN;case WM_RBUTTONDOWN:return USER_RBUTTONDOWN;case WM_MBUTTONDOWN:return USER_MBUTTONDOWN;}return 0;}///////////////////////////////////////////////// 分发消息int DispatchMessage(MOUSEMSG m, int opt){switch(opt){case USER_LBUTTONDOWN:// 左键填色OnLButtonDown(m, grid.num);// 判断是否填满if(JudgeFull(grid.num, grid.array)==1){grid.num++;// 格子数目超过最大值通关if(grid.num>MaxNum){return 1;break;}elseNextLevel(grid.num);}break;case USER_RBUTTONDOWN:// 右键清除OnRButtonDown(grid.num);break;case USER_MBUTTONDOWN:return 1;break;}return 0;}///////////////////////////////////////////////// 左键按下void OnLButtonDown(MOUSEMSG m, int num){int nx, ny, x, y;if(m.x>grid.left && m.x<grid.right && m.y>grid.top && m.y<grid.bottom){// 计算位置nx=(int)(m.x - grid.left)/G_length; ny=(int)(m.y - grid.top )/G_length;// 转换格子状态grid.array[nx][ny] = -grid.array[nx][ny];if(nx >= 0 && nx < num-1) grid.array[nx+1][ny] = -grid.array[nx+1][ny];if(nx > 0 && nx <= num-1) grid.array[nx-1][ny] = -grid.array[nx-1][ny];if(ny >= 0 && ny < num-1) grid.array[nx][ny+1] = -grid.array[nx][ny+1];if(ny > 0 && ny <= num-1) grid.array[nx][ny-1] = -grid.array[nx][ny-1];// 扫描填色for(nx=0; nx<num; nx++)for(ny=0; ny<num; ny++){if(grid.array[nx][ny] == 1)setfillcolor(GREEN);elsesetfillcolor(BLACK);x= nx * G_length + grid.left;y= ny * G_length + grid.top;solidrectangle(x+1, y+1, x+G_length-1, y+G_length-1);}}}///////////////////////////////////////////////// 右键按下清空void OnRButtonDown(int num){int x, y, nx, ny;for(x=0; x<num; x++)for(y=0; y<num; y++)grid.array[x][y] = -1;for(nx=0; nx<num; nx++)for(ny=0; ny<num; ny++){setfillcolor(BLACK);x= nx*G_length + grid.left;y= ny*G_length + grid.top;solidrectangle(x+1, y+1, x+G_length-1, y+G_length-1);}}///////////////////////////////////////////////// 显示下一关// 参数://num:下一关的边界格子数void NextLevel(int num){// 清屏BeginBatchDraw();for(int y=0; y<=480; y+=5){setlinecolor(RGB(0, 255, 0));settextcolor(RGB(0, 255, 0));line(0, y, 640, y);line(0, 480-y, 640, 480-y);outtextxy(300, y, "下一关");FlushBatchDraw();Sleep(16);setfillcolor(BLACK);solidrectangle(0, y+4, 640, y-5);solidrectangle(0, 480-y, 640, 480-y+5);}EndBatchDraw();// 绘制下一关格子PaintGrid(320, 240, num, RGB(0,255,0));}///////////////////////////////////////////////// 判断格子是否填满// 参数://num:单边格子数目//array:生成数组接收实参int JudgeFull(int num, int array[MaxNum][MaxNum]){int c=-1;int nx=0, ny=0;while(nx<num && ny<num){for(nx=0; nx<num; nx++)for(ny=0; ny<num; ny++)if(array[nx][ny]==1)continue;else return c;}c=1;return c;}///////////////////////////////////////////////// 绘制游戏格子,初始化格子// 参数://Mid_x:屏幕中心 x 坐标//Mid_y:屏幕中心 y 坐标//num:单边格子数目//color:格子线条颜色void PaintGrid(int Mid_x, int Mid_y, int num, int color){int x,y,nx,ny;// 游戏区域大小 grid.left = Mid_x-num*G_length/2;grid.right = Mid_x+num*G_length/2;grid.top = Mid_y-num*G_length/2;grid.bottom = Mid_y+num*G_length/2;// 绘制格子setlinecolor(color);for(x=grid.left; x<=grid.right; x+=G_length){line(x, grid.top, x, grid.bottom);Sleep(10);}for(y=grid.top; y<=grid.bottom; y+=G_length){line(grid.left, y, grid.right, y);Sleep(10);}// 外边框for(x=20;x>10;x--){line(grid.left-x,grid.top-x,grid.right+x,grid.top-x);line(grid.left-x,grid.bottom+x,grid.right+x,grid.bottom+x);line(grid.left-x,grid.top-x,grid.left-x,grid.bottom+x);line(grid.right+x,grid.top-x,grid.right+x,grid.bottom+x);Sleep(5);}// 清空单元格for(x=0; x<num; x++)for(y=0; y<num; y++)grid.array[x][y] = -1;for(nx=0; nx<num; nx++)for(ny=0; ny<num; ny++){setfillcolor(BLACK);x = nx * G_length + grid.left;y = ny * G_length + grid.top;solidrectangle(x+1, y+1, x+G_length-1, y+G_length-1);}}///////////////////////////////////////////////// 显示游戏主界面void welcome(){// 初始化窗口initgraph(640, 480);// 输出屏幕提示cleardevice();settextcolor(RGB(0,255,0));settextstyle(64, 0, "黑体");outtextxy(70, 50, "涂格子游戏(点灯)");settextcolor(WHITE);settextstyle(16, 0, "宋体");outtextxy(100, 200, "每点一个格子,上下左右的格子也会做出于现状相反的动作");outtextxy(100, 240, "总共11关,左键填色,右键重来,中键退出");outtextxy(100, 280, "只是一个功能演示版本,以后再改进");outtextxy(400, 320, "by:doufuguolyl");settextstyle(16, 0, "黑体");outtextxy(400, 340, "Ver 0.1");// 实现闪烁的"按任意键继续"int c=255;while(!kbhit()){settextcolor(RGB(0, c, 0));outtextxy(280, 400, "按任意键继续");c -= 8;if (c < 0) c = 255;Sleep(20);}getch();cleardevice();}///////////////////////////////////////////////// 显示结束画面void goodbye(int num){int c=255;// 清屏BeginBatchDraw();for(int y=0; y<=480; y+=5){setlinecolor(RGB(0, 255, 0));line(0, y, 640, y);line(0, 480-y, 640, 480-y);FlushBatchDraw();Sleep(16);setfillcolor(BLACK);solidrectangle(0, y+4, 640, y-5);solidrectangle(0, 480-y, 640, 480-y+5);}EndBatchDraw();//判断显示文字if(num == MaxNum+1){settextcolor(RGB(0, c, 0));settextstyle(48, 0, "黑体");outtextxy(280, 200, "通关");settextstyle(20, 0, "黑体");}else{settextcolor(RGB(0, c, 0));settextstyle(48, 0, "黑体");outtextxy(200, 200, "再接再厉");settextstyle(20, 0, "黑体");}while(!kbhit()){settextcolor(RGB(0, c, 0));outtextxy(400, 400, "QQ: 372480348");c -= 8;if (c < 0) c = 255;Sleep(20);}getch();}

用户评论 (0)

发表评论

captcha

相关资源

基于JAVA的大型超市应急预案管理系统(Vue.js+SpringBoot+MySQL)

基于Vue.js和SpringBoot的大型超市应急预案管理系统是一个高效、易用的管理平台,它分为管理后台和用户网页端,旨在为管理员和员工提供全面的应急预案管理功能。系统包括员工管理模块,允许管理员对员工信息进行添加、编辑和删除操作;预案类型模块,用于定义不同类型的应急预案;预案信息模块,存储和管理具体的预案内容;事件类型模块,对可能发生的事件进行分类;以及预案统计模块,提供对预案使用情况的统计分析。通过这个系统,管理员和员工可以更加高效地进行应急预案的制定、管理和执行,确保在紧急情况下能够迅速响应并采取有效措施。演示录屏:https://www.bilibili.com/video/BV1qH4y157ZW配套教程:https://www.bilibili.com/video/BV1pW4y1P7GR

9.1MB28积分

手写框架的外卖订餐管理系统

这是一份关于手写框架的外卖订餐管理系统的课程设计作业报告。报告阐述了创作前的设计思路及流程,包括 Spring 等配置文件的创建与引入。介绍了创作流程,如 Tomcat 服务器的使用和相关配置。还涵盖了数据库设计,包含管理员、菜品等多个表。详细描述了功能模块和运行结果,并对系统进行了总结和展望,包括已实现的功能和未来在功能扩展、性能优化等方面的计划。

93.16MB29积分

手写ssm框架的外卖订餐管理系统源码+word

这是一份关于手写框架的外卖订餐管理系统的课程设计作业报告。报告阐述了创作前的设计思路及流程,包括 Spring 等配置文件的创建与引入。介绍了创作流程,如 Tomcat 服务器的使用和相关配置。还涵盖了数据库设计,包含管理员、菜品等多个表。详细描述了功能模块和运行结果,并对系统进行了总结和展望,包括已实现的功能和未来在功能扩展、性能优化等方面的计划。

96.76MB50积分

libomp140.x86-64.dll

libomp140.x86_64.dll使用pytorch的时候可能会缺少的dll

316.83KB43积分