Захотелось вот попробовать написать тетрис. Думал что просто а вот теперь даже не знаю с чего начать. В сети много исходников, но хотелось бы чтобы объяснили поподробнее. Алгоритм какой нибудь что ли...
Ну не ужели никто тетрис не делал?
Ну объясни ты мне, зачем тебе ЕЩЕ ОДИН исходник? Их же и так тысячи !!! Ты лучше приведи неясный тебе фрагмент, и скажи, что именно неясно.
Цитата(Fang @ 2.10.2005 15:35)
Ну не ужели никто тетрис не делал?
Если бы ты воспользовался поиском или просто пролистал раздел игры, то штук 5 разнообразеых тетрисов ты бы точно нашел <_< Что значит алгорим к тетрису ?Найди исходник попроще с комментами, да ковыряйся в нем ...
Цитата
Что значит алгорим к тетрису ?
Ну не алгоритм, а так... основные понятия. Что такое стакан и т.д. в кратце.
Цитата
Найди исходник попроще с комментами, да ковыряйся в нем ...
Да вот что то попроще найти не могу все с наворотами, с графикой и т.д.
Ты что, издеваешься? Какой же тетрис БЕЗ ГРАФИКИ? Ты еще без компьютера попробуй сделать... <_<
тетрис без графики ,т.е. по реалу -- игрушки для архитекторов.
AlienEmperor
3.10.2005 18:18
Ну ладно, ладно... Наскочили на человека... Злые вы все! На самом деле тетрис без графики - это как раз нормально. Короче, слухай сюды: все что происходит на экране всего лишь отображение того, что происходит в памяти: самый простой вариант тетриса: текстовый режим - есть у тебя массив, который и представляет собой "стакан":
|000000| Mas[I,J] = [0,0,0,0,0]
|000000| [0,0,0,0,0]
|000000| [0,0,0,0,0]
|000000| -----
|000000| [0,0,0,0,0]
Далее, есть фигура:
0,0,1,0,0
0,0,1,0,0
0,0,1,0,0 (столько нулей - для "вращения")
0,0,1,0,0
Так вот: берешь фигуру (тоже массив) и заполняешь ей "стакан" ("ставишь наверх"),
затем, с задержкой опускаешь до того момента, когда ниже 1 есть другая 1, или когда фигура достигает самого "дна стакана". Остановилась - присваиваешь в стакане единицы фигуры. Далее - новая фигура. После остановки очередной фигуры проверяешь - есть ли линия в стакане: если есть - обнуляешь ее. В принцыпе, все: как уж ты сделаешь, с графикой, без (может у тебя фигуры будут из "*" состоять это уже не важно.
Люди, подскажите мне как сделать демо режим в тетрисе, т.е. чтоб комп играл сам с собой.... то я уже голову поломал..
Бродяжник
23.12.2005 20:04
Первое, что пришло в голову.
После того, как сгенерена очередная фигурка, "в уме" проверить все варианты ее падения (с учетом горизонтального положения и разворота). Каждый вариант оценивается по количеству непустых рядов после падения фигурки и упаковки стакана. Выбирается оптимальный вариант и компьютер уже в реал-тайме пытается его провернуть, при необходимости двигая и разворачивая фигуру.
Gothic_Snake
23.12.2005 21:53
Цитата(SmOuk @ 23.12.2005 16:23)
Люди, подскажите мне как сделать демо режим в тетрисе, т.е. чтоб комп играл сам с собой.... то я уже голову поломал..
Как вариант:
Пишешь процедурку, которая запоминает последовательность изменений массива твоего "стакана", далее.. Запоминаешь реакцию пользователя (твою реакцию).... Вообщем сам проиграй один уровень и запомни все твои действия в файл... Quake2 так и сделан...
Цитата(Gothic_Snake @ 23.12.2005 17:53)
Как вариант:
Пишешь процедурку, которая запоминает последовательность изменений массива твоего "стакана", далее.. Запоминаешь реакцию пользователя (твою реакцию).... Вообщем сам проиграй один уровень и запомни все твои действия в файл... Quake2 так и сделан...
Не, мне надо чтобы фигуры выпадали рандомом.....
GoodWind
25.12.2005 17:26
ИИ писать хочешь ?
Gothic_Snake
25.12.2005 17:55
Цитата(GoodWind @ 25.12.2005 16:26)
ИИ писать хочешь ?
Наверное хочет...
Да придётся! Только не подскажите, от чего оттолкнуться? Может где ссылочка на похожую задачу есть?
mne nravitsya vse eto! Hochu oznokomitsya poblije!!!!
Ya ne delala! A chto? interesno?
Бродяжник
8.02.2006 20:38
Meruert
С чем ознакомиться-то? С тетрисом?
Препод разрешил сделать демо мультиком.
Gothic_Snake Цитата
Как вариант:
Пишешь процедурку, которая запоминает последовательность изменений массива твоего "стакана", далее.. Запоминаешь реакцию пользователя (твою реакцию).... Вообщем сам проиграй один уровень и запомни все твои действия в файл...
Не подскажешь алгоритм процедурки? Или примерчик выложи.. Плиз
Бродяжник
2.03.2006 13:29
Надо думать, что в любом случае алгоритм включает в себя рисование/выпечатывание пустых или заполненных клеточек стакана. Так вот, можно сделать следующее: всякий раз, когда это происходит, записывать в файл какой-нибудь код, скажем, 1, а после него координаты выводимой клеточки и ее цвет. А там, где в программе стоит задержка, записывать в файл другой код, скажем, 0. Вот и все. Потом считываем этот файл, и если встречаем код 1, то считываем координаты и цвет, и рисуем клеточку. А когда встречаем 0, делаем задержку. И будет вам счастье.
Или еще лучше. Там, где стоит ввод с клавиатуры, записываем код клавиши в файл (или -1, если ничего не нажали). А в демо версии вместо ввода с клавиатуры ставим чтение из файла, или выборку кода из заранее считанного массива. А все остальное оставляем по-старому.
В общем, есть варианты.
Бродяжник Спасибо... Вроде несложный алгоритм.. Буду пробовать.
Цитата
Там, где стоит ввод с клавиатуры, записываем код клавиши в файл (или -1, если ничего не нажали). А в демо версии вместо ввода с клавиатуры ставим чтение из файла, или выборку кода из заранее считанного массива. А все остальное оставляем по-старому.
В общем, есть варианты.
Сделал так... Всё работает,ну в смысле движения повторяет, но фигуры выпадают не так, хотя их тоже в файл записываю!
Мож кто исходничёк посмотрит.... подскажет!
Бродяжник
13.03.2006 17:50
Исходничек я скачал, но посмотреть пока толком не могу - у меня стоит TP 6, а под ним эта игра слегка глючит... видимо, из-за того, что не инициализируются некоторые переменные. А так неплохо смотрится... видно, что человек работал.
Ну что, не ужели никто не нашёл ошибку?
Или просто всем лень её искать.... Люди, мене срочно надо, выручайте!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.