Форум программистов, компьютерный форум, киберфорум
Наши страницы
Бета-тестирование
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
1

Игра Кубик Рубик для Windows

09.08.2017, 09:14. Просмотров 1889. Ответов 64
Метки нет (Все метки)

Опишу свой путь развития:
Я программист уже более 10 лет. Серьезно к трехмерной графике начал присматриваться в январе 2017 года.
В январе 2017 года начал изучать DirectX, OpenGL, C++, ООП подтянул.
Подтолкнуло меня изучать реалистичную трехмерную графику для своих будущих проектов, а именно хочу сделать помощник по расчету инженерных коммуникаций.

При изучении начал осознавать, что это оказалось достаточно сложным процессом, и перед этим решил получить небольшой опыт и поставил себе цель сделать две игрушки:
1. Игра лабиринт: Игра Лабиринт 3D (вторая часть) – генерация уникального большого лабиринта (4 уровня сложности)
2. Игра Кубик Рубик (эта тема посвящена тестированию этой игры)

Из всего опыта подметил больше всего – это умение правильно писать код. Так чтобы проекты писались очень быстро. Я в играх не использовал и пока не собираюсь вообще использовать подключаемые библиотеки типа GLUT. Можно без GLUTa делать приложения. Конечно не обошелся от помощи других профессионалов в этой сфере. Приходилось вставлять готовые открытые алгоритмы в программный код.

В общем, приложение должно работать на Windows7,8,10. Буду признателен, если проверите работу на windowsXP. Хотя ХP похоже уже не пользуется спросом.

Если получите ошибки в программе просьба: Прислать скриншот, указать операционную систему и видеокарту.

Управление в игре Кубик Рубик:

Вращение всего кубика: Удерживаете правую кнопку мыши и двигаете мышку по экрану. Причем двигать можно не только верх, вниз и по диагонали. Но можно и вокруг кубика и вы увидите, что-то новое в управлении… Такое управление я не видел в играх других производителей игр. Это была моя идея сделать такое движение. И мне помог ее сделать один опытный программист. Не знаю, только стоит его рекламировать или нет.
Вращение части кубика: Удерживайте левую кнопку мыши и двигайте мышку в ту сторону, в которую хотите, чтобы вращался механизм. Прицелились мышкой в нужный квадратик, и далее удерживайте левую кнопку мыши и двигайте в ту строну, в которую хотите, чтобы он повернулся.
Клавиша 1: Запутать кубик
Клавиша 2: Собрать кубик

Кстати игру написал на Visual Studio 2012 приложение win32 С++. Голый WinAPI+OpenGL, без всяких помощников вроде GLUTа. Использованы стандартные библиотеки <gl\gl.h> <gl\glu.h>, которые не нуждаются в подкреплении современных ОС Windows. Также потому что функции из этой библиотеки грузятся с драйверами видеокарты. Поэтому приложение должно запускать без проблем.

