19.08.2010, 12:53
|
Кандидат Javascript-наук
|
|
Регистрация: 15.01.2010
Сообщений: 138
|
|
Добавить новые координаты
Привет всем умам форума)
Ребят, я пишу змейку и хотел бы уточнить один момент, у меня двумерный массив, который является полем, на данном этапе я имею только голову змеи(то есть один кубик) с координатами х=5, у=5, но я не могу додуматься как мне добавить новую часть тела змейки, когда она съест яблоко, может сделать змейку массивом, я не могу сообразить, помогите пожалуйста, выложу на форум игру если поможете.
|
|
19.08.2010, 13:11
|
Кандидат Javascript-наук
|
|
Регистрация: 15.01.2010
Сообщений: 138
|
|
Gvozd, спасибо, я просто оставил на потом змейку, я делал другие игрушки и решил змею доделать)
Последний раз редактировалось lammeR, 19.08.2010 в 13:17.
|
|
19.08.2010, 13:12
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
lammeR,
вы считаете это оправданием тому, что вы задаете один и тот же вопрос по несколько раз?
|
|
19.08.2010, 13:14
|
Кандидат Javascript-наук
|
|
Регистрация: 15.01.2010
Сообщений: 138
|
|
Gvozd, там другой вопрос был.
Интересно, а новая часть тела должна наследовать координаты выше стоящей части ?
Последний раз редактировалось lammeR, 19.08.2010 в 13:17.
|
|
19.08.2010, 13:25
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от lammeR
|
там другой вопрос был.
|
зато ответ там как нельзя лучше подходит к текущему вопросу
Сообщение от lammeR
|
Интересно, а новая часть тела должна наследовать координаты выше стоящей части ?
|
я думаю, стоит наращивать змею со стороны головы, а не хвоста.
так как если.
это проще реализовать, а работать будет в итоге одинаково
|
|
19.08.2010, 13:28
|
Кандидат Javascript-наук
|
|
Регистрация: 15.01.2010
Сообщений: 138
|
|
Понимаю Вас, вот как бы это всё реализовать)
|
|
19.08.2010, 13:31
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
lammeR,
мне за вас игру что-ли написать?
|
|
19.08.2010, 13:36
|
Кандидат Javascript-наук
|
|
Регистрация: 15.01.2010
Сообщений: 138
|
|
Gvozd, я Вам этого не предлагал, я имел ввиду на подсказки в будущем, буду обращаться и изливать свои записи в эту тему)
|
|
19.08.2010, 21:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Змейка робот
lammeR,
Забавы ради )))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
td{
height: 22px; width: 22px; text-align: center;
}
</style>
</head>
<body>
<script language="JavaScript" type="text/javascript">
for (var m = [], z = [[1, 1]], l = 10, k,
b = ["background-color: #FFFF00;", "background-color: #FF00FF;", "background-color: #00FF00;", "background-color: #FF0000;"],
t = document.createElement("table"), c = 0; c < l; c++) {
var tr = t.insertRow(c);
m[c] = [];
for (var s = 0; s < l; s++) {
Math.random() > 0.15 ? k = 1 : k = 2;
if (c == 0 || c == l - 1 || s == 0 || s == l - 1) k = 0;
tr.insertCell(s).style.cssText = b[k];
m[c][s] = k
}
}
document.body.appendChild(t);
t.rows[z[0][0]].cells[z[0][1]].style.cssText = b[3];
function go() {
if (!this.p) {
p = [
[-1, 0],
[0, -1],
[1, 0],
[0, 1]
];
end = 4
}
n = [z[0][0] + p[0][0], z[0][1] + p[0][1]];
if (m[n[0]][n[1]] == 2) {
end = 4;
m[n[0]][n[1]] = 3;
t.rows[n[0]].cells[n[1]].style.cssText = b[3];
z.unshift(n)
} else if (m[n[0]][n[1]] == 1) {
end = 4;
m[n[0]][n[1]] = 3;
t.rows[n[0]].cells[n[1]].style.cssText = b[3];
z.unshift(n);
d = z.pop();
m[d[0]][d[1]] = 3;
t.rows[d[0]].cells[d[1]].style.cssText = b[1];
t.rows[d[0]].cells[d[1]].innerHTML = "X"
} else if (m[n[0]][n[1]] == 0 || m[n[0]][n[1]] == 3) {
p.push(p.shift());
end--
}
if(!/2/.test(m.join()))end=0;
end ? setTimeout(arguments.callee, 300) : alert("Game over")
};
</script>
<input type="button" name="" value="go" onclick="go()"/>
</body>
</html>
Последний раз редактировалось рони, 28.06.2014 в 23:29.
|
|
|
|