Заметки: Тетрис математическим методом.
Что бы опять не забрасывать программирование в дальний ящик, решил написать тетрис. Тетрис математическим методом.
Уровень читателя: начинающий программист.
Что он собой представляет:
Ну во-первых это поле размеченное нулями, летящие фигуры это единицы, двойки это фигуры которые уже установлены на поле, ну а нули собственно это пустые ячейки, по которым можно двигаться. Представить все это дело можно двумерным массивом или матрицей. Я представил массивом.
Во-вторых: это тригеры(флажки, указатели и т.п.) показывающие, состояние движения в различные стороны, повороты, проверку условий. Хотя чисто к математическому методу это можно отнести достаточно условно. Точней было бы сказать что именно методы проверки этих тригеров относятся к математическому методу непосредственно.
Ну и последние это представление летящей фигуры в пространстве поля. Другими словами это рисование фигуры в пространстве двухмерного массива или матрицы. Летящию фигуру можно представить тоже массивом или матрицей. И взаимодействие нашей фигуры таким образом каким показывают наши тригеры. Другими словами если тригер "налево" разрешает идти налево то мы передвигаем нашу фигуру и т.д. с другими тригерами.
Самый большой плюс этого метода эта скорость работы кода. Из минусов это сложная реализация тригеров движения влево, вправо и вниз.
Что из этого вышло вы можете оценить:
http://file.kirovnet.ru/d/616815/Tetris-1.00.rar
p.s. Если кому интересно и найдется немного заинтересованных пользователей, то я могу написать небольшой цикл уроков по тому как написать тетрис. Если же нет то просто выложу исходный код немного поздней.
- 17 апреля 2012, 15:07
- 03
PRESS в начале подвесил меня на какое-то время. Сама игра сильно шустрая, не всегда поворачиваются фигуры.
Я тоже удивился.
Может, в его языке это разные типы данных?
Совсем не одно и тоже.
Двумерный массив предполагает размерность m строк и n столбцов, где и m,n = 2.
Тоесть получается так:
Матрица мат. обьект представленный прямоугольной таблицей:
Квадртные матрицы просто частный случай(так они называютяс, когда кол-во строк равно столбцам?).
Астролог во мне предполагает, что имелся ввиду массив массивов против одного массива с проверкой определенной координаты на причастность к новой строке.
^_^
Ыть. Двумерный массив - массив массивов с любым количеством строк и столбцов, вообще-то. От матрицы отличается только названием.
Вчитываемся: Анализируем. Одномерный массив не упоминался, а из второго предложения подразумевается, что двумерный массив и матрица - разные вещи.И выстрел в голову - цитата из вики:
Ытить я ложанулся-то с двумерным массивом :D
My bad.
Первое — это вообще похоже на вектор.
Астролог во мне подсказывает это.
Вектор - либо направленный отрезок, либо одномерный массив.
Две точки по две координаты — чем не вектор в два-дэ?
Но я уже туплю. Не обращайте на меня внимание.
Координаты вектора - проекции на оси, например {2; -2}. И пишутся они в строчку.
Это я нахватался где-то всякой фигни.
Кто, читатель?
Да! Великий гуру, напиши туториал!
Нет тут его :-) Ну чуток иронии.
Вы так всех писателей с сайта распугаете :)
Да нет же, я совершенно серьезно просил.
Ну, я бы не сильно поверил, например.
Не очень понятно сказано. Маленькая графическая иллюстрация, что там за триггеры, и как они работают, была бы в тему, вместо этих хитросплетений. Нет, я-то понял. Но уж скорее потому что знал эту теорию и так.
Зачем цветовой прямоугольник наверху слева?