当前位置: 首页 > news >正文

企业网站 漏洞北京创意设计协会网站

企业网站 漏洞,北京创意设计协会网站,长沙app开发公司排名,网站服务器在哪里一、First of ALL 学习完了EGE库的所有函数后#xff0c;今天我们就来综合实践一下。 今天我们将写一个数字华容道来简单练一练手。 准备好了吗#xff0c;让我们开始。 DEV-C ege.h库 绘图教程合集 二、材料准备 1.音乐 我们可以为我们的游戏增加音乐#xff0c;这里我…一、First of ALL 学习完了EGE库的所有函数后今天我们就来综合实践一下。 今天我们将写一个数字华容道来简单练一练手。 准备好了吗让我们开始。 DEV-C ege.h库 绘图教程合集 二、材料准备 1.音乐 我们可以为我们的游戏增加音乐这里我找了一首MP3来做背景音乐。 2.按键侦测 虽然ege库内有自带的按键侦测函数但我还是习惯使用windows.h库里的按键侦测函数。 #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) 0x8000)? 1 : 0)例如KEY_DOWN(VK_RETURN)会侦测在这一时刻你是否按下了回车键。 三、代码实现 1.main函数 那么首先我们得让画面看起来是这样的 首先就是initgraph和setbkcolor这一部分很简单不用多说。 initgraph(640, 480);setcaption(L数字华容道); //设置标题setbkcolor(WHITE); //背景颜色MUSIC mus; //音乐初始化mus.OpenFile(LPiano.mp3); //打开音乐mus.Play(); //播放音乐 然后就是初始化地图绘制窗口。里面有些函数我们等一下会讲。 init_map(); //这些函数等一下会讲draw_map();draw_number();setfont(20, 10, LLucida Console);//字体outtext(L按N静音); //提示信息outtextxy(0, 20, L按M重置);outtextxy(0, 40, L按B退出); 然后就开始游戏循环了。 for (;;) {move_map(); //移动数字后draw_number(); //重新绘制地图数字if (KEY_DOWN(N)) {if (mus_state 0) {mus_state 1; //muw_state:记录音乐在播放还是停止mus.Pause(); //如果在播放时按下N停止。} else {mus_state 0; //下同mus.Play();}}if (KEY_DOWN(M)) { //M代表重开再更新一遍地图init_map();draw_map();draw_number();}if (KEY_DOWN(B)) { //B则是结束return 0;}if (is_win()) { //如果胜利了就退出break;}if (mus.GetLength() mus.GetPosition()) {mus.Close();mus.OpenFile(LPiano.mp3);mus.Play();} //如果音乐播完了再播一次Sleep(100); //延迟} 最后如果胜利了输出提示信息结束。 win();closegraph();return 0; main函数 int main() {initgraph(640, 480);setcaption(L数字华容道);setbkcolor(WHITE);MUSIC mus;mus.OpenFile(LPiano.mp3);mus.Play();init_map();draw_map();draw_number();setfont(20, 10, LLucida Console);outtext(L按N静音);outtextxy(0, 20, L按M重置);outtextxy(0, 40, L按B退出);for (;;) {move_map();draw_number();if (KEY_DOWN(N)) {if (mus_state 0) {mus_state 1;mus.Pause();} else {mus_state 0;mus.Play();}}if (KEY_DOWN(M)) {init_map();draw_map();draw_number();}if (KEY_DOWN(B)) {return 0;}if (is_win()) {break;}if (mus.GetLength() mus.GetPosition()) {mus.Close();mus.OpenFile(LPiano.mp3);mus.Play();}Sleep(100);}win();closegraph();return 0; } 2.position结构体 这个结构体将记录每个数字的位置。 typedef struct {int x;int y; } position; //不是坐标轴的x,y而是行和列 3.initmap函数 这个函数将初始化地图也就是3×3的矩阵具体操作见下。 void init_map() {bool b[9] {0}; //记录每个数字是否已被选中过randomize(); //初始化随机数for (int i 0; i 3; i) {for (int j 0; j 3; j) {do { MAP[i][j] random(9); //取随机数} while (b[MAP[i][j]] ! 0); //如果这个数已经在矩阵里就再取一遍b[MAP[i][j]] 1; //标记这个数取过了} //这样就保证里面的数是012345678而不会有//两个2这样的事情发生。}if (is_win()) init_map(); //如果出来的矩阵已经是排列好的就再init一遍 } 4.draw_map函数 init完之后就应该绘制框框来填数字了。 void draw_map() {int x[9] {200, 280, 360, 200, 280, 360, 200, 280, 360};//记录每个框框的xint y[9] {120, 120, 120, 200, 200, 200, 280, 280, 280};//记录每个框框的ysetcolor(BLACK); //设置颜色for (int i 0; i 9; i) {rectangle(x[i], y[i], x[i] 80, y[i] 80); //绘制框框长宽各为80} } 这样我们就得到了3×3的一个矩形了。 5.draw_number函数 绘制好框框后就该往里面填数字了。 void draw_number() {int x[9] {200, 280, 360, 200, 280, 360, 200, 280, 360};//数字的x坐标int y[9] {120, 120, 120, 200, 200, 200, 280, 280, 280};//数字的y坐标setfont(70, 35, LLucida Console);//字体for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (MAP[i][j] ! 0) print_score(MAP[i][j], x[i * 3 j] 2, y[i * 3 j] 2); //如果不是0就在框框内写入数字。else outtextxy(x[i * 3 j] 2, y[i * 3 j] 2, L );//如果是0就代表这里是空白}} } 6.move_map函数 这个函数就是我们操作的核心了。 void move_map() {position p;for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (MAP[i][j] 0) { //记录哪个地方是空白的p.x i;p.y j;}}}if (KEY_DOWN(VK_RIGHT)) { //如果按下右键就让空白处左边的数移到空白处if (p.y ! 0) { //而且空白处左边必须有数(y坐标不为0)swap(MAP[p.x][p.y], MAP[p.x][p.y - 1]);//移动交换}}if (KEY_DOWN(VK_LEFT)) {if (p.y ! 2) { //下同swap(MAP[p.x][p.y], MAP[p.x][p.y 1]);}}if (KEY_DOWN(VK_DOWN)) {if (p.x ! 0) {swap(MAP[p.x][p.y], MAP[p.x - 1][p.y]);}}if (KEY_DOWN(VK_UP)) {if (p.x ! 2) {swap(MAP[p.x][p.y], MAP[p.x 1][p.y]);}} } 7.is_win函数 判断是否已经胜利。  bool is_win() {for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (MAP[i][j] ! i * 3 j 1 MAP[i][j] ! 0) return 0;//如果这个数字不在它该在的位置上的话返回0}}return 1; } 8.win函数 当判断胜利后我们要输出生胜利信息. void win() {cleardevice();setfont(80, 40, LLucida Console);outtextxy(200, 200, LWIN!!!);Sleep(1000);getch(); } 这个就没什么好说的了。 9.int_to_string函数 将int转换为string也没什么好说的。 string DX(string s) {string res ;for (int i s.size() - 1; i 0; i--)res s[i];return res; }string int_to_string(int i) {string res ;while (i % 10 ! i) {res i % 10 0;i / 10;}res i 0;return DX(res); }10.print_score函数 前面的int_to_string就用在这里了输出数字。 void print_score(int score, int x 0, int y 0) { //x,y:坐标string s int_to_string(score); //将score转为string型for (int i 0; i s.size(); i) {switch (s[i]) { //输出第i位case 0:outtextxy(x 10 * i, y, L0);break;case 1:outtextxy(x 10 * i, y, L1);break;case 2:outtextxy(x 10 * i, y, L2);break;case 3:outtextxy(x 10 * i, y, L3);break;case 4:outtextxy(x 10 * i, y, L4);break;case 5:outtextxy(x 10 * i, y, L5);break;case 6:outtextxy(x 10 * i, y, L6);break;case 7:outtextxy(x 10 * i, y, L7);break;case 8:outtextxy(x 10 * i, y, L8);break;case 9:outtextxy(x 10 * i, y, L9);break;default:outtextxy(x 10 * i, y, LError); //如果不是0123456789中的一个就报错break;}} } 这个函数是在draw_number里用到的用来输出数字。 四、结束 那么现在我们的数字华容道就写完了下面是代码 #includegraphics.h #includebits/stdc.h#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) 0x8000)? 1 : 0)using namespace std;int MAP[3][3]; bool mus_state 0;typedef struct {int x;int y; } position; //不是坐标轴的x,y而是行和列string DX(string s) {string res ;for (int i s.size() - 1; i 0; i--)res s[i];return res; }string int_to_string(int i) {string res ;while (i % 10 ! i) {res i % 10 0;i / 10;}res i 0;return DX(res); }void print_score(int score, int x 0, int y 0) {string s int_to_string(score);for (int i 0; i s.size(); i) {switch (s[i]) {case 0:outtextxy(x 10 * i, y, L0);break;case 1:outtextxy(x 10 * i, y, L1);break;case 2:outtextxy(x 10 * i, y, L2);break;case 3:outtextxy(x 10 * i, y, L3);break;case 4:outtextxy(x 10 * i, y, L4);break;case 5:outtextxy(x 10 * i, y, L5);break;case 6:outtextxy(x 10 * i, y, L6);break;case 7:outtextxy(x 10 * i, y, L7);break;case 8:outtextxy(x 10 * i, y, L8);break;case 9:outtextxy(x 10 * i, y, L9);break;default:outtextxy(x 10 * i, y, LError);break;}} }bool is_win();void init_map() {bool b[9] {0};randomize();for (int i 0; i 3; i) {for (int j 0; j 3; j) {do {MAP[i][j] random(9);} while (b[MAP[i][j]] ! 0);b[MAP[i][j]] 1;}}if (is_win()) init_map(); }void draw_map() {int x[9] {200, 280, 360, 200, 280, 360, 200, 280, 360};int y[9] {120, 120, 120, 200, 200, 200, 280, 280, 280};setcolor(BLACK);for (int i 0; i 9; i) {rectangle(x[i], y[i], x[i] 80, y[i] 80);} }void draw_number() {int x[9] {200, 280, 360, 200, 280, 360, 200, 280, 360};int y[9] {120, 120, 120, 200, 200, 200, 280, 280, 280};setfont(70, 35, LLucida Console);for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (MAP[i][j] ! 0) print_score(MAP[i][j], x[i * 3 j] 2, y[i * 3 j] 2);else outtextxy(x[i * 3 j] 2, y[i * 3 j] 2, L );}} }void move_map() {position p;for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (MAP[i][j] 0) {p.x i;p.y j;}}}if (KEY_DOWN(VK_RIGHT)) {if (p.y ! 0) {swap(MAP[p.x][p.y], MAP[p.x][p.y - 1]);}}if (KEY_DOWN(VK_LEFT)) {if (p.y ! 2) {swap(MAP[p.x][p.y], MAP[p.x][p.y 1]);}}if (KEY_DOWN(VK_DOWN)) {if (p.x ! 0) {swap(MAP[p.x][p.y], MAP[p.x - 1][p.y]);}}if (KEY_DOWN(VK_UP)) {if (p.x ! 2) {swap(MAP[p.x][p.y], MAP[p.x 1][p.y]);}} }bool is_win() {for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (MAP[i][j] ! i * 3 j 1 MAP[i][j] ! 0) return 0;}}return 1; }void win() {cleardevice();setfont(80, 40, LLucida Console);outtextxy(200, 200, LWIN!!!);Sleep(1000);getch(); }int main() {initgraph(640, 480);setcaption(L数字华容道);setbkcolor(WHITE);MUSIC mus;mus.OpenFile(LPiano.mp3);mus.Play();init_map();draw_map();draw_number();setfont(20, 10, LLucida Console);outtext(L按N静音);outtextxy(0, 20, L按M重置);outtextxy(0, 40, L按B退出);for (;;) {move_map();draw_number();if (KEY_DOWN(N)) {if (mus_state 0) {mus_state 1;mus.Pause();} else {mus_state 0;mus.Play();}}if (KEY_DOWN(M)) {init_map();draw_map();draw_number();}if (KEY_DOWN(B)) {return 0;}if (is_win()) {break;}if (mus.GetLength() mus.GetPosition()) {mus.Close();mus.OpenFile(LPiano.mp3);mus.Play();}Sleep(100);}win();closegraph();return 0; } 五、程序下载 今天写的游戏和音乐我都会放到这里需要的可以下载。 六、Conclusion 今天我们用ege库写出了我们的第一个游戏下期我们将会用ege库写出更好的游戏。 敬请期待
http://www.zqtcl.cn/news/900140/

