+ -
当前位置:首页 → 问答吧 → webgame中随机分布玩家位置

webgame中随机分布玩家位置

时间:2009-07-07

来源:互联网

本帖最后由 小小魔刀 于 2009-7-7 10:49 编辑

从一个中心点向四周扩散随机分布,红点代表玩家
<style type="text/css">
*{margin:0; padding:0;}
</style>

<?php
$a = array();

$ox = 25;
$oy = 25;

$a['10_10'] = array('x'=>$ox, 'y'=>$oy);

$or = 1;

$i = 1;
$step = 0;

while (true) {
    switch ($i) {
        case 1:     //下
            $oy++;
            break;
        case 2:     //左
            $ox--;
            break;
        case 3:     //上
            $oy--;
            break;
        case 4:     //右
            $ox++;
            break;
    }

    $step++;
    if ($step == $or) {
        $step = 0;
        $i++;
        if ($i > 4) {
            $i = 1;
        }
        if ($i == 3 || $i == 1) {
            $or +=1;
        }
    }


    $a[$ox . '_' . $oy] = array('x'=>$ox, 'y'=>$oy);
    if (count($a) > 2000) {
        break;
    }
}

for ($j = 0; $j < 50; $j++) {
    for ($t = 0; $t < 50; $t++) {
        $x = $t * 20;
        $y = $j * 20;

        $c = rand(0, 50);
        if (isset($a[$t . '_' . $j])) {
            if (!$c || ($j == 10 && $t == 10)) {
                echo "<div  style='background:red;color:#fff; width:10px; height:10px; position:absolute; left:{$x}px; top:{$y}px'></div>";
            } else {
                echo "<div  style='background:#000;color:#fff; width:10px; height:10px; position:absolute; left:{$x}px; top:{$y}px'></div>";
            }

        } else {
            echo "<div  style='background:#000;color:#fff; width:10px; height:10px; position:absolute; left:{$x}px; top:{$y}px'></div>";
        }
    }
}

作者: 小小魔刀   发布时间: 2009-07-07

收藏

作者: ahsxw   发布时间: 2009-07-08

不错,做记录

作者: nianjin   发布时间: 2009-07-09

娃哈哈 不错 支持一下~

作者: alei817927   发布时间: 2009-07-11

作者: niceup   发布时间: 2009-07-13