這是我的JS代碼。任務是創建數獨網格(9)。我已經完成了,但是我的代碼顯然不是DRY。我嘗試了很多方法,但最終沒有取得成功。也許有人可以幫助我將這170行代碼轉換爲更專業的東西。提前致謝!如何讓這個JS代碼幹? 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 =不重複自己,不重複類似代碼的編碼原則。嗯,有趣! –
您是否看到任何重複代碼模式?有沒有任何情況下你複製粘貼的代碼可能只是一些小小的調整?爲它寫一個函數。簡而言之,這是乾的。此外,這不會讓它更幹,但它會使它更習慣。用''for'循環替換'while循環。](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) –