水管道游戏
来源:互联网 发布:哈利波特知乎 编辑:程序博客网 时间:2024/04/27 16:33
struct note { public int x;//横坐标 public int y; public int s; } class Program { static int[,] book = new int[20, 20]; static int[,] a = new int[20, 20]; static int n = 5, m = 4, flag; static note[] s = new note[2500]; static int top = 0; static void Main(string[] args) { a[1, 1] = 5; a[1, 2] = 3; a[1, 3] = 5; a[1, 4] = 3; a[2, 1] = 1; a[2, 2] = 5; a[2, 3] = 3; a[2, 4] = 0; a[3, 1] = 2; a[3, 2] = 3; a[3, 3] = 5; a[3, 4] = 1; a[4, 1] = 6; a[4, 2] = 1; a[4, 3] = 1; a[4, 4] = 5; a[5, 1] = 1; a[5, 2] = 5; a[5, 3] = 5; a[5, 4] = 4; //打印构建的AA数组 for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 4; j++) { Console.Write(a[i, j]); } Console.WriteLine(); } dfs(1, 1, 1); if (flag == 0) { Console.WriteLine("没有找到管道"); } else { Console.WriteLine("有找到管道"); } Console.ReadKey(); } public static void dfs(int x, int y, int front) { //判断是否到达终点, if (x == n && y == m + 1) { flag = 1; for (int i = 1; i <= top; i++) { Console.Write("{" + s[i].x + "," + s[i].y + "}"); } return; } //判断是否越界 if (x < 1 || x > n || y < 1 || y > m) { return; } //判断管道是否在路径中出现过啊 if (book[x, y] == 1) return; //标记当前位置已使用 book[x, y] = 1; //将当前位置放入栈中 top++; s[top].x = x; s[top].y = y; //当水管为直管的情况 if (a[x, y] >= 5 && a[x, y] <= 6) { if (front == 1)//进水口在左边的情况 { dfs(x, y + 1, 1);//只能使用5号这种摆放方式 } if (front == 2) { dfs(x + 1, y, 2); } if (front == 3) { dfs(x, y - 1, 3); } if (front == 4) { dfs(x - 1, y, 4); } } //当水管为弯管的情况 if (a[x, y] >= 1 && a[x, y] <= 4) { if (front == 1) { dfs(x + 1, y, 2); dfs(x - 1, y, 4); } if (front == 2) { dfs(x, y + 1, 1); dfs(x, y - 1, 3); } if (front == 3) { dfs(x - 1, y, 4); dfs(x + 1, y, 2); } if (front == 4) { dfs(x, y + 1, 1); dfs(x, y - 1, 3); } } book[x, y] = 0; top--; return; }
运行结果
文章引之:《啊哈!算法》
0 0
- 水管道游戏
- 水管工游戏
- 水管工游戏
- 4.6水管工游戏
- 水管工游戏
- FZU-1892(bfs)接水管游戏
- 水管工游戏--dfs的应用
- 杂谈:编程解决水管工游戏
- 水管工游戏(随机地图版)
- 啊哈算法DFS应用之水管工游戏
- tianchai 12023 水管工游戏(DFS搜索)
- 【cocos2dx-3.0beta-制作flappybird】让马里奥大叔来搬水管—在游戏层加入水管
- FZU1892接水管游戏-BFS加上简单的状态压缩和位运算处理
- 水管漏水
- 水管局长
- 水管bfs
- JZOJ5275. 水管
- 水管工和教授
- spring boot整合JMS(ActiveMQ实现)
- 0118
- 【狂云歌之unity_vr】unity项目持续集成dailybuild以及多平台打包管理
- AT 指令和常见错误码
- 图片上传及预览
- 水管道游戏
- java 集合框架-CopyOnWriteArrayList
- canvas 画布在主流浏览器中的尺寸限制详细介绍
- 如何制作yum本地源
- 80c51单片机通用I/O口
- React语法一
- 第11天(就业班) servlet编程、读取web应用下的资源文件、cookie、Session技术
- linux常用命令
- 透视学理论(十一)