RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1094344
Accepted
Arthur Alunts
Arthur Alunts
Asked:2020-03-13 23:46:12 +0000 UTC2020-03-13 23:46:12 +0000 UTC 2020-03-13 23:46:12 +0000 UTC

完全拖放,形状不粘在 d3.js 板上?

  • 772

给出的代码。取自 Q 中的用户 Stranger,并稍作调整。 Q Help中的Halma Stranger至少使鼠标释放时形状粘在点(120,120)上(这只适用于触摸的形状)...

//ctrl+wheel увеличить масштаб
<!DOCTYPE html>
<meta charset="utf-8">
<title>My Project 1.0.0.1</title>
<html>
<script src="https://d3js.org/d3.v5.min.js"></script>
 <style>
html,body{
  overflow-y:hidden;
}
</style>
<body>
<script>
//src="https://d3js.org/d3.v5.min.js"
//scr="d3.js"
var delta = 100;

var x7k = [200]
var y4k = [200]
var ii = 0
for(var y=0; y<=8;y++){
   for(var x=0; x<=8;x++){
    ii++;
    x7k[ii]=x*delta;
    y4k[ii]=y*delta;
}}
var canvas = d3.select("body")
   .append("svg")
   .attr("height", 1024)
   .attr("width", 1366);
/*var img0=canvas.append("svg:image")
   
  .attr("xlink:href", "1.svg")
  .attr("x",677)
  .attr("y",0)
  var img1=canvas.append("svg:image")
*/
for (var ii=2;ii<=81;ii=ii+2){
  img1=canvas.append("svg:image")
  .attr("xlink:href", "1.svg")
  .attr("x",x7k[ii])
  .attr("y",y4k[ii])
  }
/*var img2=canvas.append("svg:image")  
  img2=canvas.append("svg:image")
  .attr("xlink:href", "2.svg")
  .attr("x",x7k[8])
  .attr("y",y4k[0])
  */
  
var polygon0=canvas.append("polygon")
    polygon0=canvas.append("polygon")
    polygon0.attr("points", [0,0,111,122,222,222,212,122])// здесь было исправлено
    polygon0.style("fill", `rgba(100,11,11,0.5)`)
    polygon0.style("stroke", "black")
    polygon0.style("strokeWidth", "1px")  
    
var radius = 45;
var circle_data1 = d3.range(18).map(function(i) {
  return {x: 100+i*50, y: rnd()};
});
 
var circles = d3.select("svg")
  .append("g")
  .attr("class", "circles")
  .selectAll("circle")
  .data(circle_data1)
  //.data(circle_data2)
  .enter()
  .append("circle")
  .attr("cx", function(d,i) {return (d.x)})
  .attr("cy", function(d,i) {return (d.y)})
  .attr("r", radius)
  .style('transition', "200ms")
  .attr("fill", function(d,i) {
    if(i<=8){
	return `rgba(100,112,222,0.5)`
	
	}
	
	
	
	else {return `rgba(0,255,121,0.5)` }
  })
  
  
  
  
  
  
  .call(d3.drag().on("start", function(d) {
          d3.select(this)
            .raise()
            .attr('stroke', 'black')
            .style('transition', "unset")
        }).on("drag", function(d) {
          d3.select(this)
            .attr("cx", d.x = d3.event.x)
            .attr("cy", d.y = d3.event.y);
        }).on("end", function(d) {
          d3.select(this)
            .attr('stroke', 'transparent')
            .style('transition', "200ms")
        })
  );
/*ball.onmouseup = function() {
    document.onmousemove = null;
    ball.onmouseup = null;
  };*/
function upd () {

  var newData = [
    50, 50,   150, 50,   250, 50,
    50, 150, 150, 150,   250, 150,
    50, 250, 150, 250,   250, 250,
    (6-1)*100+50, (6-1)*100+50,   (7-1)*100+50, (6-1)*100+50,    (8-1)*100+50, (6-1)*100+50,
    (6-1)*100+50, (7-1)*100+50,   (7-1)*100+50, (7-1)*100+50,    (8-1)*100+50, (7-1)*100+50,
    (6-1)*100+50, (8-1)*100+50,   (7-1)*100+50, (8-1)*100+50,    (8-1)*100+50, (8-1)*100+50
    
      ///*//////
    
  ]

  circle_data1.forEach(function(d, i) {
    d.x = newData[i * 2]
    d.y = newData[i * 2 + 1]
	
  })

  circles.data(circle_data1)
    .attr("cx", function(d) {return (d.x)})
    .attr('stroke', 'black')
    .attr("cy", function(d) {return (d.y)})
}
upd();
function rnd() {
  return 20 + Math.random() * 110
}
</script>
</body>
</html>

