Интереснейшая задачка!
del
|
MyBigFriend,
:) :dance: генератор комнат ... осталось соединить коридорами )))
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function () {
function randomNumber(d) {
d = parseInt(d);
var e = Math.floor(0.2 * d),
a = Math.floor(0.8 * d),
a = Math.floor(Math.random() * (a - e + 1)) + e;
return [a, d - a]
}
function append() {
$("div:empty")
.each(function (d, e) {
var a = $(e),
b = a.height(),
c = a.width();
b > c || Math.random() > .7? (b = randomNumber(b - 4), c = [c - 2, c - 2]) : (b = [b - 2, b - 2], c = randomNumber(c - 4));
$("<div/>", {
css: {
height: b[0],
width: c[0]
}
})
.appendTo(a);
$("<div/>", {
css: {
height: b[1],
width: c[1]
}
})
.appendTo(a)
})
}
function end() {
$("div:empty")
.each(function (d, e) {
var a = $(e),
b = a.height(),
c = a.width(),
b = randomNumber(b),
c = randomNumber(c),
f = randomNumber(b[1]),
g = randomNumber(c[1]);
$("<div/>", {
css: {
margin: f[0] + "px " + g[0] + "px " + f[1] + "px " + g[0] + "px",
height: b[0],
width: c[0],
background: "#228B22"
}
})
.appendTo(a)
})
};
function run()
{
append();
append();
append();
append();
end();
}
$(":button").click(function () { $('.first').empty();run() }).click()
})
</script>
<style>
div{border:1px solid black;text-align:center;padding:0px;font-size:14px;color:#000; margin: 0px; float: left; }
.first{width:400px; height: 400px;}
</style>
</head>
<body>
<div class="first"></div>
<input name="" type="button" value="more">
</body>
</html>
|
Цитата:
|
Ого, я так понял тут jquery используете, я в js то слаб, а jquery вообще не шарю) если можно в кратце опишите, что тут происходит.:)
|
Цитата:
|
если использовать такой подход, мы не сможем проложить коридоры? т.к. у нас нет никакой информации об этих дивах..
|
Цитата:
|
Цитата:
|
MyBigFriend,
Цитата:
|
Цитата:
у меня в js есть объект: var obj = new Obj(0, 0, 100, 150); где первые 2 значения это координаты, третье ширина, четвертое высота прямоугольника. Какой код нужно написать, чтобы его правильно отобразило на странице?:help: |
Цитата:
вверху есть ссылочка Курсы javascript
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script>
function Obj(top, left, width, height)
{ var d = document.createElement("div"),
c = d.style;
c.backgroundColor = "#00FF33";
c.width = width + "px";
c.height = height + "px";
c.position = "absolute";
c.top = top + "px";
c.left = left + "px";
document.body.appendChild(d);
return d
}
var obj = new Obj(0, 0, 100, 150),
div = new Obj(0, 200, 100, 100);
div.style.backgroundColor = "red"
</script>
</body>
</html>
|
рони, спасибо! Сам бы долго читал этот учебник. Спасибо за помощь)) Осталось разобраться с коридорами :D
|
Господин, рони, а как такой же код смотрелся бы в jquery?
|
MyBigFriend,
строки 25 - 31, 32 - 38, 52 - 60 во втором посте |
рони, а откуда берется переменная e, которую вы везде используете, и что это вообще?)
|
MyBigFriend,
читайте документацию по jquery в данной функции .each(function (d, e) e = this d = index |
рони,
спасибо:) |
| Часовой пояс GMT +3, время: 22:04. |