私のJSコードです。 Sudoku Grid(9)を作成しました。私はそれをしましたが、私のコードは明らかにDRYではありません。私は多くの方法を試しましたが、最終的には成功しませんでした。たぶん誰かが、この170行のコードをもっと「プロフェッショナルな」ものに変換する手助けをしてくれるかもしれません。前もって感謝します!このJSコードはどのようにDRYするのですか? whileループ
var canvas;
canvas = openGraphics();
var x;
var y;
var gap;
var count;
x = 20;
y = 20;
gap = 25;
count = 0;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 45;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 70;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 95;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 70;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 95;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 120;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 145;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 170;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 195;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 220;
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 20;
gap = 75;
while(count < 3) {
canvas.setStroke(3);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 95;
gap = 75;
while(count < 3) {
canvas.setStroke(3);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
count=0;
x = 20;
y = 170;
gap = 75;
while(count < 3) {
canvas.setStroke(3);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
あなたがかもしれませんこれを[codereview.stackexchange.com](http ://codereview.stackexchange.com) – Martin
DRY =同じようなコードを繰り返さないための原則をコーディングしないでください。うーん、興味深い! –
繰り返しコードのパターンはありますか?コードをコピーしてコードを少し微調整してしまう状況はありますか?そのための関数を書く。それは一言で言えばDRYです。また、これはそれをよりドライにするものではありませんが、より慣用的になります。 'while'ループを[' for'ループで置き換えてください。](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) –