Возможно, что со старыми видеокартами будут проблемы из-за отсутствия функций. Хотя использовал в рисовании glBegin()glEnd(), чтобы максимально заставить работать на всех ПК. Может случайно захватил другие функции, просто не проверял код и не убирал лишнее.
5
Миниатюры
Игра Кубик Рубик для Windows  
Вложения
Тип файла: rar KubikRubik.rar (75.8 Кб, 38 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2017, 09:14
Ответы с готовыми решениями:

Кубик-рубик
Решил написать программу по сборке кубика рубика для ленивых, идея состоит в...

Дорисовать кубик рубик
Господа требуется через canvas на форме нарисовать кубик рубик Лицевую часть...

Кубик Рубик в OpenGL - вращение
Недавно начал осваивать OpenGL, попытался сделать кубик рубика, но столкнулся с...

Кубик-рубик: реализовать управление мышью
Есть рабочая программа Кубик Рубика, помогите обработать управление мышью,...

Кубик рубик с разными цветами+подпись
в Pascal Срочно нужно, заранее спасибо!!

64
Fulcrum_013
1541 / 1187 / 138
Регистрация: 14.12.2014
Сообщений: 10,106
Завершенные тесты: 3
09.08.2017, 09:55 2
Ну смотрится довольно неплохо. Еще бы анимировать команду "собрать" и можно продавать как учебное пособие по сборке оного кубика
2
avporsk
53 / 32 / 13
Регистрация: 03.11.2016
Сообщений: 162
09.08.2017, 10:38 3
как то без конгратулейшен скучно собирать... собрал, а где же плюшка ?
но работает на ура
1
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
09.08.2017, 13:55  [ТС] 4
Цитата Сообщение от avporsk Посмотреть сообщение
как то без конгратулейшен скучно собирать... собрал, а где же плюшка ?
Мотивации нет наводить порядок. Эта игра для получения опыта в трехмерном рисовании.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну смотрится довольно неплохо.
Знаю, что можно было добавить сглаживание линий по смешению цветов пикселя, но эта функция появилась недавно на видеокартах. Поэтому с ней будут проблемы запуска программы на видяхах старее на 5 лет.
0
avporsk
53 / 32 / 13
Регистрация: 03.11.2016
Сообщений: 162
09.08.2017, 14:03 5
Цитата Сообщение от infobos Посмотреть сообщение
Клавиша 1: Запутать кубик
Меня вот что заинтересовало, поделись как запутанность кубика сделал, так чтоб он остался правильным, т.е. собрался потом?
Ведь если в реале кубик разобрать механически на запчасти, а потом его конструкцию собрать хаотично, то он с большой долей вероятности не соберется движениями, какой ни будь один угол окажется повернутым.

Значит и программно нельзя просто хаотично разбросать его элементы.
Как у себя это проверял, что за алгоритм ?
0
MansMI
1450 / 1159 / 550
Регистрация: 08.01.2012
Сообщений: 4,509
09.08.2017, 14:07 6
нашел на малахольном компе ХР, за Вин32 не считает
1
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
09.08.2017, 14:11  [ТС] 7
Цитата Сообщение от avporsk Посмотреть сообщение
Меня вот что заинтересовало, поделись как запутанность кубика сделал, так чтоб он остался правильным, т.е. собрался потом?
Ведь если в реале кубик разобрать механически на запчасти, а потом его конструкцию собрать хаотично, то он с большой долей вероятности не соберется движениями, какой ни будь один угол окажется повернутым.
Значит и программно нельзя просто хаотично разбросать его элементы.
Как у себя это проверял, что за алгоритм ?
Про правильную запутанность: Я об этом узнал еще в молодости(когда было лет 15), когда разбирал механически этот ручной кубик. Да и сам думал про это не раз. Действительно путать кубик как попало нельзя. Путать кубик нужно так как движется механизм.

В программе по кнопке 1 запускаются операции перестановки ячеек цветов так как это должно вращаться физически кубиком. Эти вращения происходят в случайном порядке.

То есть программно происходят правильные вращения частей кубика и выбор вращения выбирается случайно несколько раз.
0
avporsk
53 / 32 / 13
Регистрация: 03.11.2016
Сообщений: 162
09.08.2017, 14:16 8
Цитата Сообщение от infobos Посмотреть сообщение
программе по кнопке 1 запускаются операции перестановки ячеек цветов так как это должно вращаться физически кубиком. Эти вращения происходят в случайном порядке
эх... и не анимировал.... не доделал домашнее задание
0
_Develop
264 / 173 / 28
Регистрация: 24.01.2013
Сообщений: 529
09.08.2017, 15:03 9
infobos, хорошо получилось, еще интерфейс доделать и можно наверное в каком-нибудь стиме выставлять.)

Единственное замечание, когда захватил ряд и вращаешь мышкой в одном направление и чуть дернул в другом, то сразу идет вращение и в другой плоскости. Возможно если сделать так, что вот начал вращение в одной плоскости и все, а для вращения в другой плоскости нужно мышку отпустить и захватить куб по новой, может так будет "четче". Хотя это кому как, или нужно просто приспособиться...

З.Ы. под 32-битной системой не работает.
1
Fulcrum_013
1541 / 1187 / 138
Регистрация: 14.12.2014
Сообщений: 10,106
Завершенные тесты: 3
09.08.2017, 15:03 10
Цитата Сообщение от avporsk Посмотреть сообщение
эх... и не анимировал.... не доделал домашнее задание
ну да. а потом можно прокрутить в обратном порядке и получится сборка
0
avporsk
53 / 32 / 13
Регистрация: 03.11.2016
Сообщений: 162
09.08.2017, 15:15 11
Цитата Сообщение от _Develop Посмотреть сообщение
Единственное замечание, когда захватил ряд и вращаешь мышкой в одном направление и чуть дернул в другом, то сразу идет вращение и в другой плоскости. Возможно если сделать так, что вот начал вращение в одной плоскости и все, а для вращения в другой плоскости нужно мышку отпустить и захватить куб по новой, может так будет "четче". Хотя это кому как, или нужно просто приспособиться...
Вот присоединяюсь к выше высказавшемуся товарищу. Не четко выбирается сторона, которую хочешь крутнуть. По началу надо было приспособиться аккуратно мышкой работать чтоб верно стали крутиться стороны, и кубик ставил в более наглядное положение (полностью стороной в лицо) чтоб неоднозначности и ошибки выбора крутящейся стороны компенсировать. Если кубик в изометрии, углом в зрителя, то часто программа делала ошибки в выборе крутящейся стороны.

