Java 2D图形五子棋桌(算法题)

问题描述 投票:0回答:1

我的问题是我只需要使用一根绘图线。我不知道如何才能同时对 x 和 y 进行更改,同时又不会弄乱其中一个或另一个。我不能使用矩形。

int x = 25;
int y = 25;

for (int i = 0; i <=8; i++) {
    g2d.drawLine(x, y, x+160, y);
    y+=20;
}

x = 25;
y = 25;

for (int i = 0; i <=8; i++) {
    g2d.drawLine(x, y, x, y+160);
    x+=20;
}

This is what I expected

java java-2d
1个回答
0
投票

Holger Sama 的回答(一):

    int startX = 25,
    startY = 25,
    endX = startX + 160,
    endY = startY + 160;
for (int i = 0; i <= 17; i++) {
    int h = i & 1,
        v = h ^ 1,
        x = startX + v * (i >> 1) * 20,
        y = startY + h * (i >> 1) * 20;
    g2d.drawLine(x, y, x * v + endX * h, y * h + endY * v);
}

我的答案(嵌套):

    int endy = 0, endx = 160, xIncreaser  = 0, x = 25;
for (int i = 0; i <= 9; i++){
    int y = 25;
    x+=xIncreaser;
    if (i == 1)
        x-=20;
    for (int j = 0; j <= 8; j++){
        if (y+endy>185)
            break;
        g2d.drawLine(x,y, x+endx, y+endy);
        y+=20;
    }
    xIncreaser  = 20;
    endy = 160;
    endx = 0;
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.