Форум: Медико-психологические вопросыСам себе юристО Жизни и про Жизнь
Новые темы: 000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

О Жизни и про Жизнь

Выбрать другой skin

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Концепции программирования. Модель взаимодействия.
 
 автор: Borec   (26.03.2009 в 19:33)   письмо автору
 
 

Концепции программирования. Модель взаимодействия.

Работая с 1С я освоил статическую модель взаимодействия, когда программа совершает определенную последовательность действий после того, как задействован один из обрабочиков. До этого и после выполнения этой последовательности, она не подает никаких признаков жизни.

Хотелось бы узнать, каким образом устроены динамические программа, ну пусть на примере "Арканоида"(такой древнючей игрушки где внизу экрана палочка бегает, а сверху шарик такой об стенку тычится).

Если несложно, то можно это как то описать человеческим языком ?

Ну может вам мой вопрос покажется странным и не понятно, почему я раньше этого не знал, но реально, у меня такой способ познания, я сперва должен концепцию понять, а потом остальное на ее основе достраивать.

  Ответить  
 
 автор: cheops   (26.03.2009 в 20:40)   письмо автору
 
   для: Borec   (26.03.2009 в 19:33)
 

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

  Ответить  
 
 автор: Borec   (26.03.2009 в 21:22)   письмо автору
 
   для: cheops   (26.03.2009 в 20:40)
 

Ну незнаю, у меня форма открылась, чет в ней поменяли или ничего не меняли, и закрыли. А вот как игры в этом смысле устроены ?

  Ответить  
 
 автор: cheops   (26.03.2009 в 21:33)   письмо автору
 
   для: Borec   (26.03.2009 в 21:22)
 

Форма у вас открылась по щелчку мыши - этот щелчек является событием, т.е. в программе или в операционной систем работает бесконечный цикл, который проверяет не нажал ли оператор кнопку мыши. Обычно этот цикл-обработчик скрыт и вам предоставляется писать функции, которые вызываются, когда событие срабатывает. Игры штука достаточно сложная, там приходится самостоятельно реализовывать цикл обработки событий - вводить собственные события. Т.е. создаете цикл с обработкой событий, дальше начинается то же самое, что у вас - разработка процедур реакций на события.

PS Впрочем в последние годы разработчикам игр даже этого делать не приходится, они используют готовые движки с готовым циклом-обработчиком.

  Ответить  
 
 автор: Borec   (26.03.2009 в 21:51)   письмо автору
 
   для: cheops   (26.03.2009 в 21:33)
 

Ну а морфологически описать "Арканоид" ? Как он устроен, не вдаваясь в технику дела ?

  Ответить  
 
 автор: cheops   (26.03.2009 в 22:16)   письмо автору
 
   для: Borec   (26.03.2009 в 21:51)
 

Опишите сначала морфологически что вам знакомо, например, 1С. Задача немного необычная, нужна вводная.

  Ответить  
 
 автор: Borec   (26.03.2009 в 22:29)   письмо автору
 
   для: cheops   (26.03.2009 в 22:16)
 

Ну это звучало бы примерно так.

Методом "круг" библиотеки "граф.аш" рисуется круг небольшого диаметра. Ему присваивается метод "двигайся"... вобщем я не понимаю, как это работает, оттого трудно что либо сочинить.

Не понятно, как он будет двигаться, почему он будет взаимодействовать со стенками и битой. Ну вобщем как-то так.

  Ответить  
 
 автор: cheops   (26.03.2009 в 22:40)   письмо автору
 
   для: Borec   (26.03.2009 в 22:29)
 

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

  Ответить  
 
 автор: Borec   (26.03.2009 в 22:42)   письмо автору
 
   для: cheops   (26.03.2009 в 22:40)
 

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

Жуткий "геморрой", а проще нельзя ? К тому-же я не понял, что стоит за фразой "выбираем вектор движения", да и со скоростью движения непонятно.

Поидее в некоторых старых играх скорость зависила от быстродействия процессора (я еще застал такие времена).

  Ответить  
 
 автор: cheops   (26.03.2009 в 22:47)   письмо автору
 
   для: Borec   (26.03.2009 в 22:42)
 

