首页 > 其他分享 >小老鼠出迷宫游戏

小老鼠出迷宫游戏

时间:2022-09-01 20:13:08浏览次数:42  
标签:map return 游戏 findWay int 小老鼠 迷宫 System true

 1.思路

1)先创建迷宫,用二维数组表示 int[][] map = new int[8][7];

2)先规定map数组的元素值 0表示可以通过,1表示有障碍物

3)将最上边一行和最下边一行设置成1

4)将最左边一列和最右边一列设置成1

 

 

 2.

public class MiGong {
public static void main(String[] args) {

//思路
//1.先创建迷宫,用二维数组表示。 int[][] map = new int[8][7];
//2.先规定map数组的元素值:0表示可以通过,1表示障碍物。
int[][] map = new int[8][7];
//3.将最上面一行和最下面一行的元素值设置为1
for (int i = 0;i < 7;i++){
map[0][i]=1;
map[7][i]=1;
}
//4.将最左边一列和最右边一列的元素值设置为1
for (int i = 0;i < 8;i++){
map[i][0] = 1;
map[i][6] = 1;
}
map[3][1] = 1;
map[3][2] = 1;
//输出当前地图
System.out.println("====当前地图情况====");
for (int i = 0;i < map.length;i++){
for (int j = 0;j<map[i].length;j++){
System.out.print(map[i][j]+" ");//输出一行
}
System.out.println();
}
//使用findWay给老鼠找路
A a1 = new A();
//下右上左
a1.findWay(map,1,1);
System.out.println("\n====找路的情况如下====");
for (int i = 0;i < map.length;i++){
for (int j = 0;j < map[i].length;j++){
System.out.print(map[i][j] + " ");
}
System.out.println();
}


}
}

class A {

//使用递归回溯的思想来解决老鼠出迷宫
//
// 老韩解读

// 1. findWay 方法就是专门来找出迷宫的路径
// 2. 如果找到,就返回 true ,否则返回 false
// 3. map 就是二维数组,即表示迷宫
// 4. i,j 就是老鼠的位置,初始化的位置为(1,1)
// 5. 因为我们是递归的找路,所以我先规定 map 数组的各个值的含义
// 0 表示可以走 1 表示障碍物 2 表示可以走 3 表示走过,但是走不通是死路
// 6. 当 map[6][5] =2 就说明找到通路,就可以结束,否则就继续找.
// 7. 先确定老鼠找路策略 下->右->上->左

public boolean findWay(int[][] map, int i, int j) {
if (map[6][5] == 2) {//说明已经找到
return true;
} else {
if (map[i][j] == 0) {//当前这个位置 0,说明表示可以走
// 我们假定可以走通
map[i][j] = 2;
//使用找路策略,来确定该位置是否真的可以走通
// 下->右->上->左
if (findWay(map, i + 1, j)) {//先走下
return true;
} else if (findWay(map, i, j + 1)) {//右
return true;
} else if (findWay(map, i - 1, j)) {//上
return true;
} else if (findWay(map, i, j - 1)) {//左
return true;
} else {
map[i][j] = 3;
return false;
}
} else { //map[i][j] = 1 , 2, 3
return false;
}
}
}
}

 

 3.

 

 

    

 

标签:map,return,游戏,findWay,int,小老鼠,迷宫,System,true
From: https://www.cnblogs.com/jtnb/p/16644508.html

相关文章

  • python带你采集桌游、剧本杀游戏店数据信息~
    前言嗨喽~大家好呀,这里是魔王呐!又是学习的一天,让我们开始叭~环境使用:Python3.8Pycharm模块使用:requests>>>pipinstallrequestsrecsv如......
  • 末日题材推理解谜游戏
    World'sEndClub世界末日俱乐部formac是mac上一款由同名小说动漫改编的正版日式冒险RPG,游戏的剧情非常的精彩,玩家将和自己俱乐部的成员一起逃离这个千疮百孔的世界。每......
  • 接入正式广告之后游戏黑屏无法进入该如何解决?
    ​1、问题描述开发的是一款游戏应用,应用本身接入了华为广告SDK,使用测试广告进行测试已经顺利通过,但是在接入正式广告时,要么就是游戏出现了黑屏并且无法进入游戏,要么就是......
  • 数字游戏
    P1043[NOIP2003普及组]数字游戏-洛谷|计算机科学教育新生态(luogu.com.cn)化环为链开两倍空间,求答案时遍历一遍bigsmall[left][right]代表从乐left到right的......
  • UE5 多人游戏学习笔记3 (多人游戏)
    创建项目并引用插件movethemultiplayersessionpluginfolderinto"Plugins"folderofproject.enable"OnlineSubsystemSteam"in"pluginsetting".editconfi......
  • 关于一加一碰手游戏的一点研究
    首先介绍“一加一碰手游戏”。具体规则是这样的:游戏有两个玩家,每个玩家有两只手。初始所有手上的数字都为\(1\)。两个玩家轮流行动,轮到一个玩家时他可以选择对......
  • 0015-wasm-康威生命游戏
    环境Time2022-05-14Rust1.60.0Node12.22.5wasm-pack0.10.2前言说明参考:https://rustwasm.github.io/docs/book/game-of-life/implementing.html目标在上一......
  • C语言猜数字游戏
    C语言猜数字游戏题目十:猜数字游戏1.设计要求:有一定的容错功能,界面友好,功能齐全。2.设计提示:猜数字游戏规则:a)一个四位数,各位上的数不重复,从1到9。b)按以下......
  • c++学习案例:猜数字游戏
    最近在学习C++,遇到了一个案例:猜数字游戏案例要求:系统生成一个范围在1-100的随机整数,用户有5次猜数字的机会,当用户猜的数字大于或小于生成的值时进行提示,5次没猜对则失败,......
  • 语言与生活——假如一切都是语言游戏
    哲学领域中,把语言提高到一个前所未有高度的人是维特根斯坦。维特根斯坦彻底破坏了哲学中的形而上学,他认为哲学史上的大部分争论只是语义不清与逻辑混乱带来的困惑而已,哲学......