Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
P5.js 重置p5中的特定数独框?_P5.js - Fatal编程技术网

P5.js 重置p5中的特定数独框?

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

我试图在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++) {
    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()中做了一些更改来实现它。

您如何存储这些数字?您能发布一个新的消息吗?