Java实现第八届蓝桥杯迷宫
2024-08-26 20:39:35
迷宫
题目描述
X星球的一处迷宫游乐场建在某个小山坡上。
它是由10x10相互连通的小房间组成的。
房间的地板上写着一个很大的字母。
我们假设玩家是面朝上坡的方向站立,则:
L表示走到左边的房间,
R表示走到右边的房间,
U表示走到上坡方向的房间,
D表示走到下坡方向的房间。
X星球的居民有点懒,不愿意费力思考。
他们更喜欢玩运气类的游戏。这个游戏也是如此!
开始的时候,直升机把100名玩家放入一个个小房间内。
玩家一定要按照地上的字母移动。
迷宫地图如下:
UDDLUULRUL
UURLLLRRRU
RRUURLDLRD
RUDDDDUUUU
URUDLLRRUU
DURLRLDLRL
ULLURLLRDU
RDLULLRDDD
UUDDUDUDLL
ULRDLUURRR
请你计算一下,最后,有多少玩家会走出迷宫?
而不是在里边兜圈子。
请提交该整数,表示走出迷宫的玩家数目,不要填写任何多余的内容。
如果你还没明白游戏规则,可以参看一个简化的4x4迷宫的解说图:p1.png
public class Main
{
static char[][] a = new char[10][10];
static boolean[][] b = new boolean[10][10];
static int cnt = 0;
public static void main(String[] args) {
String str="UDDLUULRULUURLLLRRRURRUURLDLRDRUDDDDUUUUURUDLLRRUUDURLRLDLRLULLURLLRDURDLULLRDDDUUDDUDUDLLULRDLUURRR";
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
a[i][j] = str.charAt(i*10+j);
}
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
int x = i;
int y = j;
init();
while (true) {
if (x < 0 || x > 9 || y < 0 || y > 9) {
cnt++;
break;
}
if (b[x][y] == true) {
break;
}
b[x][y] = true;
switch (a[x][y]) {
case 'U':
x -= 1;
break;
case 'D':
x += 1;
break;
case 'L':
y -= 1;
break;
case 'R':
y += 1;
break;
default:
break;
}
}
}
}
System.out.println(cnt);
}
private static void init() {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
b[i][j] = false;
}
}
}
}
最新文章
- iis6|iis7|配置URLRewriter|64位操作系统下|.net2.0|.net4.0|配置URLRewriter|Web.config配置详情
- [web安全]Web应用漏洞攻击分析与防范
- Hosting socket.io WebSocket apps in IIS using iisnode
- iOS开发小技巧--纯代码自定义cell
- php课程---Json格式规范需要注意的小细节
- HTTP状态码大全(转自wiki)
- [转] GIS二次开发(C#+AE)
- NGINX(二)内存池
- tar.xz 文件如何解压
- Linux--安装过程中的根文件系统的分析
- ==和equals的异同
- Hibernate笔记一:HIbernate配置-HelloWorld
- 爬虫之pyspider
- steps/train_lda_mllt.sh
- docker部署rabbitMQ
- IScroll的那些事——内容不足时下拉刷新
- STM32 一直进入串口接收中断
- GPSCamera隐私声明
- javascript原型链中 this 的指向
- Struts2学习笔记二:开发流程