さて、私は現在、Javascript/Canvasでチェスゲームを作成しようとしています。私はまだJSにとってとても新しいので、私の理解の不足を言い訳します。キャンバスでチェスボードを作成する
私は現在、グリッドを生成する次のコードを持っていますが、1行の正方形しか作成せず、キャンバス領域全体を塗りつぶすこともありません。
var SQUARE_SIZE;
const NUMBER_OF_ROWS = 5;
const NUMBER_OF_COLS = 5;
var NUMBER_OF_SQUARES;
var xValue = 0;
var yValue = 0;
var canvas, ctx
window.onload = function()
{
canvas = document.getElementById("chessBoard");
ctx = canvas.getContext("2d");
SQUARE_SIZE = canvas.height/NUMBER_OF_ROWS;
NUMBER_OF_SQUARES = NUMBER_OF_ROWS * NUMBER_OF_COLS;
console.log("Size of each square = " + SQUARE_SIZE +"px");
drawBoard();
}
function drawBoard()
{
for (var blockTotal = 0; blockTotal < NUMBER_OF_SQUARES; blockTotal++)
{
if (blockTotal % 2)
{
xValue += SQUARE_SIZE;
ctx.fillStyle = '#663300';
ctx.fillRect(xValue, yValue, SQUARE_SIZE, SQUARE_SIZE);
}
else
{
xValue += SQUARE_SIZE
ctx.fillStyle = '#eeeed2';
ctx.fillRect(xValue, yValue, SQUARE_SIZE, SQUARE_SIZE);
}
xValue = 0;
yValue += SQUARE_SIZE;
}
// Outline of board
ctx.lineWidth = 5;
ctx.strokeRect(0, 0, NUMBER_OF_ROWS * SQUARE_SIZE, NUMBER_OF_COLS * SQUARE_SIZE);
}
どうしたのですか?
私は2つのループ(ネストされた)、1つはxのため、もう1つはyのために使用しますが、全体を単純にします。 – DBS
そのようなインラインのdiv要素は、スペースが足りないときに下がります。あなたはまた、次の列を埋めるためにあなたのx座標の値を増やす必要があります –