Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/39: Рейтинг темы: голосов - 39, средняя оценка - 4.69
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83

Как лучше всего реализовать игру пятнашки?

18.11.2011, 18:56. Показов 8071. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне хотелось бы услышать советы по реализации такой игры. Интересует вопросы, как лучше сделать графическую часть? У меня есть идея по поводу создания на форме 16 кнопок, с возможностью загрузки в них картинок. Или есть более рациональные вариант? (Какой компонент использовать?).И по самой проге. Создвать двумерный массив 4х4 и все поля заполнить цифрами от 1 до 15 , а пустое поле оставить равным нулю, и после тапа на кнопку проверять, есть ли пустое поле рядом и менять их местами?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2011, 18:56
Ответы с готовыми решениями:

Как лучше реализовать игру морсокой бой?
Как лучше реализовать игру морсокой бой? Как нарисовать поле 10 на 10 клеток

Как лучше всего реализовать настройки в программе?
Хочу грамотно сделать настройки для своей программы. Сейчас примерно так: программа создаёт объект класса Settings, там пользователь...

Что лучше всего читать/смотреть где лучше всего практиковаться и как в принципе лучше всего учиться программированию
Здравствуйте,извините за вопрос не по теме но: уже около пол года изучаю С языки и начал понимать что я упустил некоторые моменты,не...

57
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
19.11.2011, 21:37  [ТС]
Студворк — интернет-сервис помощи студентам
Окей, я понял) Сейчас попробую) Спасибо)

Добавлено через 20 минут
И еще простенький вопрос, как очистить некую часть формы , если я все рисовал канвой?
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
19.11.2011, 22:03
Цитата Сообщение от Saub Посмотреть сообщение
И еще простенький вопрос, как очистить некую часть формы , если я все рисовал канвой?
Об использовании Canvas можешь почитать тут: Класс TCanvas.
ИМХО лучше всего очищать через WinApi:
C++
1
2
PatBlt(Canvas->Handle,X0,Y0,X1,Y1,WHITENESS);
// закрасит на форме квадрат белым цветом по координатам.
1
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 10:00  [ТС]
я про класс TCanvas как раз и прочитал сегодня, без него бы не нарисовал я ничего.Спасибо.

Добавлено через 31 минуту
эм, а цвет обязательно белый или можно использовать стандартные цвета?

а все нашел)

Добавлено через 11 часов 9 минут
А как-нибудб можно очистить форму так, чтобы там остался стандартный фон, который был под картинкой?
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 10:03
Цитата Сообщение от Saub Посмотреть сообщение
А как-нибудб можно очистить форму так, чтобы там остался стандартный фон, который был под картинкой?
Прорисовывать повторно перед остальным, либо прорисовку "пятнашек" производить на Bitmap'е какого-нить TImage, либо использовать TPaintBox.
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 11:34  [ТС]
эм, если я в качестве фона загружу в Image какое-нибудь изображение, то как мне потом очистить, чтобы остался фон в Image?
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 11:39
Перед прорисовкой элементов, вызвать Repaint() у Image.
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 11:51  [ТС]
Хорошо, спасибо, я посмотрю.
P.S. Игру я написал, она вроде работает, осталось дизайн попроавить)

Добавлено через 9 минут
хм, я загрузил фон, но когда перерисовывваю поле, у меня ничего не происходит...
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 11:58
Так стоп... все-таки 2 суток на ногах дают о себе знать. Image нельзя использовать как фон, если вы на канве формы рисовкой занимаетесь (кроме использования WinApi, ему побоку он и на асфальте будет рисовать, если пропишите его хендл), Image просто все потрет своим величием. А вот наоборот милости просим. Но я бы рекомендовал просто на канве вначале фон рисовать (Canvas->Draw(0,0,Изображение). ), а потом прорисовывать ваши элементы.
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 12:10  [ТС]
Сейчас посмотрю.

Добавлено через 8 минут
Сделал как в ссылке, которую Вы давали, но в итоге пишет, что не удается найти указанный файл либо просто не загружает изображение.
Code
1
2
3
Graphics::TBitmap* bit=new Graphics::TBitmap;    
bit->LoadFromFile("F:\\bitmap.bmp");      
Canvas->Draw(0,0,bit);
Добавлено через 1 минуту
В итоге просто не рисует..
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 12:11
Draw не прорисовыет BMP, используйте JPEG.
Так, все я кончился
Путь у вас не правильный был. А не прорисовывает видимо из-за того, что перекрываете его чем-то.
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 12:24  [ТС]
эм, так, спасибо)

Добавлено через 7 минут
омг, почему путь не верный???
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 12:27
Цитата Сообщение от Saub Посмотреть сообщение
омг, почему путь не верный???
А почему птицы летают? Либо нужно проверить существует ли ваш битмап, либо параметр загрузки изображения не AnsiString и тогда нужно добавить символ окончания строки "\0";
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 12:31  [ТС]
аа, путь верный и /0 не помог(
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 12:32
Эх. Ошибку в студию.
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 12:38  [ТС]
Code
1
2
3
Graphics::TBitmap* bit=new Graphics::TBitmap;
bit->LoadFromFile("F:\\1.jpeg");
Canvas->StretchDraw(Rect(0,0,500,500),bit);
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 12:45
Цитата Сообщение от Saub Посмотреть сообщение
Code
1
2
3
Graphics::TBitmap* bit=new Graphics::TBitmap;
bit->LoadFromFile("F:\\1.jpeg");
Canvas->StretchDraw(Rect(0,0,500,500),bit);
Офигительная проверка зрения У меня все находит, только ругается на то, что я пытаюсь в Битмап JPEG засунуть. А в вашем случае зуб даю, что файл называется "1.jpg".
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 12:59  [ТС]
да) 1.jpg, а должен быть 1.jpeg?

Добавлено через 38 секунд
1.jpg не открывает

Добавлено через 34 секунды
Bitmap image is not valid
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 12:59
Цитата Сообщение от Saub Посмотреть сообщение
да) 1.jpg, а должен быть 1.jpeg?
Если используете TBitmap, то должен быть BMP
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
20.11.2011, 13:04  [ТС]
а в bmp банально не рисует

Добавлено через 1 минуту
А какой нужен класс для загрузки jpeg?
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.11.2011, 13:05
Цитата Сообщение от Saub Посмотреть сообщение
а в bmp банально не рисует
Опять переходим к коду. Маленький фрагмент прорисовка BMP + что-нибудь из ваших элементов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2011, 13:05

Реализовать игру в пятнашки с консольным текстовым интерфейсом
Ребята. добрый день Нужна помощь. Реализовать игру в пятнашки с консольным текстовым интерфейсом на С#

Как лучше реализовать игру стандартными средствам SDK?
Пример игры на флеш во вложениях скинул

Как лучше всего реализовать данный слайдер
Всем доброго времени суток. Возник такой вопрос: как лучше всего реализовать данный слайдер??? Большим черным кругом обведен фон он...

Как лучше всего реализовать подключение к БД MySQL?
Я бы хотел спросить, как лучше всего реализовать подключение к БД? Сейчас я работают чисто возможностями интерфейса "средства -...

Как лучше всего реализовать такую задачу?
Есть 20 чекбоксов, и нужно сделать так что бы возможность клика по каждому чекбоксу зависила от того выбран ли предыдущий, то есть хочу...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru