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

一个人做网站原型天津做网站的企业

一个人做网站原型,天津做网站的企业,深圳微商城网站制作公司,美食网页设计图片前言#xff1a; 制作一个迷宫游戏是一个有趣的编程挑战。首先#xff0c;我们需要设计一个二维数组来表示迷宫的布局#xff0c;其中每个元素代表迷宫中的一个格子。我们可以使用不同的值来表示空格、墙壁和起点/终点。接下来#xff0c;我们需生成迷宫。在生成迷宫的过程…前言 制作一个迷宫游戏是一个有趣的编程挑战。首先我们需要设计一个二维数组来表示迷宫的布局其中每个元素代表迷宫中的一个格子。我们可以使用不同的值来表示空格、墙壁和起点/终点。接下来我们需生成迷宫。在生成迷宫的过程中我们需要确保迷宫中有足够的障碍物以便玩家需要找到一条从起点到终点的路径。最后我们需要编写代码来显示迷宫接收用户的输入更新迷宫的状态判断游戏是否结束并提供重新开始的选项。通过完成这个迷宫游戏项目我们可以提高自己的编程能力和逻辑思维能力。 1. 打印菜单 void menu() {printf(|---------------------------------------|\n);printf(| |\n);printf(| 走迷宫 |\n);printf(| 1.play |\n);printf(| 2.exit |\n);printf(| |\n);printf(|---------------------------------------|\n); }int main() {int input 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择有误请重新选择\a\n);}} while (input); }2. 分析迷宫的组成要素 迷宫的组成要素无非就是墙、路、入口、出口根据这些要素我们可以设置一个数组然后随机给其赋值为0,1,2,3当数组等于0时打印路这里用空格代替等于1时打印墙这里用█代替等于2打印入口这里用S代替等于3时打印出口这里用E代替。 3. 实现迷宫的组成要素 因为这些要素的生成都与随机数有关所以这里就要使用到time函数、srand函数和rand函数来进行随机数的生成。 #includetime.h srand((time(NULL)) int x rand(); 3.1 生成路 给数组初始化为0生成路后面再用随机数生成。 for (int i 0; i SIZE; i){for (int j 0; j SIZE; j){maze[i][j] 0;}} 3.2 生成围墙 还需要设置围墙将我们的迷宫围起来防止数组的越界访问。 for (int i 0; i SIZE; i) {maze[0][i] 1;maze[i][0] 1;maze[SIZE - 1][i] 1;maze[i][SIZE - 1] 1; } 3.3 生成入口和出口 因为入口和出口都是只有一个所以这里我们需要单独使用随机数生成入口和出口。 int start_x rand() % SIZE;int start_y rand() % SIZE;maze[start_y][start_x] 2;int end_x rand() % SIZE;int end_y rand() % SIZE;maze[end_y][end_x] 3; 3.4 防止入口或出口出现在围墙上 这里使用了goto语句 again://围墙for (int i 0; i SIZE; i){maze[0][i] 1;maze[i][0] 1;maze[SIZE - 1][i] 1;maze[i][SIZE - 1] 1;}//设置入口与出口int start_x rand() % SIZE;int start_y rand() % SIZE;maze[start_y][start_x] 2;int end_x rand() % SIZE;int end_y rand() % SIZE;maze[end_y][end_x] 3;//防止入口或出口出现在围墙上if (start_x 0 || start_x SIZE - 1 || start_y 0 || start_y SIZE - 1|| end_x 0 || end_x SIZE - 1 || end_y 0 || end_y SIZE - 1){goto again;} 3.5 生成墙 for (int i 0; i SIZE; i) {for (int j 0; j SIZE; j){if (maze[i][j] ! 2 maze[i][j] ! 3){if (rand() % 4 0){maze[i][j] 1;}}} } 4. 操作移动 在这里用到了getch函数这个函数需要用#include conio.h来进行调用。 #include conio.h int main() {while (1){int x getch(); if (x w)printf(上\n);if (x a)printf(左\n);if (x s)printf(下\n);if (x d)printf(右\n);}return 0; } do {system(cls);print_maze(maze);int x getch();if (x w)//上{if (maze[start_y - 1][start_x] ! 1){maze[start_y][start_x] 0;start_y--;maze[start_y][start_x] 2;}}if (x a)//左{if (maze[start_y][start_x - 1] ! 1){maze[start_y][start_x] 0;start_x--;maze[start_y][start_x] 2;}}if (x s)//下{if (maze[start_y 1][start_x] ! 1){maze[start_y][start_x] 0;start_y;maze[start_y][start_x] 2;}}if (x d)//右{if (maze[start_y][start_x 1] ! 1){maze[start_y][start_x] 0;start_x;maze[start_y][start_x] 2;}}if (maze[end_y][end_x] 2){printf(恭喜你成功通关\n);break;} } while (1); 其中system(cls)函数的作用是清屏它需要使用#icnlduestdlib.h进行调用。 完整代码 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h #include stdlib.h #include time.h #includeconio.h #define SIZE 45 //打印迷宫 void print_maze(int maze[SIZE][SIZE]) {for (int i 0; i SIZE; i){for (int j 0; j SIZE; j){if (maze[i][j] 1){printf(█);}else if (maze[i][j] 2){printf(S);//入口}else if (maze[i][j] 3){printf(E);//出口}else{printf( );}}printf(\n);}printf(\n); }void generate_maze(int maze[SIZE][SIZE]) { again:for (int i 0; i SIZE; i){for (int j 0; j SIZE; j){maze[i][j] 0;}}//围墙for (int i 0; i SIZE; i){maze[0][i] 1;maze[i][0] 1;maze[SIZE - 1][i] 1;maze[i][SIZE - 1] 1;}//设置入口与出口int start_x rand() % SIZE;int start_y rand() % SIZE;maze[start_y][start_x] 2;int end_x rand() % SIZE;int end_y rand() % SIZE;maze[end_y][end_x] 3;//防止入口或出口出现在围墙上if (start_x 0 || start_x SIZE - 1 || start_y 0 || start_y SIZE - 1|| end_x 0 || end_x SIZE - 1 || end_y 0 || end_y SIZE - 1){goto again;}//设置迷宫for (int i 0; i SIZE; i){for (int j 0; j SIZE; j){if (maze[i][j] ! 2 maze[i][j] ! 3){if (rand() % 4 0){maze[i][j] 1;}}}}//操作S移动do{system(cls);print_maze(maze);int x getch();if (x w)//上{if (maze[start_y - 1][start_x] ! 1){maze[start_y][start_x] 0;start_y--;maze[start_y][start_x] 2;}}if (x a)//左{if (maze[start_y][start_x - 1] ! 1){maze[start_y][start_x] 0;start_x--;maze[start_y][start_x] 2;}}if (x s)//下{if (maze[start_y 1][start_x] ! 1){maze[start_y][start_x] 0;start_y;maze[start_y][start_x] 2;}}if (x d)//右{if (maze[start_y][start_x 1] ! 1){maze[start_y][start_x] 0;start_x;maze[start_y][start_x] 2;}}if (maze[end_y][end_x] 2){printf(恭喜你成功通关\n);break;}} while (1); } void menu() {printf(|---------------------------------------|\n);printf(| |\n);printf(| 走迷宫 |\n);printf(| 1.play |\n);printf(| 2.exit |\n);printf(| |\n);printf(|---------------------------------------|\n); }void game() {srand(time(NULL));int maze[SIZE][SIZE];//打印迷宫generate_maze(maze); }int main() {int input 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择有误请重新选择\a\n);}} while (input); } 效果图  以上就是使用c语言写迷宫的全部内容啦如果上述内容对你有帮助的话不要忘记点上一个小小的赞和关注呦期待我们下次再见。
http://www.hkea.cn/news/14257696/

相关文章:

  • 网站推广链接怎么做杭州恒彩装饰公司怎么样
  • 高端网站建设公沈阳黑酷做网站建设优化公司怎么样
  • 电子商务网站建设题目个人网页模板关于爱国
  • 龙岩房产网河南企业网站优化
  • 深圳网站建设迈大学一学一做视频网站
  • 友链网站降权手机电视直播网站大全
  • 内部网站开发软件网页制作平台哪家好
  • 神华两学一做网站seo推广学院
  • 微信网站建设定制北京网站定制流程
  • 深圳做网站开发费用wordpress如何进入仪表盘
  • 酷炫网站源码营销技巧在线观看
  • 有哪些免费推广网站重庆企业网站推广策略
  • 国际网站平台有哪些营销型门户网站建设
  • 博物馆网站页面设计说明重庆建网站的公司集中在哪里
  • 来宾网站建设网址百度刷排名
  • 无忧建站网络工程师是干嘛的
  • 优秀的网站建设推荐超炫的网站模板
  • 安徽省建设厅网站打不开宽带公司排名
  • 课程网站建设的步骤义乌网页设计公司
  • 广东深圳建设工程信息网站wordpress主题创建后门
  • 可信网站查询官网wordpress后台文章自定义字段面板
  • 嘉兴网站建设网址中国建筑官网一测
  • 华企立方网站linux 网站服务器搭建
  • vps 网站 需要绑定域名吗计算机一级考试网站怎么做
  • 装修网站制作seo云优化软件
  • 设计师常上的网站建立网站的条件
  • 天津北京网站建设公司宁波seo教程行业推广
  • 专做企业的p2p网站wordpress 顶部图片
  • 上海seo推广营销型企业网站优化的作用
  • 网站竞价360度实景地图下载