Нет, проще нельзя, игры - это хорошая математика, а если вы программируете трехмерные игры, ещё и физика и высшая алгебра. В игрушки только играть приятно - создавать их - ещё та работенка. Наряду с СУБД - это одно из самых сложных направлений в программировании.

  Ответить  
 
 автор: Borec   (26.03.2009 в 22:52)   письмо автору
 
   для: cheops   (26.03.2009 в 22:47)
 

>Нет, проще нельзя, игры - это хорошая математика, а если вы программируете трехмерные игры, ещё и физика и высшая алгебра. В игрушки только играть приятно - создавать их - ещё та работенка. Наряду с СУБД - это одно из самых сложных направлений в программировании.

А сами СУБД сложно писать или приложения на основе СУБД сложно писать ?

  Ответить  
 
 автор: cheops   (26.03.2009 в 22:57)   письмо автору
 
   для: Borec   (26.03.2009 в 22:52)
 

Сами СУБД, приложения на основе СУБД писать - просто праздник, настолько все просто и приятно (SQL правда нужно знать и чуть-чуть администрировать СУБД уметь).

  Ответить  
 
 автор: Borec   (26.03.2009 в 22:59)   письмо автору
 
   для: cheops   (26.03.2009 в 22:57)
 

>Сами СУБД, приложения на основе СУБД писать - просто праздник, настолько все просто и приятно (SQL правда нужно знать и чуть-чуть администрировать СУБД уметь).

Ну вы то их не пишете, не писали и писать не будете. Чего вам волноваться то ? :)

  Ответить  
 
 автор: cheops   (26.03.2009 в 23:20)   письмо автору
 
   для: Borec   (26.03.2009 в 22:59)
 

>Ну вы то их не пишете, не писали и писать не будете. Чего вам волноваться то ? :)
Да собственно программирование - это не повод для волнения :))) СУБД действительно разрабатывать пока не собирался, предпочитаю пользоваться готовыми, как и добрые 98% остальных программистов.

  Ответить  
 
 автор: Borec   (26.03.2009 в 23:21)   письмо автору
 
   для: cheops   (26.03.2009 в 23:20)
 

>Да собственно программирование - это не повод для волнения :)))

Для меня таки повод, как вы могли заметить.

Эх, пора анализы крови и мочи засылать :)))

  Ответить  
 
 автор: Borec   (26.03.2009 в 22:33)   письмо автору
 
   для: cheops   (26.03.2009 в 22:16)
 

>Опишите сначала морфологически что вам знакомо, например, 1С. Задача немного необычная, нужна вводная.

1С я бы мог описать, но писать пришлось-бы очень много. Начал-бы с метаданных, что это такое, что такое атрибуты и реквизиты, как они связаны с формой. Как задаются методы и их обработчики. Показал бы простенький пример вывода строки в панель вывода.

Попросил-бы обучаемого сделать форму с кнопкой, на нее подвесить кусок кода с методом "сообщить" . Таким способом, он бы осознал что программа ему послушна, а он создал нечто вполне вменяемое.

  Ответить  
 
 автор: cheops   (26.03.2009 в 22:44)   письмо автору
 
   для: Borec   (26.03.2009 в 22:33)
 

Хм... если описывать как писать такую игру на DirectX тоже сначала придется объяснить как работает DirectX. Почему книги по конкретным языкам программирования и библиотекам так популярны.

В книгах по 1С тоже не описывается как стать классным высокооплачиваемым главным бухгалтером, как отмывать деньги и выплачивать серую зараплату, чтобы все было шито крыто.

  Ответить  
 
 автор: Borec   (26.03.2009 в 22:51)   письмо автору
 
   для: cheops   (26.03.2009 в 22:44)
 

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

Аналогия, конечно еще та, но lol :)

Да как, как ее выплачивать ? Деньги отмывать, вот как :) Потом минимизировать прибыль за счет фиктивных заказов от фирмы-однодневки чтоб налогов не платить.

Потом жалко директора, получается, что он с главбухом и финдиректором "повязан". У нас в одном месте финдиректорша такая афца была, мне при общении с ней все время ей пинка хотелось дать, вот честное слово, а фиг ее выгонишь - слишком много знает ! Бедный директор :(

  Ответить  
вверх
Консультации от известных специалистов и авторов многих книг