PDA

Просмотр полной версии : Что такое "питон"?



ASK83
11.03.2007, 13:34
А можно задать глупый вопрос: питон - это язык программирования или название движка цивы? Или может что-то другое? Просто я в программировании дуб и хотел бы знать что это такое.

Blacksun
11.03.2007, 16:16
<div class='quotetop'>Цитата(PeopleEqualShit * 11.3.2007, 13:34) 168646</div>

А можно задать глупый вопрос: питон - это язык программирования или название движка цивы? Или может что-то другое? Просто я в программировании дуб и хотел бы знать что это такое.
[/b]

Питон - это язык программирования. На модиках есть ссылки на учебник по Питону и на сам Питон.

В Циве используется дикая смесь из движка (практически вся графика, движение и т.д.)

Питона - основная надстройка управления движком.
СДК - усиление функций Питона
ХМЛ - База данных Цивы...

ASK83
11.03.2007, 18:06
Blacksun, спасибо за исчерпывающий ответ :worthy:

Solver
11.03.2007, 18:47
Ну в принципе это Питон усиляет СДК, а не наоборот. Полностью все правила игры, интеллект, итд. - в СДК. Включая такие основные понятия как клетки и города. Тем, кто не программисты, гораздо легче изучить Питон на достаточном уровне для внесения относительно простых модификаций, типа исчерпываемых ресурсов. Ну а через СДК осыществимо гораздо больше. Технически как раз функции Питона проходят через СДК, а конкретно классы, которые начинаются на Cy. И в СДК файлы, которые связывают Питон с основной системой игры.

Практический пример по всем трем. XML - в принципе база данных. Как-то использовать то, что в ней содержится, можно через Питон. А добавить новые поля - через СДК. Например, в одном из XML файлов находятся описания повышений юнитов. Типа повышений, который давал бы самолетам больший радиус действия, нет вообще. А в СДК можно добавить такое поле, следовательно далее его вписывая в XML.

Blacksun
11.03.2007, 21:42
<div class='quotetop'>Цитата(Solver * 11.3.2007, 18:47) 168685</div>

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

Практический пример по всем трем. XML - в принципе база данных. Как-то использовать то, что в ней содержится, можно через Питон. А добавить новые поля - через СДК. Например, в одном из XML файлов находятся описания повышений юнитов. Типа повышений, который давал бы самолетам больший радиус действия, нет вообще. А в СДК можно добавить такое поле, следовательно далее его вписывая в XML.
[/b]

Ох... Трудно конечно спорить с консультантами разработчиками, но, грустно как то. Все файлы, начинающиеся на Cy это просто передача функций, перечислений и т.д. в Питон... Т.е. получается, что почти любую функцию (но не все) можно вызвать из Питона... (Для чего это сделано - я не знаю, потому как Питоновских файлов гораздо меньше, чем файлов СДК. Кстати в СДК я видел только в одном месте передачу инфы из Питона. В остальных случаях - все с точностью до наоборот.
И даже больше... Есть чисто Питоновские классы и функции, которые очень сильно могут усилить интерфейс игры и могли бы позволить очень сильно упростить написание своих кодов, но... Для этого надо серьезно разобрать Питоновские файлы...
И еще. Многие функции СДК имеют флаг... Который в СДК выключен (false) и не изменяется, но... Функции сделаны (и выполняются) даже там, где не должны выпоняться (смотрел через дебагер) Значит этот флаг включается в Питоне...

Сам Питон серьезно - еще не разбирал, но, думаю, надо начинать с CvMainInterface.py... Хотя... - все готовится в СДК а через Питон выводится (через CvBase - которая огромна занимает большую часть динамической памяти и где больше всего утечки этой самой динамической памяти.)

Вот такое мое мнение.

Solver
11.03.2007, 23:22
Если совсем трезво, то передача данных между Питоном и СДК может быть в обоих направлениях. Я классы Cy рассматриваю именно как способ, как в СДК осуществить действия, вызванные из Питона. Вот запрашываешь в Питоне unit.getDamage() Код в CyUnit:

[code]
int CyUnit::getDamage()
{