![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Вот решил, что хватит заниматься менюшками да баннерочками и решил написать игру. Выбор пал на не слишком сложные, но и на не слишком простые крестики-нолики.
Опишу что должно быть: 1. поле размером 300 на 300 пикселей (одна клетка будет 100х100 пикселей) 2. пока без анимации и прочих прибамбасов На данный момент написан следующий код: var user = null;
var computer = null;
/*
function rand(min:Number, max:Number):Number {
var randRange:Number = Math.round(Math.random()*(max-min))+min;
return randRange;
}
*/
function setPlayer() {
if (Math.round(Math.random()) == 0) {
user = "krestik_mc";
computer = "nolik_mc";
} else {
user = "nolik_mc";
computer = "krestik_mc";
}
}
setPlayer();
function setEmpty() {
for (var i=0; i<=2; i++) {
for (var j=0; j<=2; j++) {
_root["cell_"+i+j] = 1;
//_root["cell_"+i+j] = 1 - пустая клетка
//_root["cell_"+i+j] = 2 - юзер
//_root["cell_"+i+j] = 3 - комп
}
}
}
setEmpty();
var listener:Object = new Object();
Mouse.addListener(listener);
listener.onMouseUp = function() {
var x_num:Number = Math.round((_xmouse-50)/100);
var y_num:Number = Math.round((_ymouse-50)/100);
if (_root["cell_"+x_num+y_num] == 1) {
var row:Number = (Math.round((_xmouse-50)/100)*100)+50;
var col:Number = (Math.round((_ymouse-50)/100)*100)+50;
var clip:MovieClip = _root.attachMovie(user, user+getNextHighestDepth(), getNextHighestDepth());
clip._x = row;
clip._y = col;
_root["cell_"+x_num+y_num] = 2;
}
compTurn();
}
function compTurn() {
}
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Да алгоритм у них не слишком сложный, а вот как его реализовать...
Вероятно надо как-то обойти все клетки и посмотреть где значения равны 2 (т.е. клетка занята юзером). Ну это можно сделать 2-ия циклами for, а вот как хранить полученные данные? Потом надо как-то научить комп понимать, что если юзер занял 2 клетки, то 3-ю надо срочно закрыть... Вот как все это сделать? |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Спасибо, буду вникать.
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
По вашей ссылке нашел следующий алгоритм:
Цитата:
Попутно возник вопрос как в AS создать массив вида array(key=>value) |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Ниче не получается... мож я изначально неправильно делаю просто?
и не понятно как потом считать какие из них диагональные... |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Мой код должен записать массив такого вида:
arr(cell_00=1, cell_01=1, cell_02=1, cell_10=1, cell_11=1, ...); и получать доступ к элементу массива я хочу так: trace(arr["cell_00"]); ну типа как ассоциативный массив в PHP А решетка у меня и так пронумерована, это происходит в самом начале кода (см. первый пост). Выглядит так: cell_00|cell_01|cell_02 ---------------------- cell_10|cell_11|cell_12 ---------------------- cell_20|cell_21|cell_22 Последний раз редактировалось GreatRash; 31.01.2008 в 18:30. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|