史莱姆区块查找 超简单java代码

现有的史莱姆区块查找器
打不开史莱姆区块查找器,自己写一个算了

步骤:
1、新建一个txt文件,复制下面代码到文件里并保存,然后文件名连同后缀改为
McCheckSlimeChunk.java
2、打开cmd进入java文件所在文件夹,执行
javac -encoding utf-8 McCheckSlimechunk.java
3、没有产生提示,且生成了一个McCheckSlimeChunk.class文件,此时执行
java McCheckSlimeChunk
即可运行。
4、最后还可以在McCheckSlimeChunk.class所在的文件夹新建一个txt文件,输入

java McCheckSlimeChunk
PAUSE

保存,后缀txt改为bat,创建快捷方式到桌面即可随时使用。

注意点:
1、相信玩MC的都装了Java环境。
2、只是方便查找,存在无数BUG
3、显示坐标均为区块坐标
4、报错找不到或无法加载主类,java环境配置有问题,参考知乎

import java.util.Random;
import java.util.Scanner;

/**
 * @Author: 长得太帅,要好好反省!
 * @Date: 2021/4/2
 * @Description:
 */
public class McCheckSlimeChunk {

    public static void main(String args[])
    {

        long seed = 0L;        	// 默认地图种子
		
        int xStart = 0;			// X轴区块从开始
        int xEnd = 16;			// X轴区块到这里为止
        int zStart = 0;			// Z轴区块从开始
        int zEnd = 16;			// Z轴区块到这里为止

        Scanner sc = new Scanner(System.in);

        System.out.println("input seed(输入地图种子):");
        seed = sc.nextLong();
        System.out.print("start x(X轴起始区块):");
        xStart = sc.nextInt();
        System.out.print("end x(X轴结束区块):");
        xEnd = sc.nextInt();
        System.out.print("start z(Z轴起始区块):");
        zStart = sc.nextInt();
        System.out.print("end z(Z轴结束区块):");
        zEnd = sc.nextInt();

        System.out.println("种子:" + seed + "  x:" + xStart + "~" + xEnd + "  z:" + zStart + "~" + zEnd);

        if(xStart > xEnd || zStart > zEnd){
            System.out.println("start value must be less than end value!");
            System.out.println("起始区位置块应该小于结束区块!");
            return;
        }

        String[][] chunks = new String[xEnd - xStart + 1][zEnd - zStart + 1];

        int x = xStart;
        while (x <= xEnd){
            int z = zStart;
            while (z <= zEnd){
				// 官方算法
                Random rnd = new Random(
                        seed +
                                (int) (x * x * 0x4c1906) +
                                (int) (x * 0x5ac0db) +
                                (int) (z * z) * 0x4307a7L +
                                (int) (z * 0x5f24f) ^ 0x3ad8025f
                );
                if(rnd.nextInt(10) == 0){
//                    System.out.println("(" + x + ", " + z +")");
                    chunks[x - xStart][z - zStart] = "■";
                }else chunks[x - xStart][z - zStart] = "□";
                z++;
            }
            x++;
        }
		// 打印分布情况,横向X轴,纵向Z轴,实心区块为史莱姆区块
        for (int zIndex = 0; zIndex < chunks[0].length; zIndex++){
            if(zIndex == 0){
                System.out.print(" ");
                for(int xHead = 0; xHead < chunks.length; xHead++) {
					if(xHead % 4 == 0)
						System.out.print("\t" + (xHead + xStart));
                }
                System.out.println("\t x");
            }
            for(int xIndex = 0; xIndex < chunks.length; xIndex++){
                if(xIndex == 0){
                    System.out.printf("%7d ",zIndex + zStart);
                }
                System.out.print("" + chunks[xIndex][zIndex]);
            }
            System.out.println();
        }
        System.out.printf("%7s ", "z");
    }
}

效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值