Круговые движения левой кнопкой мыши никак не обрабатываются ?

Добавлено через 6 минут
я пытался крутнуть кругом ту сторону на которую смотрю, не получилось, надо было провернуть кубик, так чтоб боковой пояс этой стороны виден был.
1
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
09.08.2017, 15:40  [ТС] 12
Цитата Сообщение от _Develop Посмотреть сообщение
Единственное замечание, когда захватил ряд и вращаешь мышкой в одном направление и чуть дернул в другом, то сразу идет вращение и в другой плоскости. Возможно если сделать так, что вот начал вращение в одной плоскости и все, а для вращения в другой плоскости нужно мышку отпустить и захватить куб по новой, может так будет "четче". Хотя это кому как, или нужно просто приспособиться...
Знаю про это! Исправил в обновление: KubikRubik2.exe
Цитата Сообщение от avporsk Посмотреть сообщение
Если кубик в изометрии, углом в зрителя, то часто программа делала ошибки в выборе крутящейся стороны.
Уменьшил чувствительность в два раза. Будет чуть меньше ошибок. Исправил в обновление: KubikRubik2.exe
Цитата Сообщение от avporsk Посмотреть сообщение
Круговые движения левой кнопкой мыши никак не обрабатываются ?
Я не понимаю о чем Вы? Но таких команд нет.
0
Вложения
Тип файла: rar KubikRubik2.rar (65.9 Кб, 9 просмотров)
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
09.08.2017, 15:52  [ТС] 13
Кому интересно, как устроено определение цветоиндексного метода определения точки курсора мыши.
Приготовил отладочный файл (KubikRubikOtladka.exe). Исходный код высылать не буду, так как в этом проекте использованы движки, которые были разработаны за деньги и много дорогих и умных алгоритмов были внедрены.
0
Вложения
Тип файла: rar KubikRubikOtladka.rar (66.8 Кб, 7 просмотров)
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
09.08.2017, 15:59  [ТС] 14
Цитата Сообщение от _Develop Посмотреть сообщение
З.Ы. под 32-битной системой не работает.
Очень интресно...
Я проверил на windows8 ОС 32 разрядная, правда процессор х64. -работает!
Приложение вроде под 32 разряда заточено.
Я изменил среду на VS2010 обновление на: KubikRubik2.rar ранее высылал. Может через VS2010 заработает.
0
_Develop
264 / 173 / 28
Регистрация: 24.01.2013
Сообщений: 529
09.08.2017, 16:28 15
infobos, У меня WinXP 32-bit второй системой стоит, KubikRubik2 проверил - работает,
а первый вариант выдает сообщение "программа не является 32-битным приложением", это сообщение всегда выдает, когда запускаешь 64-разрядные программы. Скорее всего Visual Studio 2012 у Вас компилирует под 64 разряда.

Под Win7 64-bit оба варианта работают нормально.
1
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
09.08.2017, 16:36  [ТС] 16
Цитата Сообщение от _Develop Посмотреть сообщение
infobos, У меня WinXP 32-bit второй системой стоит, KubikRubik2 проверил - работает,
а первый вариант выдает сообщение "программа не является 32-битным приложением", это сообщение всегда выдает, когда запускаешь 64-разрядные программы. Скорее всего Visual Studio 2012 у Вас компилирует под 64 разряда.
Спасибо!
Еще одна заметка для меня! Я в настройках VS2012 поставил на VS2010.Теперь буду знать что на XP можно запустить через настройку VS2010.

