Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2008, 00:15   #1
rumf
 
Аватар для rumf
 
Регистрация: 26.04.2008
Сообщений: 6
По умолчанию Delphi игра пятнашки

Игра пятнашки.Просмотрел много исходников, понял мало.
Решил что буду делать через линейный массив картинок.Создал record, в него входят x,y:integer(координаты) pic:TImage(изображении),onplace:boo lean(на своёмли месте картинка). Возник вопрос как создать весь этот массив картинок уже при работе программы?
Или вобще лучше подругому риализовать?

P.S: с делфи знаком совсем недавно.
дайвинг в програмирование!
rumf вне форума Ответить с цитированием
Старый 30.05.2008, 00:23   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

А что именно за пятнашки?
Есть код где появляется рожица по которой надо кликать...
Появляется в разных местах формы....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 30.05.2008, 00:26   #3
rumf
 
Аватар для rumf
 
Регистрация: 26.04.2008
Сообщений: 6
По умолчанию

нет ,классические, картинка поделина 15 квадратиков, выстроееные 5 на 5... один пустой, на место это пустого может вставать один из рядом стоящих квадратов, нужно сбрать картинку в нормальное состояние.
дайвинг в програмирование!

Последний раз редактировалось rumf; 30.05.2008 в 00:29.
rumf вне форума Ответить с цитированием
Старый 30.05.2008, 02:29   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Способов несколько, можно вручную имиджей накидать, можно динамически их создать. А можно и вовсе имиджи не трогать, а использовать вместо них TBitmap. Имиджи создавать больше кода, клик мыши на себе каждый имидж обрабатывает. Битмапы создать легче, но нужно обрабатывать нажатия мыши по всему полю и определять квадрат попадания, так как битмап это просто растр в памяти.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 30.05.2008, 02:42   #5
rumf
 
Аватар для rumf
 
Регистрация: 26.04.2008
Сообщений: 6
По умолчанию

ну я думаю что всётаки остановлюсь на имейдже....я просто непонимаю какой функцией их создавать, если я через цикл for напишу,именно сам синтаксис создания, как выглядит?
дайвинг в програмирование!
rumf вне форума Ответить с цитированием
Старый 30.05.2008, 19:15   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

для создания объектов предназначена специальная функция называемая конструктором(constructor). В Delphi она, как правило, называется Create, но может иметь и любое другое название.

Для визуальных компонентов создаваемых программно, необходимо также устанавливать свойство Parent.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.05.2008 в 19:21.
evg_m вне форума Ответить с цитированием
Старый 30.05.2008, 20:35   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от rumf Посмотреть сообщение
нет ,классические, картинка поделина 15 квадратиков, выстроееные 5 на 5... один пустой, на место это пустого может вставать один из рядом стоящих квадратов, нужно сбрать картинку в нормальное состояние.
Могу предложить основу для такой программы:
1. Массив 5х5 TBitmap.
2. Берётся картинка и режется на 25 частей. Заносится каждый кусок в массив.
3. Затем это отрисовывается на Image.

Далее надо написать процедуру, которая будет определять координаты клика и:
1. Определять к какому квадратику изображения принадлежит.
2. Найти рядом пустую клетку.
3. Переместить туда изображение если такое место есть.
4. Проверить не собранна ли картинка.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 30.05.2008, 20:54   #8
rumf
 
Аватар для rumf
 
Регистрация: 26.04.2008
Сообщений: 6
По умолчанию

[Кртинку давно порезал на кусочки 73х73 пикселя(25 штук), Я думаю проще будет линейный масив, а в элементах 5, 10, 15 обнулять координаты X и увеличивать на 73 координаты Y... А вот как определить координы ты клика??

то что припомощи конструктора я понял ещё из хелпа, каак это в коде выглядить?напишите этот отрывок текста))
дайвинг в програмирование!
rumf вне форума Ответить с цитированием
Старый 30.05.2008, 21:23   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

f:=TImage.Create(x);
f.parent:=xx;
f.onClick:=myclickevent;

вместо f ,x,xx myclickenvent свои описания поля переменные

еще есть такая функция GetControlAtPos
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.05.2008 в 21:28.
evg_m вне форума Ответить с цитированием
Старый 30.05.2008, 21:52   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Если ты будешь использовать имиджи, то координаты клика тебе не нужны, каждый имидж будет обрабатывать клик на себе.
Имидж нужно создать, назначить ему родителя, назначить процедуру на клик.
Вот здесь >>> есть исходник простой игры, в нем то, что тебе нужно. Только качай мою версию, я там ошибки поисправлял.

p.s. А битмапы все таки лучше )
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Игра "Угадай число" Bomber Помощь студентам 15 05.06.2008 09:34
Игра озеро на Delphi, нужна небольшая помощь Serega123 Помощь студентам 11 03.06.2008 16:00
Игра "ЛОГИКА" (в Delphi) KingArthur Gamedev - cоздание игр: Unity, OpenGL, DirectX 15 22.04.2008 11:37
Игра "ЛОГИКА" (в Delphi) KingArthur Помощь студентам 5 18.04.2008 19:12
игра S.T.A.L.K.E.R. rpy3uH Свободное общение 7 10.04.2007 00:17