P5.js 重置p5中的特定数独框?
我试图在p5.js中实现一个数独表,我能够实现一个单元格,在这里我可以写下一个数字(1-9)。但是我不能删除一个数字,也就是说,如果我先在一个单元格上写“1”,然后再写“2”,它就会写在它上面 那么,我如何删除现有的号码并编写一个不同的号码呢 编辑: 我的代码到现在为止:P5.js 重置p5中的特定数独框?,p5.js,P5.js,我试图在p5.js中实现一个数独表,我能够实现一个单元格,在这里我可以写下一个数字(1-9)。但是我不能删除一个数字,也就是说,如果我先在一个单元格上写“1”,然后再写“2”,它就会写在它上面 那么,我如何删除现有的号码并编写一个不同的号码呢 编辑: 我的代码到现在为止: //make a grid function makegrid(rows, cols) { var regrid = new Array(rows); for (var i = 0; i < rows; i
//make a grid
function makegrid(rows, cols) {
var regrid = new Array(rows);
for (var i = 0; i < rows; i++) {
regrid[i] = new Array(cols);
}
return regrid;
}
var numrec = [];
var rows = 9;
var grid = [];
var cols = 9;
var w = 50;
var input;
//show the boxes
function show(i, j) {
this.i = i;
this.j = j;
var x = w * this.i;
var y = w * this.j;
noFill();
//input = createInput();
//input.position(x+5,y+5,w);
strokeWeight(1);
rect(x + 5, y + 5, w, w); //just to see line clearly
}
//there must be a better way to do it but for now ---> here we go for separation
// of tables
function boldlines() {
strokeWeight(4);
stroke(51);
line(5, 5, 5, w * 9 + 5);
line(w * 3 + 5, 5, w * 3 + 5, w * 9 + 5);
line(w * 6 + 5, 5, w * 6 + 5, w * 9 + 5);
line(5, w * 9 + 5, w * 9 + 5, w * 9 + 5);
line(5, 5, w * 9 + 5, 5);
line(w * 9 + 5, 5, w * 9 + 5, w * 9 + 5);
line(5, w * 3 + 5, w * 9 + 5, w * 3 + 5);
line(5, w * 6 + 5, w * 9 + 5, w * 6 + 5);
}
function setup() {
createCanvas(600, 600);
grid = makegrid(rows, cols);
numrec = makegrid(rows, cols);
for (var i = 0; i < rows; i++) {
for (var j = 0; j < cols; j++) {
numrec[i][j] = 1;
}
}
}
function draw() {
boldlines();
for (var i = 0; i < rows; i++) {
for (var j = 0; j < cols; j++) {
show(i, j);
//console.log(mouseX,mouseY);
}
}
}
function numput(x, y, num) {
//background(0);
if (num === 0) {
num = "";
}
textSize(30);
//textAlign(CENTER);
text(num, x + 30, y + 40);
}
function mousePressed() {
var mx = mouseX;
var my = mouseY;
var i = floor((mx + 5) / w);
var j = floor((my + 5) / w);
if (i >= 0 && j >= 0 && i < rows && j < cols) {
//console.log(i, j);
var num = numrec[i][j];
if (num === 10) {
num = 0;
}
numrec[i][j] = num + 1;
numput(i * w, j * w, num);
}
}
//制作网格
函数makegrid(行、列){
var reglid=新数组(行);
对于(变量i=0;i我们要分开了
//桌子
函数boldlines(){
冲程重量(4);
中风51例;
线(5,5,5,w*9+5);
线(w*3+5,5,w*3+5,w*9+5);
线(w*6+5,5,w*6+5,w*9+5);
线(5,w*9+5,w*9+5,w*9+5);
线(5,5,w*9+5,5);
线(w*9+5、5、w*9+5、w*9+5);
线(5,w*3+5,w*9+5,w*3+5);
线(5,w*6+5,w*9+5,w*6+5);
}
函数设置(){
createCanvas(600600);
网格=生成网格(行、列);
numrec=makegrid(行、列);
对于(变量i=0;i=0&&j>=0&&i
我找到了一种方法,可以在该单元格中隐藏旧数字,并保留所有其他单元格的内容。我通过在其顶部绘制一个与单元格尺寸相同的矩形,然后用新数字更新单元格,从而隐藏了以前的数字
function numput(x, y, num) {
//background(0);
if (num === 0) {
num = "";
}
textSize(30);
//textAlign(CENTER);
//Newly added
strokeWeight(0);
fill(255,255,255);
rect(x+4 , y+4 , w, w);
boldlines();
text(num, x + 30, y + 40);
}
我在
函数numput()中做了一些更改来实现它。您如何存储这些数字?您能发布一个新的消息吗?