如果这是一个愚蠢的问题,请原谅我,但是我是Java的初学者,我们的老师讲得不太好。我了解如何在Java中创建棋盘格。接下来,我应该在所有黑色方块上放上白色圆圈,这样看起来就像是一个跳棋游戏。它不必移动。
我认为我会使用与矩形相同的逻辑,但随后所有的圆都相距甚远,根本与黑色正方形不匹配。
int sqSize = 50;
int gridSize = 500;
int n;
int[][] grid;
public void setup()
{
size(500, 500);
noLoop();
n = gridSize/sqSize;
grid = new int[n][n];
}
void draw()
{
for (int row = 0; row < n; row++) {
for (int col = 0; col < n; col++) {
stroke(0);
if ( (row % 2) == (col % 2) )
{
fill(255, 0, 0);
rect(row*sqSize, col*sqSize, sqSize-2, sqSize-2);
} else {
fill(0, 0, 0);
rect(row*sqSize, col*sqSize, sqSize-2, sqSize-2);
fill(255);
ellipse(row*sqSize, col*sqSize, sqSize-2, sqSize-2);
//this is what I tried, but failed.
}
}
}
}
我希望圆像实际的棋子一样在其上完全对齐,但是实际输出是圆没有足够的间距并且在两个正方形上。
答案 0 :(得分:0)
我已为您解决了该问题。您需要指定如何为形状定义局部(0,0)。我将椭圆更改为将(0,0)设为左上角,现在按预期绘制。
int sqSize = 50;
int gridSize = 500;
int n; [![enter image description here][1]][1]
int[][] grid;
public void setup()
{
size(500, 500);
noLoop();
n = gridSize/sqSize;
grid = new int[n][n];
ellipseMode(CORNER);
}
void draw()
{
for (int row = 0; row < n; row++) {
for (int col = 0; col < n; col++) {
stroke(0);
if ( (row % 2) == (col % 2) )
{
fill(255, 0, 0);
rect(row*sqSize, col*sqSize, sqSize-2, sqSize-2);
} else {
fill(0, 0, 0);
rect(row*sqSize, col*sqSize, sqSize-2, sqSize-2);
fill(255);
ellipse(row*sqSize, col*sqSize, sqSize-2, sqSize-2);
//this is what I tried, but failed.
}
}
}
}