PDA

Просмотр полной версии : Принцип тетриса.


HarsH
04.02.2007, 12:05
Здравствуйте.
Вот начал делать тетрис на флеше, но как дошел до самого главного, так чё то затормозил.
Подскажите, пожалуйста, как можно сделать массив из ячеек куда фигуры сыплются. :D
заранее спасибо. :victory:

Hina
06.02.2007, 21:02
:away: Сложность в том, чтобы определить двумерный массив, или в том как связать его с ячейками "стакана" в который будут падать фигуры?

Я , когда писал тетрис во Flash, сделал так:
//Сразу оговорюсь - я сам новичок, но тетрис
//работает :D
Чтобы не парится с двумерным массивом, я взял одномерный:
//-------------------------------------------------------
//массив стакан с инициализацией
STAKAN_WIDTH = 19; //В стакане в ширину поместятся 19 кирпичей
STAKAN_HEIGHT = 25;
stage = 0; //Уровень
Stakan = Array(475);
for (var y = 0; y < 475;y++)
Stakan[y] = 0;
//----------------------------------------------------------
Потом определил функцию, позволяющую работать с ним
как с 2 - мерным:
//----------------------------------------------------------
//----------Функция для преобразования адреса [i,j] ячейки стакана
// в адрес массива Stakan.
// Если с отрицательное число, возвратит содержимое
// элемента двумерного массива Stakan[a,b] (который на самом деле одномерный)
// если с >= 0 запишет с в Stakan[a,b]? вернёт -1
function stakan(a, b, c) //Традиционо - a строка, b - столбец, а вот с - content
{
if (c >= 0){
Stakan[(a * STAKAN_WIDTH) + b] = c;
return(-10);}
else return Stakan[(a * STAKAN_WIDTH) + b];
}
//--------------------------------------------------------------
(под content понимаю содержимое ячейки - если 1 значит там уже есть кирпич)
Надеюсь помог. если интетесует полный исходник тетриса, пиши на ctpro@pochta.ru или на StrangerA@mail.ru

etc
06.02.2007, 21:10
Hina, приведите свой код в надлежащий вид, оформив текст тегами code.

HarsH
05.09.2010, 10:14
Спасибо!