Javascript 使用java脚本在数字表中30次更改2个随机数

Javascript 使用java脚本在数字表中30次更改2个随机数,javascript,jquery,sudoku,Javascript,Jquery,Sudoku,在这段代码中,每次打开html页面时,都会生成两个随机数,它们在矩阵中的位置也会改变。 例如,随机数是2,8 在主表中,矩阵[0][1]、矩阵[1][7]、矩阵[2][4]、矩阵[3][0]、矩阵[4][6]、矩阵[5][3]、矩阵[6][8]、矩阵[3][0]、矩阵[7][5] ,矩阵[8][2]。在结果表中,8在这些位置设置,2在8的当前位置设置。 我想重复30次 到目前为止,我已经: <!DOCTYPE html> <html lang="en" xmlns="http

在这段代码中,每次打开html页面时,都会生成两个随机数,它们在矩阵中的位置也会改变。 例如,随机数是2,8 在主表中,矩阵[0][1]、矩阵[1][7]、矩阵[2][4]、矩阵[3][0]、矩阵[4][6]、矩阵[5][3]、矩阵[6][8]、矩阵[3][0]、矩阵[7][5] ,矩阵[8][2]。在结果表中,8在这些位置设置,2在8的当前位置设置。 我想重复30次

到目前为止,我已经:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

<body>
<script type="text/javascript">

var matrix = new Array();
matrix[0]=[1,2,3,4,5,6,7,8,9];
matrix[1]=[4,5,6,7,8,9,1,2,3];
matrix[2]=[7,8,9,1,2,3,4,5,6];

matrix[3]=[2,3,4,5,6,7,8,9,1];
matrix[4]=[5,6,7,8,9,1,2,3,4];
matrix[5]=[8,9,1,2,3,4,5,6,7];


matrix[6]=[3,4,5,6,7,8,9,1,2];
matrix[7]=[6,7,8,9,1,2,3,4,5];
matrix[8]=[9,1,2,3,4,5,6,7,8];

document.writeln('<table border="1">');
for (i = 0; i < 9; i++)
      {
    document.writeln('<tr>');
    for (j = 0; j < 9; j++) 
         document.writeln('<td>' + matrix[i][j] + '</td>');

    document.writeln('</tr>');
       }
document.writeln('</table>');


document.writeln('<table border="1">');
document.writeln("The random numbers are:");
document.writeln('<br>');
var r1 = Math.ceil(Math.random() * 9);
var r2 = Math.ceil(Math.random() * 9);
document.writeln(r1);
document.writeln(r2);
document.writeln('<br>');
document.writeln("The result table is:");
        for(i=0; i<9; i++)
           {
              document.writeln('<tr>');
             for(j=0; j<9; j++)
                {
                 if(matrix[i][j]==r1)
                   {
                     matrix[i][j]=r2;
                     document.writeln('<td>' + matrix[i][j] + '</td>');
                    }
                 else if(matrix[i][j]!=r1 && matrix[i][j]!=r2)
                    document.writeln('<td>' + matrix[i][j] + '</td>');
                 else if(matrix[i][j]==r2)
                       {
                          matrix[i][j]=r1;  
                          document.writeln('<td>' + matrix[i][j] + '</td>');
                        }

                }

              document.writeln('</tr>');
           }

   document.writeln('</table>');

</script>
</body>
</html>

var矩阵=新数组();
矩阵[0]=[1,2,3,4,5,6,7,8,9];
矩阵[1]=[4,5,6,7,8,9,1,2,3];
矩阵[2]=[7,8,9,1,2,3,4,5,6];
矩阵[3]=[2,3,4,5,6,7,8,9,1];
矩阵[4]=[5,6,7,8,9,1,2,3,4];
矩阵[5]=[8,9,1,2,3,4,5,6,7];
矩阵[6]=[3,4,5,6,7,8,9,1,2];
矩阵[7]=[6,7,8,9,1,2,3,4,5];
矩阵[8]=[9,1,2,3,4,5,6,7,8];
书面文件(“”);
对于(i=0;i<9;i++)
{
书面文件(“”);
对于(j=0;j<9;j++)
书面文件(''+矩阵[i][j]+'');
书面文件(“”);
}
书面文件(“”);
书面文件(“”);
“随机数为:”;
document.writeln(“
”); var r1=Math.ceil(Math.random()*9); var r2=Math.ceil(Math.random()*9); 书面文件(r1); 书面文件(r2); document.writeln(“
”); document.writeln(“结果表为:”);
对于(i=0;i我会稍微更改您的代码

首先,我要制作一个打印表格的方法:

function printMatrix(var matrix)
{
   document.writeln('<table border="1">');
for (i = 0; i < 9; i++)
      {
    document.writeln('<tr>');
    for (j = 0; j < 9; j++) 
         document.writeln('<td>' + matrix[i][j] + '</td>');

    document.writeln('</tr>');
       }
document.writeln('</table>');
}
函数打印矩阵(var矩阵)
{
书面文件(“”);
对于(i=0;i<9;i++)
{
书面文件(“”);
对于(j=0;j<9;j++)
书面文件(''+矩阵[i][j]+'');
书面文件(“”);
}
书面文件(“”);
}
然后,我将为交换创建一个方法:

function sawpTwoNumbers(matrix)
{

document.writeln("The random numbers are:");
document.writeln('<br>');
var r1 = Math.ceil(Math.random() * 9);
var r2 = Math.ceil(Math.random() * 9);
document.writeln(r1);
document.writeln(r2);
document.writeln('<br>');

// This is new code:

for(int i=0; i< matrix.length; i++){
    var r1Index = matrix[i].indexOf(r1);
    var r2Index = matrix[i].indexOf(r2);

    matrix[i][r1Index] = r2;
    matrix[i][r2Index] = r1;
}

}
函数锯数(矩阵)
{
“随机数为:”;
document.writeln(“
”); var r1=Math.ceil(Math.random()*9); var r2=Math.ceil(Math.random()*9); 书面文件(r1); 书面文件(r2); document.writeln(“
”); //这是新代码: 对于(int i=0;i
接下来,我将把您的代码放在pageLoad方法中:

function pageLoad()
{
var matrix = new Array();
matrix[0]=[1,2,3,4,5,6,7,8,9];
matrix[1]=[4,5,6,7,8,9,1,2,3];
matrix[2]=[7,8,9,1,2,3,4,5,6];

matrix[3]=[2,3,4,5,6,7,8,9,1];
matrix[4]=[5,6,7,8,9,1,2,3,4];
matrix[5]=[8,9,1,2,3,4,5,6,7];


matrix[6]=[3,4,5,6,7,8,9,1,2];
matrix[7]=[6,7,8,9,1,2,3,4,5];
matrix[8]=[9,1,2,3,4,5,6,7,8];

printMatrix(matrix);

// This is new code:
// It will call the swap method and the print method 30 times.
for(int i = 0; i < 30; i++)
{
    swapTwoNumbers(matrix);
    printMatrix(matrix);
}
}
函数pageLoad()
{
var矩阵=新数组();
矩阵[0]=[1,2,3,4,5,6,7,8,9];
矩阵[1]=[4,5,6,7,8,9,1,2,3];
矩阵[2]=[7,8,9,1,2,3,4,5,6];
矩阵[3]=[2,3,4,5,6,7,8,9,1];
矩阵[4]=[5,6,7,8,9,1,2,3,4];
矩阵[5]=[8,9,1,2,3,4,5,6,7];
矩阵[6]=[3,4,5,6,7,8,9,1,2];
矩阵[7]=[6,7,8,9,1,2,3,4,5];
矩阵[8]=[9,1,2,3,4,5,6,7,8];
打印矩阵(矩阵);
//这是新代码:
//它将调用swap方法和print方法30次。
对于(int i=0;i<30;i++)
{
swapTwoNumbers(矩阵);
打印矩阵(矩阵);
}
}

请注意:我还没有测试过这段代码。我不能保证它能正常工作。不过我希望它能给你一个正确的方向。

:谢谢你的回答,但我不想要30个表输出,我想要这个数字在1个表中30次交换,例如,1和2--2和3--@blackrose~然后将printMatrix调用移出对于循环.3 2 1 1 5 4 1 7 2 1 3 5----------------->1 3 5随机数是:2和3 5和1…新表是:2 3 5 1 4 5 7 3 5 21@blackrose~z~那是什么问题?你只是复制并粘贴了你问题中的内容。@blackrose~我从来没有说过。实际上我说的恰恰相反,我一点也不保证。看起来It’这就像一个家庭作业问题。我在没有给出完整答案的情况下概述了我认为对你有帮助的内容。我发布的内容应该足以推动你朝着正确的方向前进。