gpt4 book ai didi

Java 将字符转换为 2D 图形

转载 作者:行者123 更新时间:2023-11-30 02:35:32 25 4
gpt4 key购买 nike

我打开一个文本文件,其中包含一个由 # 和空格组成的迷宫。其中井号标签代表“墙”,空格是您可以移动的区域。

目前,我已打开该文件并将所有内容存储在二维数组中,以便控制台以与文本文件完全相同的格式打印。

我想要完成的下一阶段是,如果字符是哈希标签,则用深灰色填充矩形,如果它是空格,则用白色填充矩形。目前,由于某种原因,迷宫出现了,但看起来很小。

我不知道我是否采取了正确的方法,但我正在尝试修改我拥有的方法,而不是创建另一个方法。

本质上,我想用我的迷宫填满整个 600x400,而不是那么小。我认为设置矩形的大小可以实现这一点。

我正在尝试的是:

public static void mazeFrame() {
JFrame f = new JFrame("Maze");
f.setSize(400, 600);
f.setLocationRelativeTo(null);
f.add(new Exercise4());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}

// ...

int i = 0; //y axis

if (c == '#') {
cells[i][j] = true;
g.setColor(Color.DARK_GRAY);
g.drawRect(j,i, 50,50);
} else {
cells[i][j] = false;
g.setColor(Color.white);
g.drawRect(j,i, 50,50);

}
}
i++;
}

但是我的输出是

enter image description here

最佳答案

你没有扩展你的迷宫。

 g.drawRect(j,i, 50,50);

ji 的值均从 0 开始,并递增 1。
因此,您的 50x50 block 会重叠。

如果您添加比例因子,您的迷宫会更大:

 g.drawRect(xScale * j, yScale * i, 50,50);

由于您打算使用 50x50 block ,因此 xScaleyScale 的正确值为 50。您可以从那里继续并使用:

 g.drawRect(xScale * j, yScale * i, xScale, yScale);

一旦你开始工作,你应该查看 AffineTransform类,这将给你更多的选择。但那是以后的事了。

关于Java 将字符转换为 2D 图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43209707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com