|
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
|
||||||
Тетрис на c++03.08.2013, 21:13. Показов 7111. Ответов 10
Метки нет (Все метки)
Я решил проверить свои скудные знания языка и написать всем известную игру тетрис. Вот что получилось.
Кликните здесь для просмотра всего текста
Но только она не работает должным образом. То есть не падает блок. нельзя двигать его по бокам. В чем ошибка? и насколько правильнен код? и как написать лучше? Добавлено через 7 минут да и как можно записать без static, а то это меня напрягает, все таки статик для всех параметры одинаковы, а мне надо будет сделать для каждого объекта копию его класса, чтобы как бы параметры типа координаты и значка были лично для этого объекта. все таки надо сделать спавн блоков
0
|
||||||
| 03.08.2013, 21:13 | |
|
Ответы с готовыми решениями:
10
Тетрис на C++ Тетрис на С++
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 04.08.2013, 03:25 | ||
|
Повороты наверно делаются просто для какждого блока в зависимости от формы там ге, квадрат или палка программируешь как она будет отображатся после поворота, короче как изменит свое состояния не знаю но похоже самое тяжолое это сделать поворот хотя кто его знает, да тут наверно каждый блок должен хранить состояние поля. И вообще структуру программы если б я делал я б сделал все в одном классе, просто при начале хода сделал бы рандомный выбор функций фигур, функция палки, функция квадрата и.тд и запрограммировал бы каждую функцию и они б уже до конца обработали поле без создания там разных классов, так просто мне эта мелкая программа яснее представляется. По такому циклу яб делал: рандомно выбираешь какой блок выпадет, это рандомиш число, а затем в swtich определяешь фунцию которая изменяет координаты поля каждая по своему или квадрат или палка, и в цикле доводит до конца пока вниз не опустится, наверно как то в этот период нужно обрабатывать три события вправа влево поворот. Село на низ проверяешь заполнены ли строки массива, удаляешь заполненые строки, затем снова делаешь рандомный выбор функции и так пока буде место свободное в массиве, ну например две верхних строки свободные. как токо они не свободны, то выводишь типо пользователь проиграл. В принципе тут не сильно понятно как события ловить в период падения, я просто как события ловить вообще не знаю, но сама реализация и алгоритм я б по такому делал, мне так кажется намного проще чем разбивать на классы. Добавлено через 2 минуты Gomg, Ты тут написал 90 строк кода и спрашиваешь почему оно не работает, когда там должно быть строк примерно 1.5к
0
|
||
|
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
|
|||||||||||
| 04.08.2013, 08:44 [ТС] | |||||||||||
|
так почему-то не назначается массиву символ по измененной y++ координате
Добавлено через 1 час 5 минут
0
|
|||||||||||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 04.08.2013, 12:24 | ||
|
0
|
||
|
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
|
|
| 04.08.2013, 16:46 [ТС] | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 23.06.2013
Сообщений: 13
|
|||||||
| 04.08.2013, 17:12 | |||||||
1
|
|||||||
|
1 / 1 / 2
Регистрация: 13.01.2013
Сообщений: 71
|
|
| 04.08.2013, 17:12 | |
|
да с поворотами и проверкой на столкновения фигур тут заморочки
0
|
|
|
1 / 1 / 0
Регистрация: 23.06.2013
Сообщений: 13
|
|
| 04.08.2013, 17:34 | |
|
извини, забыл сказать: надо подключить ctime перед использованием timeGetTime
#include <ctime>
0
|
|
|
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
|
|
| 05.08.2013, 08:39 [ТС] | |
|
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__timeGetTime@0 в функции "void __cdecl Time(void)" (?Time@@YAXXZ)
вот что выходит после этого. и define почему-то не работает. пишет что что-то пустое, хотя значение есть. Пришлось писать просто const float TIME_TICK Добавлено через 27 секунд <ctime> есть
0
|
|
|
1 / 1 / 0
Регистрация: 23.06.2013
Сообщений: 13
|
||||||
| 06.08.2013, 22:57 | ||||||
|
Gomg, извини,что не отвечал (не мог добраться к инету...)
на самом деле надо подключать не <ctime> а <Windows.h> и подключить в Project / ... Propertes / Configuration propertes / Linker / Input в строке Additional Dependences библиотеку winmm.lib. В этой строке перечислены библиотеки, кот. подключаются по умолчанию. Судя по всему winmm.lib у тебя там не записан. Вот код простого примерчика использования этой функции. Программа отмеряет время между вводами данных с клавиатуры и выводит на экран
timeGetTime Function The timeGetTime function retrieves the system time, in milliseconds. The system time is the time elapsed since Windows was started. Syntax DWORD timeGetTime(void); Parameters This function has no parameters. Return Value Returns the system time, in milliseconds. Remarks The only difference between this function and the timeGetSystemTime function is that timeGetSystemTime uses the MMTIME structure to return the system time. The timeGetTime function has less overhead than timeGetSystemTime. Note that the value returned by the timeGetTime function is a DWORD value. The return value wraps around to 0 every 2^32 milliseconds, which is about 49.71 days. This can cause problems in code that directly uses the timeGetTime return value in computations, particularly where the value is used to control code execution. You should always use the difference between two timeGetTime return values in computations. Requirements Minimum supported client Windows 2000 Professional Minimum supported server Windows 2000 Server Header Mmsystem.h (include Windows.h) Library Winmm.lib DLL Winmm.dll See Also Multimedia Timers Multimedia Timer Functions Send comments about this topic to Microsoft Build date: 10/9/2009 [/SPOILER]
0
|
||||||
| 06.08.2013, 22:57 | |
|
Помогаю со студенческими работами здесь
11
Тетрис Тетрис Тетрис
Тетрис на mvc Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|