|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.09.2014, 15:21 | #51 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Попробуйте это Лилии объяснить. Какую первую подзадачу ей решить?
Вот я именно так и поступаю. Ставлю маленькие цели. Сначала кубик вывел. Потом заставил его двигаться вниз. Потом сделал управления клавишами. Потом сделал так чтобы кубик не уходил за границы окна (при нажатии на кнопки влево\вправо). Потом сделал так чтобы кубик останавливался на полу. Потом сделал класс "Square". Потом массив объектов класса "Square" и т.д. Потихоньку продвигаюсь Приложение: https://yadi.sk/d/vnJD_Y5ebTTHY Содержимое следующего архива должно лежать в папке с приложением: https://yadi.sk/d/GV2PozMcbSuUG |
13.09.2014, 15:58 | #52 | |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Цитата:
Во-вторых, это и правда сложно для меня пока (что заметили и другие). Плюс получила сегодня серьезную критику от одного из участников форума. Поэтому не тратьте на меня время, пожалуйста. Пусть это останется моей личной заботой. Спасибо. |
|
13.09.2014, 17:10 | #53 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Ты гришь - составить из треугольников прямоугольник. Я говорю - cout << '*'; // я вывел квадрат заполненный фигурой. cout << '#' // вывел всяких хлам на дне cout << ' '; // вывел пустую клетку Грубо говоря - так. А реально надо завернуть это красиво в enum; Хочешь написать юнит тесты - тестируешь, например передвижение фигуры: До: Код:
После: Код:
1 состояние: Код:
Код:
Код:
До: Код:
Код:
Я не вижу проблем тут вообще - достаточно уметь работать с двумерными массивами. И да, я сразу могу прикинуть тесты, ведь я знаю что я хочу получить. А ты рисуешь треугольники, поэтому тебе тяжело )) Последний раз редактировалось rrrFer; 13.09.2014 в 17:21. |
|
13.09.2014, 17:14 | #54 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Я не пойму - неужели сложно проверить, что строка двумерного массива целиком состоит из решеток?
Сложно удалить эту строку, со сдвигом всех строк над ней вниз? Совсем не сложно перемещать все звездочки массива на одну клетку вниз или по диагонали Единственное сложное, что я тут вижу - вращение фигуры. Тут надо подумать, я пока не придумал как это ДОЛЖНО ВЫГЛЯДЕТЬ, т.е. я не писал для этого тестовые примеры. |
13.09.2014, 17:20 | #55 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Ты чето путаешь чувак, я тут уже грил, что первый тетрис был написан в начало 80х, когда ни о каком опенгле и директиксе, винапи, где никто ничего не слышал. |
|
13.09.2014, 18:15 | #56 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Всё решается куда проще. Разместите на форме компонент Image. У этого компонента есть канва. Вот на канву-то и можно выводить всю графику. Сам алгоритм тетриса не сложный и описан rrrFer в первых постах. Я не работал в MVS, но думаю, формы там создаются. Создаём матрицу. Как правило это x=20, y=50. Каждую из фигур, обозначаем разными цифрами, которые соответствуют определённому цвету. Делаем соответствующие проверки на стенки, а на полу с цветами, рядом лежащих кубиков. Если строка от стенки до стенки заполнена, удаляем строку смещая верхние кубики вниз и т.д.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
13.09.2014, 18:17 | #57 | |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,604
|
Цитата:
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
|
13.09.2014, 18:41 | #58 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Это с одной стороны. С другой стороны ты пишешь невероятный и эпический бред. Язык ваще никак с доступом к видеопамяти не связан. Ты можешь писать код для железа на Си, а можешь писать на ассемблере под винду. Ассемблер под виндой не даст тебе прямого доступа к видеопамяти. Начни с начала темы, все это уже обсуждалось. Включая то, что не нужен тут директиск ваще, как и опенгл и все прочее (более полный список ищи в старых постах) Последний раз редактировалось rrrFer; 13.09.2014 в 18:43. |
|
13.09.2014, 18:45 | #59 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Смит
Цитата:
Они все равно не читают твой ответ, они сразу пишут свой. Свой про опенгл, директиск, и треугольники. Попутно научат тебя тестированию приложений, скажут что ты ничего не знаешь и все прочее. Спорить бесполезно, поэтому я написал пост #40. |
|
13.09.2014, 18:55 | #60 | |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,604
|
Цитата:
Основой работы Windows является ядро (ntoskrnl), которое загружает драйвера .sys которые работают с железом. На уровне ОС сделан hal(hardware abstraction layer), который обеспечивает загрузку ОС и взаимодействие ядра с железом. После загрузки железа в нулевом кольце защиты процессора ( ring0), загружаются системные службы и программы ( user32, kernel32, gdi32, ntdll (ring1), которые загружают графический интерфейс ОС и обертки к winapo. Пользовательские программы действуют в ring2. Подробно это описано у Руссиновича/Саломона.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C тетрис | Цукер | Помощь студентам | 0 | 21.11.2011 22:53 |
Тетрис на си | фыф123 | Помощь студентам | 1 | 22.06.2011 10:48 |
Тетрис | Александр123456 | Общие вопросы C/C++ | 1 | 02.12.2010 23:15 |
Тетрис | k1r1ch | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 02.01.2010 12:20 |
массив и тетрис | sid | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.04.2007 14:41 |