以html显示网格

Display a grid in html

本文关键字:网格 显示 html      更新时间:2023-09-26

我现在有了生成网格的代码。该任务将在10分钟内完成,例如,参与者将被要求回答尽可能多的问题。每次他们输入网格中着色正方形数量的答案时,就会出现一个新的网格。我目前的问题是,在给出答案后,程序需要评估答案是否正确,并加载新的网格。该过程应重复进行,直到10分钟结束,在程序验证答案是否正确后,需要更新正确答案的数量。该任务是用PyCharm编辑器编程的,我目前无法让这些序列自行重复,直到为该任务设置的时间结束。

代码:

{% block styles %}
<style>
table, tr, td {
  border: 1px solid #000000;
}
.bg-black {
  background-color: #808080;}
</style>
{% endblock styles %}

{% block scripts %}
<script>

var effort_correct, effort_incorrect, effort_attempt, answer;
var matrix = [];

var height = Math.floor((Math.random() * 7) + 5);
var width = Math.floor((Math.random() * 7) + 5);
var gridSize = height * width;
var solution = 0;
    for (var i = 0; i < height; i++) {
        matrix[i] = [];
        for (var j = 0; j < width; j++) {
            if (Math.random() < 0.5) {
                matrix[i][j] = 1;
                solution++;
            } else {
                matrix[i][j] = 0;
            }
        }
    }

function render(grid) {

    var html = '<table><tbody>';
    for (var k = 0; k < height; k++) {
        html += '<tr>';
        for (var l = 0; l < width; l++) {
            html += grid[k][l] ? '<td class="bg-black">&nbsp;&nbsp;&nbsp;&nbsp;</td>' :
                    '<td>&nbsp;</td>';
        }
        html += '</tr>'
    }
    html += '</tbody></table>';
    return html;
}
    document.querySelector('#grid').innerHTML = render(matrix);

function score(answer) {
    if (answer == solution) {
        effort_correct++;
    } else {
        effort_incorrect++;
    }
    effort_attempt++;

}
</script>
{% endblock scripts %}
{% block title %}
Task 1: Stage 1
{% endblock %}
{% block content %}
<head>
<style>
    p.text-center {text-align: center;}
    p.thick {font-weight: bold;}
</style>
</head>
<p-class text-center>
     <div id="grid"></div>


    <br>
    <br>
    {% formfield player.answer with label="The number of shaded squares is:" %}
    <br>
    <br>
    Number of correct answers: {{score}}
</p-class>
<br>
<br>

<button onclick="score(player.answer)">Submit</button>
{% endblock %}

我创建了一个简单的fiddle示例,希望它能有所帮助:https://jsfiddle.net/ilya_sharonov/wxov81zs/

    var ar = [
      [0,1,0,1],
      [1,0,1,0],
      [0,0,1,1],
      [1,1,0,0],
    ];
function render(arr) {
  var html = '<table><tbody>';
  for (var i=0; i<arr.length; i++) {
    html += '<tr>';
    for (var j=0; j<arr[i].length; j++) {
      html += arr[i][j] ? '<td class="bg-black">&nbsp;&nbsp;&nbsp;&nbsp;</td>':
                          '<td>&nbsp;</td>';
    }
    html += '</tr>'
  }
  html += '</tbody></table>';
  return html;
}
document.querySelector('#grid').innerHTML = render(ar);