Javascript 随机显示点

Javascript 随机显示点,javascript,random,numbers,Javascript,Random,Numbers,我正在尝试使用JS设计一个小游戏,我想让它做的是让一个随机数说。。。1-100,然后在屏幕上随机散布点(我使用了字体大小为200的句点)。我所说的随机,只是指我不希望它们被排列成行和列。到目前为止,我所做的只是分散了这些点,那么我该怎么做呢 var i=0; var inhtml="." var num=10 function exe(){ i=Math.floor(Math.random()*100) //alert(i) while (i<=100){

我正在尝试使用JS设计一个小游戏,我想让它做的是让一个随机数说。。。1-100,然后在屏幕上随机散布点(我使用了字体大小为200的句点)。我所说的随机,只是指我不希望它们被排列成行和列。到目前为止,我所做的只是分散了这些点,那么我该怎么做呢

var i=0;
var inhtml="."
var num=10
function exe(){
    i=Math.floor(Math.random()*100)
    //alert(i)
    while (i<=100){
    document.getElementById("dot").innerHTML = inhtml + "."
    inhtml = document.getElementById("dot").innerHTML
    if (inhtml.length>num){ 
        inhtml=document.getElementById("dot").innerHTML+"<br />"
        num=num+20
    }
    i++;
    }
}
var i=0;
var inhtml=“”
var num=10
函数exe(){
i=Math.floor(Math.random()*100)
//警报(一)
而(inum){
inhtml=document.getElementById(“点”).innerHTML+“
” num=num+20 } i++; } }
为了不受浏览器文本布局约束的约束,您几乎必须绝对定位点:

<div style="position: absolute; top: {random number}; left: {random number}">.</div>

我建议对每个点使用单独的元素,而不是使用一个包含多个大句点的单个元素。然后,(除了不必使用200px句点之外),您还可以使用CSS来定位每个元素。我有一个例子

编辑:我不知道让点不重叠的确切问题是什么,但您基本上需要这样做:


首先你选择一个位置。然后,对照所有其他位置检查该位置(您可能希望使用该位置)。如果该点有效,则使用该点并将其添加到已采取位置的数组中。否则,请返回第一步。

您可能需要查看HTML5画布。它允许您以任何位置、大小和填充颜色绘制圆弧(也称为圆)

查看详细信息、教程和演示。

在继续之前,您可能需要检查语法错误;我不知道您是否复制了所有代码,但您在行尾缺少分号。撇开句法问题不谈,实现您描述的目标的一种可能方法是将每个点的x坐标和y坐标指定给一个随机数。检查代码发现只有
i
的初始值被分配给
random()
的值。递增
i
将使未来点的坐标取决于
i
的初始值,这是您可能需要考虑的。但在您的代码中,我并没有看到您根据生成的值更改每个元素的位置。

我强烈建议您使用HTML5画布,而不是尝试移动HTML元素;后者将很麻烦,并导致混乱和低效的代码。如果您仍然想坚持现在尝试使用的方法,请检查以确保这些元素的CSS
display
属性设置为
block
。您使用的是
getElementById()
方法,在这种情况下,该方法不是很有用,因为ID在HTML文件中是唯一的。我建议使用
getElementsByTagName()
,并使用返回的元素和特定的
class
属性。

是否有任何可能的方法确保点不会重叠太远?@Sean跟踪阵列中生成的位置,并在每次生成新坐标时进行比较。这将不再是随机的,真正的随机性应该已经是随机分布的了。最糟糕的情况是两个重叠的点,但它们应该很少出现,例如,所有的点都聚集在一个角落里。我需要一些方法让用户能够计算这些点。如果数字高达100,这将是一项相当艰巨的任务,但如果数字只有,比如说10,我如何确保有10个可见点,而不是9个?哇,这看起来几乎完美!!有没有办法让它们不重叠呢?或者改变每个点的颜色或者其他什么?我需要一些方法让用户能够计算点。@Sean:好吧,如果你将它拾取的所有位置存储在一个数组中,每当它拾取一个新位置时,它都可以检查它是否离任何其他位置太近,如果是的话,选择一个不同的位置。您还可以通过为每个元素设置不同的
background
属性来选择不同的颜色。。不知道我会怎么做。我想我会通过。。。这不应该够麻烦的。。谢谢你的努力!JavaScript不需要在行尾加分号。