相关文章:

  • 免费发布推广信息的网站百度招聘2022年最新招聘
  • 建站公司怎么获客任县附近网站建设价格
  • 泰兴市淘宝网站建设指数 网站权重
  • 烟台市做网站找哪家好才艺多网站建设
  • nginx wordpress 重写seo技术大师
  • 公司网站建设需要什么科目上海服务政策调整
  • 如何免费搭建自己的网站网站建设公司swot分析
  • 太原网站优化技术如何开发一款app软件
  • 莆田做网站公司lnmp wordpress 404
  • 网站开发中的qq登录网站地图有什么作用
  • 南宁小程序开发网站建设公司网络营销方案设计范文
  • 电脑做网站主机空间哈尔滨人才招聘信息网
  • 无锡网站建设制作设计wordpress news list
  • 专业建站教程青海 网站开发 图灵
  • 济南网站公司哪家好中国建设银行电脑版
  • 企业网站建设定制网站建设成功案例怎么写
  • 一个网站做数据维护3天正常吗做sgs认证公司网站
  • 免费网络短剧网站摄影素材库网站
  • 如何做竞价网站数据监控网站建设企业的市场分析
  • 电脑做网站主机空间软件开发工作岗位
  • 计算机多媒体辅助教学网站开发响应式网站建设精英
  • 免费网站空间怎么做网站主持人
  • 开源建站系统有哪些网站信息化建设合同
  • 昆明云南微网站淄博专业网站建设
  • 古典网站源码海南app开发
  • 自己做网站前期困难吗怎么早网站上放广告
  • 建设银行招标网站南昌网站建设公司信息
  • 网站建设与管理专业介绍湖南长沙邮政编码
  • 社区论坛系统免费开源seo网站诊断报告
  • 网站LOGO透明底色PNG格式怎么做的开发一款游戏需要多少资金