package com.my.test;
import java.util.Arrays;
import java.util.Scanner;
/**
* @author Administrator
* 4 3 2
* 1111111 11111
* 1222221 12221
* 1233321 12321 -> -> 111
* 1234321 12221 121
* 1233321 11111 111
* 1222221
* 1111111
* 的算法
*/
public class Test1 {
private enum direct{
left,right,up,down
}
public void init(){
Scanner sc = new Scanner(System.in);
System.out.print("请输入回旋的阶数:");
String level = "1";
Integer level_no = 1;
try {
level = sc.next();
level_no = Integer.parseInt(level);
} catch (RuntimeException e) {
e.printStackTrace();
}
next_step1(level_no);
}
private void next_step1(Integer level_no) {
int high = level_no * 2 -1;
String[][] nums = new String[high][high];
if(high == 1){
for (int i = 0; i < nums.length; i++) {
for(int j = 0;j<nums[i].length;j++){
nums[i][j] = add_zero(1, level_no);
}
}
}else{
int temp = 1;
for (int i = 0; i < nums.length; i++) {
if(i < (high / 2 )){
//上半部分
int t1 = 1;
for(int j = 0;j<nums[i].length;j++){
if(i == 0){
nums[i][j] = add_zero(t1,level_no);
}else{
if(j < (high / 2 + 1)){
nums[i][j] = add_zero(t1,level_no);
t1++;
if(t1>=temp){
t1 = temp;
}
}else{
if(t1>=temp){
t1=temp;
}
nums[i][j] = add_zero(t1,level_no);
if(j >= (high - temp)){
t1--;
}
}
}
}
temp++;
}else if(i == (high / 2 )){
int t1 = 1;
for(int j = 0;j<nums[i].length;j++){
if(j < (high / 2 + 1)){
nums[i][j] = add_zero(t1,level_no);
t1++;
if(t1>=temp){
t1 = temp;
}
}else{
if(t1>=temp){
t1=temp;
}
t1--;
nums[i][j] = add_zero(t1,level_no);
}
}
}else{
//下半部分
temp--;
int t1 = 1;
for(int j = 0;j<nums[i].length;j++){
if(j < (high / 2 + 1)){
nums[i][j] = add_zero(t1,level_no);
t1++;
if(t1>=temp){
t1 = temp;
}
}else{
if(t1>=temp){
t1=temp;
}
nums[i][j] = add_zero(t1, level_no);
if(j >= (high - temp)){
t1--;
}
}
}
}
}
}
for (int i = 0; i < nums.length; i++) {
System.out.println(Arrays.toString(nums[i]));
}
}
private String add_zero(Integer t1,int level_no) {
Integer temp = level_no;
String s = temp.toString();
Integer len = s.length();
Integer l = t1.toString().length();
String zero = "";
for(int i = 1;i<=len -l;i++ ){
zero = zero + "0";
}
return zero + t1;
}
public static void main(String args[]){
new Test1().init();
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Java编程语言创建一个迷宫游戏。...通过学习和理解这些基本概念,你可以进一步完善这个Java迷宫游戏,增加更多特性,如多级难度、计时功能、动态迷宫生成等,从而提升游戏体验。
Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法
Java迷宫课程设计是一项常见的编程练习,旨在帮助初学者掌握Java编程语言以及图形用户界面(GUI)开发。在这个项目中,我们使用了JavaFX库来创建用户界面,它是一个强大的工具,提供了丰富的功能来构建现代、动态的...
通过java实现的迷宫课程设计。分成算法部分和界面部分,算法部分涉及到迷宫生成算法,深度优先,广度优先,运用了栈和队列等容器。界面部分采用javafx实现。有显示迷宫路线,更改迷宫大小,展示迷宫解谜动画过程。...
标题中的“一个简单的java迷宫生成程序”表明我们要讨论的是一个使用Java编程语言实现的算法,该算法用于创建迷宫。迷宫生成是计算机图形学和算法设计的一个有趣领域,通常涉及深度优先搜索(DFS)或Prim算法等方法...
Java迷宫小游戏是一种基于编程语言Java开发的娱乐项目,它结合了编程逻辑和游戏设计,为学习者提供了实践编程技能的机会。在这个游戏中,玩家需要控制一个角色在迷宫中找到出路,通过解决路径问题来完成游戏。下面...
【标题】"java迷宫小游戏源码打包"指的是一个基于Java编程语言开发的迷宫类游戏,它包含游戏的核心逻辑和界面设计。开发者为游戏增加了不同的难度选择,以适应不同玩家的需求,同时还提供了自动演示功能,让玩家可以...
Java语言在游戏开发和算法实现中常常被用来创建各种有趣的应用,其中之一就是迷宫生成与解谜。在这个项目中,我们将深入探讨如何使用Java来实现一个迷宫的随机生成以及自动寻找路径的方法,同时会涉及树的深度遍历这...
本主题将深入探讨使用Java实现的基于深度优先搜索(DFS)和广度优先搜索(BFS)的迷宫生成与游戏玩法。这两种算法都是解决迷宫问题的有效工具,各有其特点和适用场景。 首先,让我们从深度优先搜索(DFS)开始。DFS...
1. `Node`类:表示迷宫中的一个节点,包含当前位置、父节点(用于回溯路径)、代价(g值)和估计代价(f值)。 2. `openList`和`closedList`:分别用于存储待处理节点和已处理节点,通常使用优先队列来高效管理。 3....
在本课程设计中,我们将深入探讨Java编程语言在构建迷宫生成、面板显示以及路径寻找算法方面的应用。这个项目不仅涵盖了基本的编程概念,还涉及到了数据结构、算法设计以及图形用户界面(GUI)的创建,是提升Java...
当我们谈论“JAVA迷宫”时,这是一个典型的编程问题,它涉及到算法设计、路径查找以及可能的数据结构应用。让我们深入探讨Java如何用于解决迷宫问题。 首先,迷宫可以被抽象为一个二维数组或矩阵,其中每个元素代表...
1. 游戏开发:Java图形界面迷宫问题可以用于开发迷宫游戏,例如寻找隐藏的宝石或逃离迷宫。 2. 机器人导航:Java图形界面迷宫问题可以用于机器人导航,例如机器人如何避免障碍物并找到目标位置。 3. 智能家居:Java...
1. **迷宫生成**:迷宫的生成通常涉及算法,比如深度优先搜索(DFS)或宽度优先搜索(BFS)。在这个项目中,开发者可能选择了一种方法,随机地切割空间来创建复杂且连通的路径。算法的实现需要理解数据结构,例如...
1. **定义数据结构**:创建表示迷宫的类,包含迷宫的大小、节点、路径等属性,以及相应的操作方法,如生成迷宫、查找路径等。 2. **实现迷宫生成**:根据选定的算法,编写生成迷宫的函数。这通常涉及到随机化操作,...
老鼠走迷宫,用数组跌打计算。 老鼠走迷宫,用数组跌打计算。
利用设计模式对java迷宫进行改写,采用了单例、策略、工厂模式
【原创】Java迷宫生成器是一个使用Java编程语言编写的程序,它的主要功能是自动生成迷宫。迷宫生成器通常包含算法设计和图形界面展示两大部分。在这个项目中,开发者利用了名为SimpleCanvas.java的类来实现图形界面...
在本文中,我们将深入探讨如何使用Java实现基于迷宫的自动寻路算法。这个项目的目标是设计一个系统,允许用户通过鼠标点击设定目的地,然后由一个方块角色自动找到从起点到终点的路径。该系统利用了Java的...
1. **基础语法与面向对象编程**:在Java中,编写迷宫游戏需要掌握基本的语法结构,如类、对象、方法、变量等。同时,要理解封装、继承和多态等面向对象特性,以便创建游戏中的各种元素,如玩家、迷宫、墙壁等。 2. ...