这是我的JS代码。任务是创建数独网格(9)。我已经做到了,但我的代码显然还不够干练。我尝试了很多方法,但最终都没有成功。也许有人可以帮我把这170行代码转换成更“专业”的东西。提前感谢!
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();
} 发布于 2016-04-02 04:45:13
function whileCount9(){
while(count < 9) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
}
//use whileCount9(); anywhere you would normally place the whole while loop.我也注意到你得了3分,所以...
function whileCountLessThan(num){
while(count < num) {
canvas.setStroke(1);
canvas.drawRect(x, y, gap, gap);
count++;
x = 20 + gap * count;
canvas.paint();
}
}我们喜欢whileCountLessThan(3);
发布于 2016-04-02 04:58:03
更简短,更有表现力:
var canvas;
canvas = openGraphics();
var boards = [
{ x: 20, y: 20, gap: 25, num: 9 },
{ x: 20, y: 45, gap: 25, num: 9 },
{ x: 20, y: 70, gap: 25, num: 9 },
{ x: 20, y: 95, gap: 25, num: 9 },
{ x: 20, y: 70, gap: 25, num: 9 },
{ x: 20, y: 95, gap: 25, num: 9 },
{ x: 20, y: 120, gap: 25, num: 9 },
{ x: 20, y: 145, gap: 25, num: 9 },
{ x: 20, y: 170, gap: 25, num: 9 },
{ x: 20, y: 195, gap: 25, num: 9 },
{ x: 20, y: 20, gap: 75, num: 3 },
{ x: 20, y: 95, gap: 75, num: 3 },
{ x: 20, y: 170, gap: 75, num: 3 }
]
function boardCreator(obj){
var count = 0;
while(count < obj.num) {
canvas.setStroke(1);
canvas.drawRect(obj.x, obj.y, obj.gap, obj.gap);
count++;
obj.x = 20 + obj.gap * count;
canvas.paint();
}
}
for (i = 0; i < boards.length; i++) {
boardCreator(boards[i])
}https://stackoverflow.com/questions/36365532
复制相似问题