javascript
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Arthur Alunts
    2020-03-14T15:51:22Z2020-03-14T15:51:22Z

    发生了。增加了粘点(120, 120) 现在剩下来做检查和返回坐标的功能。因此,一切正常。准备好后,我会在这里发布。

    //ctrl+wheel увеличить масштаб
    <!DOCTYPE html>
    <meta charset="utf-8">
    <title>My Project 1.0.0.1</title>
    <html>
    <script src="https://d3js.org/d3.v5.min.js"></script>
     <style>
    html,body{
      overflow-y:hidden;
    }
    </style>
    <body>
    <script>
    //src="https://d3js.org/d3.v5.min.js"
    //scr="d3.js"
    var delta = 100;
    
    var x7k = [200]
    var y4k = [200]
    var ii = 0
    for(var y=0; y<=8;y++){
       for(var x=0; x<=8;x++){
        ii++;
        x7k[ii]=x*delta;
        y4k[ii]=y*delta;
    }}
    var canvas = d3.select("body")
       .append("svg")
       .attr("height", 1024)
       .attr("width", 1366);
    /*var img0=canvas.append("svg:image")
       
      .attr("xlink:href", "1.svg")
      .attr("x",677)
      .attr("y",0)
      var img1=canvas.append("svg:image")
    */
    for (var ii=2;ii<=81;ii=ii+2){
      img1=canvas.append("svg:image")
      .attr("xlink:href", "1.svg")
      .attr("x",x7k[ii])
      .attr("y",y4k[ii])
      }
    /*var img2=canvas.append("svg:image")  
      img2=canvas.append("svg:image")
      .attr("xlink:href", "2.svg")
      .attr("x",x7k[8])
      .attr("y",y4k[0])
      */
      
    var polygon0=canvas.append("polygon")
        polygon0=canvas.append("polygon")
        polygon0.attr("points", [0,0,111,122,222,222,212,122])// здесь было исправлено
        polygon0.style("fill", `rgba(100,11,11,0.5)`)
        polygon0.style("stroke", "black")
        polygon0.style("strokeWidth", "1px")  
        
    var radius = 45;
    var circle_data1 = d3.range(18).map(function(i) {
      return {x: 100+i*50, y: rnd()};
    });
     
    var circles = d3.select("svg")
      .append("g")
      .attr("class", "circles")
      .selectAll("circle")
      .data(circle_data1)
      //.data(circle_data2)
      .enter()
      .append("circle")
      .attr("cx", function(d,i) {return (d.x)})
      .attr("cy", function(d,i) {return (d.y)})
      .attr("r", radius)
      .style('transition', "200ms")
      .attr("fill", function(d,i) {
        if(i<=8){
    	return `rgba(100,112,222,0.5)`
    	
    	}
    	
    	
    	
    	else {return `rgba(0,255,121,0.5)` }
      })
      
      
      
      
      
      
      .call(d3.drag().on("start", function(d) {
              d3.select(this)
                .raise()
                .attr('stroke', 'black')
                .style('transition', "unset")
            }).on("drag", function(d) {
              d3.select(this)
                .attr("cx", d.x = d3.event.x)
                .attr("cy", d.y = d3.event.y)
    			.attr('stroke', 'red')
    			
            }).on("end", function(d,i) {
              d3.select(this)
                .attr("cx", d.x = 120)//здесь добавил код залипания к тоске (120; 120);
                .attr("cy", d.y = 120)//здесь добавил код залипания к тоске (120; 120);
    			.attr('stroke', 'transparent')
                .style('transition', "200ms")
    			.attr('stroke', 'black')
            })
      );
    /*ball.onmouseup = function() {
        document.onmousemove = null;
        ball.onmouseup = null;
      };*/
    function upd () {
    
      var newData = [
        50, 50,   150, 50,   250, 50,
        50, 150, 150, 150,   250, 150,
        50, 250, 150, 250,   250, 250,
        (6-1)*100+50, (6-1)*100+50,   (7-1)*100+50, (6-1)*100+50,    (8-1)*100+50, (6-1)*100+50,
        (6-1)*100+50, (7-1)*100+50,   (7-1)*100+50, (7-1)*100+50,    (8-1)*100+50, (7-1)*100+50,
        (6-1)*100+50, (8-1)*100+50,   (7-1)*100+50, (8-1)*100+50,    (8-1)*100+50, (8-1)*100+50
        
          ///*//////
        
      ]
    
      circle_data1.forEach(function(d, i) {
        d.x = newData[i * 2]
        d.y = newData[i * 2 + 1]
    	
      })
    
      circles.data(circle_data1)
        .attr("cx", function(d) {return (d.x)})
        .attr('stroke', 'black')
        .attr("cy", function(d) {return (d.y)})
    }
    upd();
    function rnd() {
      return 20 + Math.random() * 110
    }
    </script>
    </body>
    </html>

    • 2
  2. Best Answer
    Arthur Alunts
    2020-03-26T06:07:23Z2020-03-26T06:07:23Z

    这是corners代码的实现(仅用于实现AI)。这是使用 d3.js 库的 Drag N Drop 方法和 Q 中的 @Stranger 与圆圈一起工作 + 我在代码中添加习惯的能力......

    1. 修复了 1*1 单元格的错误(该图现在可以正确挂起)。
    2. 修复了坐标 {y} 上的捕捉:现在一切正常。
    3. 添加了一种注释(短)。
    4. 下面的代码比存档(上面的链接)中的代码更新(更好),但是在项目文件夹中,您需要放置一个名为 1.svg 的黑色正方形,大小为 75 * 75 像素以绘制板,但是如果您从上面的链接下载文件,则所有内容都已包含在内。

    //src="https://d3js.org/d3.v5.min.js"
    //scr="d3.js"
    
    <textarea rows="2" cols="17" id="T0"></textarea>
    <textarea rows="2" cols="17" id="T1"></textarea>
    <input width = "200" height="100" rows="111" cols="111" type="button" value="save" onclick="saving0()"> </input>
    <button onclick="upd()">New Game!!!()</button><br>
    
    
    
    
    <!DOCTYPE html>
    <meta charset="utf-8">
    <title>My Project 1.0.0.1</title>
    <style type="text/css">
    textarea {
       font-size: 20pt;
       font-family: Arial;
    } 
    </style>
    <style>
    
    </style>
    
    <script src="https://d3js.org/d3.v5.min.js"></script>
     
     
     <style>
     
    
    
     </style>
    
     
    <body>
    <script>
    //So I Set Scale
    var scale = 'scale(0.8)';
    document.body.style.webkitTransform =  scale;    // Chrome, Opera, Safari
    document.body.style.msTransform =   scale;       // IE 9
    document.body.style.transform = scale;     // General
    //document.body.style.zoom = 0.6;
    // 
    
    //Set to Off scrolling\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    /*<style>
    html,body{
      overflow-y:hidden;
    }
     </style>
    */
    //So I import libs
    //src="https://d3js.org/d3.v5.min.js"
    //scr="d3.js"
    //document.body.style.zoom = 1.0 //Scale P1
    //Set to Off scrolling/////////////////////////////////////////////////////
    var delta = 100;
    var delimiter1 = '_';
    var delimiter2 = '.'
    var delimiter3 = ',';
    
    
    
    //I'm Create 180*64 2d array P2 <
    
    var G = [];
    var M = [];
    //var S = [];
    
    
    
    
    //I am creating N-dimensional Array via make function
    /*function make(dim, lvl, arr) {
      if (lvl === 1) return [];
      if (!lvl) lvl = dim;
      if (!arr) arr = [];
      for (var i = 0, l = dim; i < l; i += 1) {
    arr[i] = make(dim, lvl - 1, arr[i]);
      }
      return arr;
    }
    */
    
    
    
    for(var i=0; i<=8; i++){
      G[i] = [];
      M[i] = [];
      
    }
    //I'm Create 1000*200*64*64 4d array P2
    
    
    
    //M[1][1]=10;
    //alert(M[1][1]);
    for(var x=1;x<9;x++){
    for(var y=1;y<9;y++){
    M[y][x] = 0;
    G[y][x] = 0;
    
    
    
     
    }
    
    }
    //M[][] = = = = = == = = = = == = = ==  = == =  = == == = = == == = = = ===  = == = = = = = = = = = == = = = = = = =  ==  == ==== == = == = = = == = = = = == =  == = = == == = = ==   == =  === = = = ==  = == = = = = ==  == = ============
    M[1][1] = 1;
    M[2][1] = 2 ;
    M[3][1] = 3;
    M[1][2] = 4;
    M[2][2] = 5;
    M[3][2] = 6;
    M[1][3] = 7;
    M[2][3] = 8;
    M[3][3] = 9; 
    M[6][6] = 10;
    M[7][6] = 11;
    M[8][6] = 12;
    M[6][7] = 13;
    M[7][7] = 14;
    M[8][7] = 15;
    M[6][8] = 16;
    M[7][8] = 17;
    M[8][8] = 18; 
    ii=0;
     
      for(var y=1; y<9;y++){
          for(var x=1; x<9;x++){
    ii++;
        if(M[x][y]!=0){
        //console.log(M[x][y]);
        
        } 
        
      }}
    
    var ii = 0;
    var YY = 0;
    var XX = 0;
    
       for(var x=0; x<=8;x++){
      for(var y=0; y<=8;y++){
    ii++;
        XX=x*delta+delta/2;
        YY=y*delta+delta/2;
    G[x][y]=XX+delimiter1+YY;
       // console.log("ii: ", ii, "x: " , x, "y: " , y, G[x][y])
    
    
    
    }}
    
    var delta = 100;
    var delimiter1 = '_';
    
    
    //I'm Create 8*8 2d array P2
    var G = [];
    for(var i=0; i<=8; i++){
      G[i] = [];
      
    }/*
    //I'm creating N-dimensional array;
    function createNDimArray(dims) {
    return dims.length === 1
        ? new Array(dims[0])
        : Array.apply(null, Array(dims[0])).map(createNDimensionalArray.bind(null, dims.slice(1)));
    }
    createNDimArray([3, 2, 5]); // returns 3x2x5 array
    */
    //let CurentXY = [2+1]
    //let Last_XY = [2+1]
    //Help10=1;//
    //helloWorld
    
    var ii = 0;
    var YY = 0;
    var XX = 0;
    
       for(var x=0; x<=8;x++){
      for(var y=0; y<=8;y++){
    ii++;
        XX=x*delta+delta/2;
        YY=y*delta+delta/2;
    G[x][y]=XX+delimiter1+YY;
    //console.log("ii: ", ii, "x: " , x, "y: " , y, G[x][y])
    
    
    
    }}
    
    
    
    //let Love_Gravity = []
    var x7k = [200];
    var y4k = [200];
    ii=0;
    for(var y=0; y<=8;y++){
       for(var x=0; x<=8;x++){
    ii++;
    x7k[ii]=x*delta;
    y4k[ii]=y*delta;
    }}
    var canvas = d3.select("body")
       .append("svg")
       .attr("height", 1024)
       .attr("width", 1366)
       
       
       
    //canvas.strokeRect(5, 5, 25, 15)
    /*entry = prompt("Enter your name")
    entryArray = entry.split("");
    */
    
    /*var img0=canvas.append("svg:image")
    
      .attr("xlink:href", "1.svg")
      .attr("x",677)
      .attr("y",0)
      var img1=canvas.append("svg:image")
    */
    var width0 = screen.width;
    var height0 = screen.height;
    var delta2=400;
    let delta3=100;
    for (var ii=2;ii<=81;ii=ii+2){
      img1=canvas.append("svg:image")
      .attr("xlink:href", "1.svg")
      //.attr("x",x7k[ii] +delta2)
      //.attr("y",y4k[ii] +delta3)
      .attr("x",x7k[ii])
      .attr("y",y4k[ii])
      }
    /*var img2=canvas.append("svg:image")
      img2=canvas.append("svg:image")
      .attr("xlink:href", "2.svg")
      .attr("x",x7k[8])
      .attr("y",y4k[0])
      */
    //So I draw Polygon with specific color
    var polygon0=canvas.append("polygon")
    polygon0=canvas.append("polygon")
    polygon0.attr("points", [0,0,100,0,100,100,0,100])// здесь было исправлено
    polygon0.style("fill", `rgba(100,111,111,0.5)`)
    polygon0.style("stroke", "black")
    polygon0.style("strokeWidth", "1px")
    var t_4 = canvas.append("text")
      .style("fill", "black")
      .style("font-size", "31px")
      .attr("dy", ".35em")
      .attr("text-anchor", "middle")
      .attr("transform", "translate(260,330) rotate(100)")
      .text("MyTextContent")
      
    function AAA(){
    console.log("I Love you_:" , "God");
    }
    var run = setInterval(AAA,111)  //Warning!!! function must be called AAA instead AAA();
    
    var radius = 45;
    var X1=0;var Y1=0;
    var circle_data1 = d3.range(18).map(function(i) {
      return {x: 100+i*50, y: rnd_1()};
    });
    
    ii=0;
     let XL=0; var YL=0; var XY; var ZZ=[2];
     function G_To_Y(x1,y1){
     for(var x=0; x<=8;x++){
      for(var y=0; y<=8;y++){
       
           ii++;
           XY=null;
           XY=(G[x][y]).split(delimiter1);
           if(XY[0]<=x1+delta/2 && XY[0]>=x1-delta/2 && XY[1]<=y1+delta/2 && XY[1]>=y1-delta/2){
       ZZ[0]=x+1;  ZZ[1]=y+1;
           XL=XY[0];  YL=XY[1];
          // console.log(x , "__1111 ", y, " 1111_ ", XY[1], "");
       return YL;
           }  
      
    
    }}
    
     
     }
     function G_To_X(x1,y1){
     for(var x=0; x<=8;x++){
      for(var y=0; y<=8;y++){
       
           ii++;
           XY=null;
           XY=(G[x][y]).split(delimiter1);
           if(XY[0]<=x1+delta/2 && XY[0]>=x1-delta/2 && XY[1]<=y1+delta/2 && XY[1]>=y1-delta/2){
       ZZ[0]=x+1;  ZZ[1]=y+1;
           XL=XY[0];  YL=XY[1];
          // console.log(x , "__1111 ", y, " 1111_ ", XY[1], "");
       return XL;
           }  
       
    
    }}
    
     
     }
     
     function G_To_Y____2(x1,y1){
     for(var x=0; x<=8;x++){
      for(var y=0; y<=8;y++){
       
           ii++;
           XY=null;
           XY=(G[x][y]).split(delimiter1);
           if(XY[0]<=x1+delta/2 && XY[0]>=x1-delta/2 && XY[1]<=y1+delta/2 && XY[1]>=y1-delta/2){
       ZZ[0]=x+1;  ZZ[1]=y+1;
           XL=XY[0];  YL=XY[1];
          // console.log(x , "__1111 ", y, " 1111_ ", XY[1], "");
       return YL;
           }  
      
    
    }}
    
     
     }
     
     function G_To_X____2(x1,y1){
     for(var x=0; x<=8;x++){
      for(var y=0; y<=8;y++){
       
           ii++;
           XY=null;
           XY=(G[x][y]).split(delimiter1);
           if(XY[0]<=x1+delta/2 && XY[0]>=x1-delta/2 && XY[1]<=y1+delta/2 && XY[1]>=y1-delta/2){
       ZZ[0]=x+1;  ZZ[1]=y+1;
           XL=XY[0];  YL=XY[1];
          // console.log(x , "__1111 ", y, " 1111_ ", XY[1], "");
       return XL;
           }  
       
    
    }}
    
     
     }
     
     
     
       
    let A1=0;
    let A2=0;
    
    let B1=0;
    let B2=0;
    
     var MoveNumbre=0;
     var Comanda=1;
     
     function GetComandNumber(){
     if(Comanda==1){Comanda=2;}
     else{Comanda=1;}
     }
     
     function ComboFinder(){
     if(Comanda==1){Comanda=2;}
     else{Comanda=1;}
     }
     
     
     
     
     var LZZ = [2];
     var FZZ = [2];
     var LGG = [2];
     var FGG = [2];
     LZZ[0]=0;
     LZZ[1]=0;
     FZZ[0]=0;
     FZZ[1]=0;
     
     LGG[0]=0;
     LGG[1]=0;
     FGG[0]=0;
     FGG[1]=0;
     
     
     /*
     A1=ZZ[1];
     A2=ZZ[0];
    function CorrectedMove(){
     for(var x=1; x<=8;x++){
      for(var y=1; y<=8;y++){
          
    if(M[${ZZ[1]}][${ZZ[0]}]!=0) && M[${ZZ[1]}][${ZZ[0]}]>9) {console.log("general movement");}
    }}
    console.log("FF","general movement");
    }*/
    
    
      
    var circles = d3.select("svg")
      .append("g")
      .attr("class", "circles")
      .selectAll("circle")
      .data(circle_data1)
      //.data(circle_data2)
      .enter()
      .append("circle")
      .attr("cx", function(d,i) {return (d.x)})
      .attr("cy", function(d,i) {return (d.y)})
      .attr("r", radius)
      .style('transition', "200ms")
      .attr("fill", function(d,i) {
    if(i<=8){
        return `rgba(100,112,222,0.5)`
     
        }
    
    
    
        else {return `rgba(0,255,121,0.5)` }
      })
    
    
    
    
    
    
      .call(d3.drag().on("start", function(d,i) {
          
              X1=d.x;
          Y1=d.y;
           
              
              X1=G_To_X(X1,Y1);
          Y1=G_To_Y(X1,Y1);
              
            
              
              FGG[1] = G_To_Y(X1,Y1);
              FGG[0] = G_To_X(X1,Y1);
              FZZ[1] = ZZ[1];
              FZZ[0] = ZZ[0];
        
             // setText0("From: " + G_To_X(X1,Y1)+"_"+ G_To_Y(X1,Y1)+ "_" + ZZ[1] +"_"+ ZZ[0]);
              setText0("From: " + FGG[1]+"_"+ FGG[0]+ "_" + FZZ[1] +"_"+ FZZ[0]  + "_" + M[FZZ[1]][FZZ[0]]);
              //console.log("From_",  ZZ[1],"_", ZZ[0]);
              d3.select(this)
            
                
                
                .raise()
            .attr('stroke', 'black')
            .style('transition', "unset")
        }).on("drag", function(d) {
          d3.select(this)
              
            .attr("cx", d.x = d3.event.x)
            .attr("cy", d.y = d3.event.y)
                .attr('stroke', 'red')
           // d3.event.x)
                //d3.event.y)
        }).on("end", function(d,i) {
            X1=d.x
            Y1=d.y
                
                 
              
              
              LGG[1] = G_To_Y(X1,Y1);
              LGG[0] = G_To_X(X1,Y1);
              LZZ[1] = ZZ[1];
              LZZ[0] = ZZ[0];
              if(M[FZZ[1]][FZZ[0]]<10 ){ 
              //M[LZZ[1]][LZZ[0]]=M[FZZ[1]][FZZ[0]];
              //M[FZZ[1]][FZZ[0]]=M[LZZ[1]][LZZ[0]];
              //M[FZZ[1]][FZZ[0]]=0;
              
              alert("Замечание не трогайте не свои фигуры");
              d3.select(this)
                //.attr("cx", X1=d.x)//здесь добавил код залипания к тоске (120; 120);
           // .attr("cy", Y1=d.y)//здесь добавил код залипания к тоске (120; 120);
                .attr("cx", d.x = FGG[0])//здесь добавил код залипания к тоске (120; 120);
            .attr("cy", d.y =  FGG[1])//здесь добавил код залипания к тоске (120; 120);
                .attr('stroke', 'transparent')
            .style('transition', "200ms")
                .attr('stroke', 'black')
                setText1("Last (To): " + LGG[1]+"_"+ LGG[0]+ "_" + LZZ[1] +"_"+ LZZ[0] + "_" + M[LZZ[1]][LZZ[0]]); 
                setText0("From: " + FGG[1]+"_"+ FGG[0]+ "_" + FZZ[1] +"_"+ FZZ[0]  + "_" + M[FZZ[1]][FZZ[0]]);
                 }
              else if(M[LZZ[1]][LZZ[0]]==0){
              Comanda=1;
              M[LZZ[1]][LZZ[0]]=M[FZZ[1]][FZZ[0]];
              M[FZZ[1]][FZZ[0]]=0;
              
              MoveNumbre++;
              console.log("MoveNumbre: "+MoveNumbre+";"+" Comanda:"+ Comanda);
              //alert("Верный ход");
              DoMove(1,50,50,350,450);
              //if //DoMove( MoveNumber, 2,350,400);
              
              d3.select(this)
                //.attr("cx", X1=d.x)//здесь добавил код залипания к тоске (120; 120);
           // .attr("cy", Y1=d.y)//здесь добавил код залипания к тоске (120; 120);
                .attr("cx", d.x = G_To_X(X1,Y1))//здесь добавил код залипания к тоске (120; 120);
            .attr("cy", d.y =  G_To_Y(X1,Y1))//здесь добавил код залипания к тоске (120; 120);
                .attr('stroke', 'transparent')
            .style('transition', "200ms")
                .attr('stroke', 'black')
                setText1("Last (To): " + LGG[1]+"_"+ LGG[0]+ "_" + LZZ[1] +"_"+ LZZ[0] + "_" + M[LZZ[1]][LZZ[0]]); 
                setText0("From: " + FGG[1]+"_"+ FGG[0]+ "_" + FZZ[1] +"_"+ FZZ[0]  + "_" + M[FZZ[1]][FZZ[0]]);
                 }
                 
             else if(M[FZZ[1]][FZZ[0]]==M[LZZ[1]][LZZ[0]]){ 
              alert("Ход не выполнен, т.к. задета одна и та же клетка");
              //M[LZZ[1]][LZZ[0]]=M[FZZ[1]][FZZ[0]];
              //M[FZZ[1]][FZZ[0]]=M[LZZ[1]][LZZ[0]];
              //M[FZZ[1]][FZZ[0]]=0;
              
              
              d3.select(this)
                //.attr("cx", X1=d.x)//здесь добавил код залипания к тоске (120; 120);
           // .attr("cy", Y1=d.y)//здесь добавил код залипания к тоске (120; 120);
                .attr("cx", d.x = FGG[0])//здесь добавил код залипания к тоске (120; 120);
            .attr("cy", d.y =  FGG[1])//здесь добавил код залипания к тоске (120; 120);
                .attr('stroke', 'transparent')
            .style('transition', "200ms")
                .attr('stroke', 'black')
                setText1("Last (To): " + LGG[1]+"_"+ LGG[0]+ "_" + LZZ[1] +"_"+ LZZ[0] + "_" + M[LZZ[1]][LZZ[0]]); 
                setText0("From: " + FGG[1]+"_"+ FGG[0]+ "_" + FZZ[1] +"_"+ FZZ[0]  + "_" + M[FZZ[1]][FZZ[0]]);
                 }
                 
            else if(M[LZZ[1]][LZZ[0]]>0 && M[LZZ[1]][LZZ[0]]<19 ){ 
              
              alert("Неверный ход сдвоенная фигура");
              
              //M[LZZ[1]][LZZ[0]]=M[FZZ[1]][FZZ[0]];
              //M[FZZ[1]][FZZ[0]]=M[LZZ[1]][LZZ[0]];
              //M[FZZ[1]][FZZ[0]]=0;
              
              
              d3.select(this)
                //.attr("cx", X1=d.x)//здесь добавил код залипания к тоске (120; 120);
           // .attr("cy", Y1=d.y)//здесь добавил код залипания к тоске (120; 120);
                .attr("cx", d.x = FGG[0])//здесь добавил код залипания к тоске (120; 120);
            .attr("cy", d.y =  FGG[1])//здесь добавил код залипания к тоске (120; 120);
                .attr('stroke', 'transparent')
            .style('transition', "200ms")
                .attr('stroke', 'black')
                setText1("Last (To): " + LGG[1]+"_"+ LGG[0]+ "_" + LZZ[1] +"_"+ LZZ[0] + "_" + M[LZZ[1]][LZZ[0]]); 
                setText0("From: " + FGG[1]+"_"+ FGG[0]+ "_" + FZZ[1] +"_"+ FZZ[0]  + "_" + M[FZZ[1]][FZZ[0]]);
                 }
                  
                 
                 
        })
      );
    /*ball.onmouseup = function() {
    document.onmousemove = null;
    ball.onmouseup = null;
      };*/
      
    
     
      
      
    function upd () {
    
      var newData = [
    50, 50,   150, 50,   250, 50,
    50, 150, 150, 150,   250, 150,
    50, 250, 150, 250,   250, 250,
    (6-1)*100+50, (6-1)*100+50,   (7-1)*100+50, (6-1)*100+50,    (8-1)*100+50, (6-1)*100+50,
    (6-1)*100+50, (7-1)*100+50,   (7-1)*100+50, (7-1)*100+50,    (8-1)*100+50, (7-1)*100+50,
    (6-1)*100+50, (8-1)*100+50,   (7-1)*100+50, (8-1)*100+50,    (8-1)*100+50, (8-1)*100+50
       //  ()
      ///*//////
    
      ]
    
      circle_data1.forEach(function(d, i) {
    d.x = newData[i * 2]
    d.y = newData[i * 2 + 1]
      
      })
    
    
      circles.data(circle_data1)
    .attr("cx", function(d) {return (d.x)})
    .attr('stroke', 'black')
    .attr("cy", function(d) {return (d.y)})
    }
    
    
    upd();
    
    
    
    
    function rnd_1() {
      return (50 + Math.random() * 750)
    }
    function rnd_2(min, max, inc) {
    min = min || 0;
    inc = inc || 1;
    if(!max) { return new Error('need to define a max');}
    
    return Math.floor(Math.random() * (max - min) / inc) * inc + min;
    }
    
    
    var U = localStorage["Key2"];
    function saving0() {
      localStorage["Key2"] = (getText0());
    }
    function getText0() {
      str1 = document.getElementById('T0');
      return (str1.value + "");
    }
    function setText0(value) {
      document.getElementById('T0').value = value;
    }
    function setText1(value) {
      document.getElementById('T1').value = value;
    }
    setText0(U);
    //setText1()
    
    //And now I set scroll padding
    /*window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: "smooth" });*/
    //A_1:
    //Saveka1
    window.scrollTo({ left: 0, top: 200, behavior: "smooth" });
    //window.scrollTo({ left: 0, top: +400, behavior: "smooth" });
    /*function Do(k){
    
    circle_data1.forEach(function(d, i) {
    
    
    if(k==i){
    
    if(i==0){ 
    d.y = 350+50;
        d.x = 350+150;
        
                }
    else if(i==1){
    
        d.y = 400+50;
        d.x = 500+50;
        
    
    }
    else if(i==2){
    
     
        d.y = 400+50;
        d.x = 600+50;
        
    //d.x = 450    
    }
    }}}
    
    */
    
    function DoMove ( FF, ZY_0, ZX_0,   ZY_2,ZX_2) { //Найти 
    
     /*Memories0 add to Function  MoveNumbre   DoMove( FF,FZ,FZ,LZ,LZ) */
     /*M1:Translate Z to GG */
     //M2: Over Boundes 8 * 8 y x alert() 
       circle_data1.forEach(function(d, i) {
     //InSaving :
       FF=rnd_2(1,8,1);
       if(i==FF){
      //setTimeout(function(){console.log("XX")}, 500);
    d.x = rnd_2(0,7,1)*100+50; 
    d.y = rnd_2(0,7,1)*100+50; 
        //console.log(FGG[0]+ "_" + FGG[1]+ "_"+ LGG[1]+"_"+LGG[0])
        Comanda=2;
      }
      })
    
    
      circles.data(circle_data1)
    .attr("cx", function(d) {return (d.x)})
    .attr('stroke', 'black')
    .attr("cy", function(d) {return (d.y)})
    }
    //So It's how canI split
    //let U=getText0();
    //let entryArray
    //let entry = "Hello World";
    //entryArray = entry.split(" ");
    
    
    //console.log(entryArray[0],"_")
    
    function createNDimArray(dimensions) {
    if (dimensions.length > 0) {
        var dim = dimensions[0];
        var rest = dimensions.slice(1);
        var newArray = new Array();
        for (var i = 0; i < dim; i++) {
            newArray[i] = createNDimArray(rest);
        }
        return newArray;
     } else {
        return undefined;
     }
     }
    //var S0=createNDimArray([3, 5, 5, 5]);//returns a 3x2x5x5 array.
    
    
    //I'm creating 4d array
    //var  S = make(6,11);
    S0[5][5][5][5]="22222222";
    //alert(S0[5][5][5][5]);
    //Beging of basic configuration of figures 
    //function S0 {}
    
    
    
    
    
    
    
    
    
    </script>
    
    </body>
    </html>

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5