Добавлено через 2 минуты
Цитата Сообщение от MansMI Посмотреть сообщение
нашел на малахольном компе ХР, за Вин32 не считает
Проверьте обновленную: KubikRubik2.rar - выше выложил. У _Develop сработало на XP.
1
Fulcrum_013
1541 / 1187 / 138
Регистрация: 14.12.2014
Сообщений: 10,106
Завершенные тесты: 3
10.08.2017, 09:20 17
Цитата Сообщение от infobos Посмотреть сообщение
Еще одна заметка для меня! Я в настройках VS2012 поставил на VS2010.Теперь буду знать что на XP можно запустить через настройку VS2010.
Под x32 скомпилированное аки x64 не пойдет хоть на xp хоть на 10-ке. обычно делают 2 экзешки - одну под x32 другую под x64

Добавлено через 15 секунд
Цитата Сообщение от infobos Посмотреть сообщение
Еще одна заметка для меня! Я в настройках VS2012 поставил на VS2010.Теперь буду знать что на XP можно запустить через настройку VS2010.
Под x32 скомпилированное аки x64 не пойдет хоть на xp хоть на 10-ке. обычно делают 2 экзешки - одну под x32 другую под x64
1
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
10.08.2017, 09:26  [ТС] 18
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Под x32 скомпилированное аки x64 не пойдет хоть на xp хоть на 10-ке. обычно делают 2 экзешки - одну под x32 другую под x64
Была компиляция под х32. На XP не сработала настройка VS2012.
А как сделал вывод _Develop что это х64 для меня загадка. В прочем не особо сейчас важна эта тема. В программировании очень много вопросов и нет мотивации решать эти проблемы. Я маленький человек в этом деле. Для меня главное найти готовое решение для того, чтобы я мог программировать только логику программы. А какие там в глубине конфликты происходят это пусть решают хаккеры и крекеры.
0
Fulcrum_013
1541 / 1187 / 138
Регистрация: 14.12.2014
Сообщений: 10,106
Завершенные тесты: 3
10.08.2017, 10:45 19
Цитата Сообщение от infobos Посмотреть сообщение
А как сделал вывод _Develop что это х64 для меня загадка.
Очень просто. У x64 другой заголовок. вернее по тому адресу где точка входа для x32 лежит заглушка которая говорит что под x32 это работать не будет. так же было и при переходе с x16 на x32
Цитата Сообщение от infobos Посмотреть сообщение
Для меня главное найти готовое решение для того, чтобы я мог программировать только логику
программы.
Вы же говорили что вам важно чтобы на любой системе конечного пользователя запускалось . Этот вопрос кстати обычно решается инсталятором. 2 копии экзешки одна под х32 вторая под x64. Сам инсталятор под x32, ощупывает систему и выбирает какую версию ставить - x32 или x64. Ну это у продвинутых инсталяторов. у стандартных просто два пакета - один под x32 второй под x64, пользователь сам выбирает какой именно ставить.

Добавлено через 15 секунд
Цитата Сообщение от infobos Посмотреть сообщение
А как сделал вывод _Develop что это х64 для меня загадка.
Очень просто. У x64 другой заголовок. вернее по тому адресу где точка входа для x32 лежит заглушка которая говорит что под x32 это работать не будет. так же было и при переходе с x16 на x32
Цитата Сообщение от infobos Посмотреть сообщение
Для меня главное найти готовое решение для того, чтобы я мог программировать только логику
программы.
Вы же говорили что вам важно чтобы на любой системе конечного пользователя запускалось . Этот вопрос кстати обычно решается инсталятором. 2 копии экзешки одна под х32 вторая под x64. Сам инсталятор под x32, ощупывает систему и выбирает какую версию ставить - x32 или x64. Ну это у продвинутых инсталяторов. у стандартных просто два пакета - один под x32 второй под x64, пользователь сам выбирает какой именно ставить.
0
DenNik
Непрофессионал
2028 / 1552 / 308
Регистрация: 26.07.2011
Сообщений: 8,205
10.08.2017, 14:43 20
при запуске 8-9 раз выдает сообщение, но затем нормально работает
Название: Снимок.PNG
Просмотров: 36

Размер: 11.4 Кб
система
Игра Кубик Рубик для Windows
1
10.08.2017, 14:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2017, 14:43

Нарисовать кубик рубик с разными цветами
срочно нужны

Как сделан этот кубик рубик?
Как сделан этот кубик рубик? как сделаны эти стрелочки?

Нарисовать "кубик рубик"
помогите сделать задачу через модуль Graph, без анимаций просто нарисовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru