这是我的第一个问题,我会尽力明白。
我需要在位置分配一个值。我有一个7行的二维数组(例如)。 根据某人给我的价值,我必须改变价值立场。
实施例 如果有人给我:3。我必须按照以下顺序放置这3个。
1 * * * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * O
4 * * * * * * * * O
5 * * * * * * * * O
6 * * * * * * * * *
7 * * * * * * * * *
如果有人给我:2
1 * * * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * O
4 * * * * * * * * O
5 * * * * * * * * *
6 * * * * * * * * *
7 * * * * * * * * *
我在数组的“中间”定义了一些起点。这些我做的还可以。 起点在中间。 S =起点
1 * * * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * *
4 S * * * * * * * *
5 * * * * * * * * *
6 * * * * * * * * *
7 * * * * * * * * *
问题是我必须在数组的最后添加'0',因为'0'的数量是可变的并且必须居中 我有这些代码:
var height = 7;
var width = 9;
var exit = 3; // or can be 2, or 4, 5 etc.
var matrix = new Array(height);
for (var i=0; i<height; i++) {
matrix[i] = new Array(width);
for (var j = 0; j<width; j++) {
matrix[i][j] = *;
}
}
function startPoint(height, matrix){
// Se define el punto de partida
var startPoint = Math.round(height/2) -1;
document.write("el punto de partida es: "+startPoint)
matrix[startPoint][0] = 'S';
return matrix
}
function finishPoint(exit, matrix){
// punto de salida.
return matrix
}
我正在学习JavaScript,但我发现了一个无法解决的问题。我正在努力,我无法理解。
答案 0 :(得分:0)
要将k
值的数组置于s
值的空间(其中s >= k
)中心,您可以使用公式
var x = Math.floor((s - k) / 2);
并将k
值存储在x
,x+1
,...,x+k-1
中。
公式的想法是
s - k
)当然,如果免费场所的数量最终变成奇数,你就不能将它们分成两半,而一方会得到比另一方更多的东西。使用Math.floor
负责此调整,使第一面减少一个元素。
答案 1 :(得分:0)
你只需找到中心(高度/ 2)并减去HALF&#34;退出&#34;的高度。因此,如果出口高4,那么2应该在一侧而2则在另一侧,所以你从中心减去2。
var height = 7;
var width = 9;
var exit = 3; // or can be 2, or 4, 5 etc.
var matrix = new Array(height);
for (var i=0; i<height; i++) {
matrix[i] = new Array(width);
for (var j = 0; j<width; j++) {
matrix[i][j] = '*';
}
}
function startPoint(height, matrix){
// Se define el punto de partida
var startPoint = Math.round(height/2)-1 ;
document.body.innerHTML+=("el punto de partida es: "+startPoint+'<br>')
matrix[startPoint][0] = 'S';
return matrix
}
function finishPoint(exit, matrix){
// punto de salida.
var startPoint=Math.round(height/2-(exit/2))
for(var i=0;i<exit;i++)
matrix[startPoint+i][width-1]='0'
return matrix
}
matrix=startPoint(height,matrix)
matrix=finishPoint(exit,matrix)
for(var i=0;i<height;i++){
for(var j=0;j<width;j++)
document.body.innerHTML+=matrix[i][j]
document.body.innerHTML+='<br>'
}
document.body.innerHTML+='la salida es de altura: '+exit+ ' entonces buscamos el centro ('+(height/2)+') y restamos mitad de la altura ('+exit/2+')'
&#13;