algorithm - 创建六边形游戏需要棋盘的帮助

标签 algorithm

<分区>

我要创建六边形游戏,我需要创建一个六边形棋盘... 我需要画一个有 61 个六边形的板,所以我需要一个简短的六边形公式,如果有人能给我一个公式来快速创建它,我会很高兴 :) 谢谢波阿斯

我正在用 java 编程......

棋盘需要有61个六边形...

最佳答案

我去年做了类似的事情,这里是我的代码的简化版本,可能会对您有所帮助:

public class MapPanel {

    int r = 30; // radius of hexagone
    int h = (int) Math.sqrt(r*r*3/4);
    int[] xPoints = {r/2,3*r/2,2*r,3*r/2,r/2,0};
    int[] yPoints = {0,0,h,2*h,2*h,h};
    int[] xp = new int[6];
    int[] yp = new int[6];

    public void paint(Graphics g){

        int xoffset = 0;
        int yoffset = 0;

        // display map
        for (int j = 0; j < /* put width here */; j++) {
            for (int i = 0; i < /* put height here */; i++) {
                for (int k = 0; k < 6; k++) {
                    xp[k] = xPoints[k]+xoffset;
                    yp[k] = yPoints[k]+yoffset;
                }
                g.setColor(Color.black);
                g.drawPolygon(xp, yp, 6);
                yoffset += 2*h;
            }
            yoffset = h-yoffset % (2*h);
            xoffset += 3*r/2;
        }   
    }
}

如果您想要公式的解释,只需谷歌“六边形”...

关于algorithm - 创建六边形游戏需要棋盘的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446130/

相关文章:

java - 找到一个模式,这样我就可以通过不重复计算来改进排列算法

algorithm - 证明 n! = O(n^n)

algorithm - 如何找到从k个子集中选择一个的组合数

c++ - random_shuffle 和 srand() 每次都给我相同的结果

algorithm - 是否有比 O(N²) 更好的算法来确定矩阵是否对称?

javascript - 实现插入功能

字符排序算法

java - 如何调整 Dijkstra 算法以处理加权图

algorithm - 二阶低通滤波器算法

javascript - 从具有特定字符的字符串中提取子字符串