Последние записи
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
27th
Мар
Fortress 2. Новая серия игр. Конкурс на создание лучшего ИИ
Предлагаю начать новый конкурс на создание лучшего бота для игры Fortress 2. Нет, это не стрелялка, это моя разработка.
27th
Сен
Итоги третьего этапа конкурса программистов.
Сегодня 26 сентября, итоги третьего этапа заставили себя ждать более чем 10 дней. Пришло время подведения итогов третьего этапа конкурса на создание лучшего бота для игры Fortress 2. В третьем этапе участвуют только два бота.
MakpoBupyc (Somebody)
Crusader v2.3.1 (rpy3uH)
Выясним кто же из них сильнее.
Crusader v2.3.1 vs MakpoBupyc
Первый игрок : Crusader v2.3.1
Второй игрок : MakpoBupyc
Количество игр: 100000
Crusader v2.3.1 : количество побед 63475
MakpoBupyc : количество побед 36302
Количество ничей 223
Crusader v2.3.1 : количество ошибок 0
MakpoBupyc : количество ошибок 13482
Выиграл Crusader v2.3.1 но это не выигрыш. так как MakpoBupyс ошибался в 13% игр. Если не учитывать эти 13% как победы, и предположить что они были бы сыграны в ничью, то Crusader будет иметь 50% против 36% у MakpoBupyc. Попробуем теперь игру без перемены игроков местами.
Crusader v2.3.1 vs MakpoBupyc
Первый игрок : Crusader v2.3.1
Второй игрок : MakpoBupyc
Количество игр: 10000
Crusader v2.3.1 : количество побед 6413
MakpoBupyc : количество побед 3538
Количество ничей 49
Crusader v2.3.1 : количество ошибок 0
MakpoBupyc : количество ошибок 0
MakpoBupyc vs Crusader v2.3.1
Первый игрок : MakpoBupyc
Второй игрок : Crusader v2.3.1
Количество игр: 10000
MakpoBupyc : количество побед 3753
Crusader v2.3.1 : количество побед 6246
Количество ничей 1
MakpoBupyc : количество ошибок 2484
Crusader v2.3.1 : количество ошибок 0
Играя первым, Crusader v2.3.1 уверенно выигрывает, при этом MakpoBupyc играет без ошибок. Если же MakpoBupyc играет первым, то он начинает ошибаться в 24% случаев. Если не учитывать эти ошибки и считать что эти игры были бы сыграны в ничью, то можно процент побед Сrusader равен 48% против 37% у MakpoBupyc, а это уже не такая убедительная победа. Тем не менее даже без учёта ошибок Crusader v2.3.1 оказывается чуть более сильным.
Подытожим все результаты и составим итоговый список четырёх сильнейших ботов игры Fortress 2. Четыре сильнейших бота игры: MakpoBupyc, Alar_v2.61, Crusader v2.3.1 и JDredd.
MakpoBupyc vs Alar_v2.61
Первый игрок : MakpoBupyc
Второй игрок : Alar_v2.61
Количество игр: 10000
MakpoBupyc : количество побед 10000
Alar_v2.61 : количество побед 0
Количество ничей 0
MakpoBupyc : количество ошибок 0
Alar_v2.61 : количество ошибок 0
MakpoBupyc vs JDredd
Первый игрок : MakpoBupyc
Второй игрок : JDredd
Количество игр: 10000
MakpoBupyc : количество побед 10000
JDredd : количество побед 0
Количество ничей 0
MakpoBupyc : количество ошибок 0
JDredd : количество ошибок 0
Новый MakpoBupyc сильнее чем JDredd и Alar_v2.61. Игру Crusader v2.3.1 vs MakpoBupyc для общего рейтинга ботов будем расценивать как ничью. MakpoBupyc получает два очка за победу над JDredd и Alar_v2.61 и 0.5 очка за ничью с Crusader v2.3.1. В сумме у MakpoBupyc’а 2.5 очков.
Crusader v2.3.1 vs JDredd
Первый игрок : Crusader v2.3.1
Второй игрок : JDredd
Количество игр: 10000
Crusader v2.3.1 : количество побед 1314
JDredd : количество побед 8686
Количество ничей 0
Crusader v2.3.1 : количество ошибок 0
JDredd : количество ошибок 0
Crusader v2.3.1 vs Alar_v2.61
Первый игрок : Crusader v2.3.1
Второй игрок : Alar_v2.61
Количество игр: 10000
Crusader v2.3.1 : количество побед 9327
Alar_v2.61 : количество побед 671
Количество ничей 2
Crusader v2.3.1 : количество ошибок 0
Alar_v2.61 : количество ошибок 0
Crusader v2.3.1 получает 1.5 очка за победу над Alar_v2.61 и ничью с MakpoBupyc.
JDredd vs Alar_v2.61
Первый игрок : JDredd
Второй игрок : Alar_v2.61
Количество игр: 10000
JDredd : количество побед 0
Alar_v2.61 : количество побед 10000
Количество ничей 0
JDredd : количество ошибок 0
Alar_v2.61 : количество ошибок 0
Alar_v2.61 получает 1 очко за победу над JDredd. Всем остальным он проигрывает. JDredd получает 1 очко за победу над Crusader v2.3.1. Всем остальным он проигрывает. В итоге у MakpoBupyc’а 2.5 очка, Crusader v2.3.1 получает 1.5 очка, Alar_v2.61 и JDredd по одному очку.
В третьем этапе побеждает Crusader v2.3.1 с минимальным отрывом.
Итоговый рейтинг ботов для игры Fortress 2.
Первое место – MakpoBupyc
Второе место – Crusader v2.3.1
Третье место – Alar_v2.61 и JDredd
От автора (rpy3uH):
На всём протяжении конкурса самым сильным ботом я считал MakpoBupyc’а. Somebody всегда являлся самым сильным противником конкретно для меня.
Скачать Fortress 2 build 2068 и ботов участвовавших в третьем этапе.
5th
Сен
Отчет по конкурсу программистов
Сайт – http://pkonkurs.ru/
1 конкурс проходил в 1 этап
Обсуждение http://programmersforum.ru/showthread.php?t=81296
Результаты http://pblog.ru/?p=702
Участников было 5 – 2 первых места награждались.
2 Конкурс проходит в 3 этапа.
Были найдены спонсоры и выделено призовые – футболки и толстовка от printdirect.ru
Более 3000 рублей от mixmarket.ru, onegadget.ru, programmersforum.ru.
15 июля
Обсуждение – http://programmersforum.ru/showthread.php?t=92365
Результаты – http://pkonkurs.ru/Первая-битва-Результаты/
Участников было 6 – все 6 были награждены разными призами – футболка + 1000 рублей призовых
15 августа
Обсуждение – http://programmersforum.ru/showthread.php?t=107618
Результаты – http://pkonkurs.ru/Вторая-битва-Результаты/
Участников было 7 – 3 старых бота и 4 новых. Новые боты были доработаны и обучены побеждать старых и потому заняли все призовые места. Призы – толстовка + 2 майки + 100 рублей.
15 сентября
Обсуждение – http://programmersforum.ru/showthread.php?t=110428
Ждем еще несколько ботов и разыгрываем почти 2000 рублей.
Первое место 500 далее 400, 300, 200 и по 100 рублей всем кто пришлет ботов, которые победят симпл бота – простого бота.
География участников и победителей
Итоги и выводы
Конкурс оказался довольно сложным и потому не каждый смог или не захотел в нём принимать участие. После первого конкурса были продемонстрированы боты которых довольно сложно победить, потому присылались только – продвинутые боты, которые легко обыгрывали простых ботов поставлявшихся со сборкой.
Я как участник потратил по 2 дня на написание каждого нового бота. И с пятого места продвинулся на первое во втором этапе, что приятно. Выделенный мной на конкурс спонсорский взнос – постепенно возвращается
Также была создана витрина с клубными футболками – http://programmersforum.printdirect.ru/
После получения призов жду отзывы о продукции и печати и при хорошей оценке – оставлю эту ссылку в навигации и на следующее лето разработаем новые дизайны.
И последнее – на всех сайта клуба была встроена реклама от mixmarket.biz, в планах запуск каталога.
2nd
Июл
Игра Fortress 2. Создание лучшего бота – призовой фонд 5000 рублей!
Здравствуйте читатели нашего журнала. Сегодня мы хотим напомнить вам, что продолжается прием заявок на участие в конкурсе по созданию лучшего бота для игры в Fortress2 с денежным призом. Организатор конкурса – Форум программистов www.programmersforum.ru.
Игра Fortress 2. Создание лучшего бота – призовой фонд 5000 рублей!
Аблязов Руслан
by rpy3uH http://www.programmersforum.ru/member.php?u=11
* Комментарий автора
Для тех, кто не в курсе: бот представляет собой DLL с тремя экспортируемыми функциями. Документация по созданию бота находится в файле Fortress 2 Bot Specification
Скачать Fortress 2 build 2025 beta + Документация + исходник SimpleBot v1.0 http://programmersforum.ru/attachment.php?attachmentid=23688&d=1270876754
Скачать исходники SimpleBot v1.0 на С++ (CodeBlocks+MinGW) http://programmersforum.ru/attachment.php?attachmentid=23689&d=1270876964
Скачать документацию по созданию ботов http://pkonkurs.ru/wp-content/uploads/2010/06/Fortress-2-Bot-Specification.zip
Скачать исходник бота на С++ (CodeBlocks+MinGW) http://pkonkurs.ru/wp-content/uploads/2010/06/SimpleBotCpp.zip
Исходник бота на Delphi поставляется в комплекте с игрой.
Почему надо участвовать в этом конкурсе?
Во-первых, это интересно, вы можете поучаствовать в конкурсе, где не нужно загружать данные из текстового файла и сохранять их туда! Во-вторых, можно получить денежный приз, толстовку или футболку от клуба. В-третьих, вы получите опыт в создании ИИ для игры, и сможете сказать «Я разрабатывал бота для игры!»
Призы как денежные – 3000 рублей, так и сувениры от клуба на 2000 рублей. Конкурс расчитан на 2-4 месяца. Первая битва ботов состоится 15 июля 2010 года.
Ключевые понятия игры
Итак, вы хотите написать бота для этой игры, но не знаете как. Что пригодится для написания бота для игры:
1. Компилятор, который позволяет компилировать DLL файлы и разумеется знание языка этого компилятора
2. Знание правил игры
3. Знание, какие функции должны присутствовать в DLL, для того чтобы бот смог работать
С компилятором я думаю, проблем не будет он может быть любой, главное условие, чтобы он смог компилировать функции по соглашению stdcall. Сначала поясню как вообще происходит игра. играют двое, у каждого игрока есть база, есть три типа ресурсов, есть щит, есть проекты. Проекты бывают разные: атака вражеской базы, развитие своей базы, ремонт базы, шпионаж. Всего проектов 50. В начале игры игрок выбирает 15 проектов, которыми он будет играть. Потом игроки по очереди выбирают проекты, игрок может выбрать только тот проект, на который хватает ресурсов. Проигрывает то
т игрок, броня базы которого станет равной нулю.
Какова ее физика с точки зрения ботописателя? Читаем внимательно!
Мы выбираем двух ботов и нажимаем начать игру, ядро игры вызывает функции StartGame ботов участвующих в игре. Задача функции StartGame это выбор набора проектов, которыми будет играть бот, набор проектов надо сохранить в массиве, указатель на который будет передан функции StartGame. Проекты задаются числами (полный набор проектов указан в документации). После выбора проектов начинается игра. В ходе игры по очереди вызываются функции GetTurn каждого бота. В случае, если боту недоступен ни один проект, то функция GetTurn вызывается с нулевым указателем на массив доступных пр
оектов. В конце игры еще раз вызывается функция StartGame с нулевым указателем на массив проектов. Нулевой указатель на массив свидетельствует о том, что происходит уведомление бота о конце игры.
Количество ресурсов (энергия, металл, электроэлементы) зависит от количества объектов их добывающих (батареи, рудники, лаборатории). Количество батарей и рудников у врага можно уменьшить используя специальные шпионские-проекты. Внимание, нововведение в Fortress 2 : введено ограничение на количество лабораторий. По-умолчанию оно равно 5. Как только броня базы становится больше 50, к лимиту прибавляется одна лаборатория за каждые 5 единиц брони свыше 50. Например:
Base = 30, LabLimit = 5;
Base = 54, LabLimit = 5;
Base = 56, LabLimit = 6;
Base = 63, LabLimit = 7;
Base = 75, LabLimit = 8;
Base = 81, LabLimit = 9;
И т.д.
В случае использования проектов, которые увеличивают количество лабораторий и при этом уже достигнут лимит количества лабораторий, проект считается использованным (ресурсы расходуются), а количество лабораторий не изменяется.
Отличия от первой версии игры
1. Добавлены уведомления о пропуске хода и о конце игры и ее результатах
2. Бот может узнать имя противника (см. структуру TAdditionalGameInfo)
Возможности улучшения бота
Покажем, как можно изменить игру бота SimpleBot v1.1 в лучшую сторону, всего лишь добавив несколько строчек кода. Итак, приступим. Для разнообразия будем писать на C++. Что мы сделаем в первую очередь? Изменим набор проектов. Смотрим строку в коде, которая содержит список проектов [1, 2]:
const int Projects[MaxProjectsToPlayer] = {5, 6, 11, 13, 16, 18, 20, 28, 33, 34, 35, 44, 45, 46, 50};
Что тут можно изменить? В принципе можно тут изменить все, но заморачиваться мы не будем, просто удалим проект номер 50 и вставим (29) СуперАтака 2. En 16, Me 14, El 6 : Base-20, Shield-15. В итоге получаем такой список проектов:
const int Projects[MaxProjectsToPlayer] = {5, 6, 11, 13, 16, 18, 20, 28, 29, 33, 34, 35, 44, 45, 46};
Теперь смотрим функцию хода бота:
if (!aAvailProjects) return 0;
int OPP = GetOtherPlayer(aPlayerNumber);
if ((IsProjectAvail(20,aAvailProjects)) and
(aGame[aPlayerNumber].Base<25))
return 20;
if ((IsProjectAvail(18,aAvailProjects)) and
(aGame[aPlayerNumber].Base<20))
return 18;
if ((IsProjectAvail(16,aAvailProjects)) and
(aGame[aPlayerNumber].Shield<5))
return 16;
Первые две строки это проверка на уведомление о пропуске хода и получение индекса противника. Потом идет проверка доступности проектов 20, 18, 16:
(16) Ремонт 2. En 9, El 2 : SS+10
(18) Ремонт 4. Me 7, El 2 : SB+9
(20) Ремонт 6. Me 8, El 5 : SB+12
т.е. у бота приоритет : сначала проверить состояние базы, если состояние плохое выбираем ремонтный проект. изменять здесь ничего не будем. Смотрим далее. Далее идут при проверки и использование проектов увеличения количества батарей, рудников и лабораторий:
if (IsProjectAvail(34,aAvailProjects) and
(aGame[aPlayerNumber].Mines<3) and
(aGame[aPlayerNumber].Base>35) and
(aGame[aPlayerNumber].Shield>2))
return 34;
if (IsProjectAvail(33,aAvailProjects) and
(aGame[aPlayerNumber].Battery<4) and
(aGame[aPlayerNumber].Base>35) and
(aGame[aPlayerNumber].Shield>2))
return 33;
if (IsProjectAvail(35,aAvailProjects) and
(aGame[aPlayerNumber].Labs<3) and
(aGame[aPlayerNumber].Base>35) and
(aGame[aPlayerNumber].Shield>2))
return 35;
т.е. если состояние базы нормальное то можно увеличить количество батарей, рудников и лабораторий. Но как видно что количество батарей, рудников и лабораторий будет не больше 4,3,3 соответственно. Эти строчки мы менять не будем, добавим дополнительные строчки отвечающие за усиленное развитие базы
if (IsProjectAvail(34,aAvailProjects) and
(aGame[aPlayerNumber].Mines<6) and
(aGame[aPlayerNumber].Base>45) and
(aGame[aPlayerNumber].Shield>10))
return 34;
if (IsProjectAvail(33,aAvailProjects) and
(aGame[aPlayerNumber].Battery<7) and
(aGame[aPlayerNumber].Base>45) and
(aGame[aPlayerNumber].Shield>10))
return 33;
if (IsProjectAvail(35,aAvailProjects) and
(aGame[aPlayerNumber].Labs<5) and
(aGame[aPlayerNumber].Base>45) and
(aGame[aPlayerNumber].Shield>5))
return 35;
Теперь количество батарей, рудников и лабораторий будет увеличиваться до 7,6,5 соответственно. Развитие базы будет осуществляться только в том случае если состояние базы очень хорошее.
В набор проектов мы добавили проект номер 29, вопрос куда вставить его обработку чтобы не ухудшить игру бота. После проверок на развитие базы есть такие строки
if (IsProjectAvail(46,aAvailProjects)) return 46;
if (IsProjectAvail(28,aAvailProjects)) return 28;
в первую очередь обрабатывается наличие проекта номер 46 а потом 28. Вставим проверку проекта номер 29 между ними.
if (IsProjectAvail(46,aAvailProjects)) return 46;
if (IsProjectAvail(29,aAvailProjects)) return 29;
if (IsProjectAvail(28,aAvailProjects)) return 28;
Компилируем бота, запускаем игру, ставим 500 игр и смотрим результат (см. рисунок 1):
Результат очевиден, выигрыш в 84% игр. Но нет предела совершенству. Рассмотрим поведение бота… В начале, бот проверяет состояние базы и если оно плохое, то выбирает проект ремонта базы. Далее он проверяет условия начального развития базы (когда батарей, рудников и лабораторий совсем мало). Потом проверяет условия усиленного развития базы, и только потом атакующие проекты, и в самом конце если ни одно условие не выполнилось, то случайно выбирает проект.
Что можно изменить в первую очередь? Условия начального развития базы слишком жесткие: база должна быть не менее 35 единиц и щит должен быть не нулевой. Также слишком жесткие условия усиленного развития базы. Вот их нам и надо изменить. Вот что у меня получилось (в терминах Delphi):
if IsProjectAvail(BuildMineProject,aAvailProjects) and
(aGame[aPlayerNumber].Mines<3) and
(aGame[aPlayerNumber].Base>25) then
begin
Result:=BuildMineProject;
exit;
end;
if IsProjectAvail(BuildBatteryProject,aAvailProjects) and
(aGame[aPlayerNumber].Battery<4) and
(aGame[aPlayerNumber].Base>25) then
begin
Result:=BuildBatteryProject;
exit;
end;
if IsProjectAvail(BuildLabProject,aAvailProjects) and
(aGame[aPlayerNumber].Labs<3) and
(aGame[aPlayerNumber].Base>25) then
begin
Result:=BuildLabProject;
exit;
end;
if IsProjectAvail(BuildBatteryProject,aAvailProjects) and
(aGame[aPlayerNumber].Battery<7) and
(aGame[aPlayerNumber].Base>40) and
(aGame[aPlayerNumber].Shield>10) then
begin
Result:=BuildBatteryProject;
exit;
end;
if IsProjectAvail(BuildMineProject,aAvailProjects) and
(aGame[aPlayerNumber].Mines<6) and
(aGame[aPlayerNumber].Base>40) and
(aGame[aPlayerNumber].Shield>10) then
begin
Result:=BuildMineProject;
exit;
end;
if IsProjectAvail(BuildLabProject,aAvailProjects) and
(aGame[aPlayerNumber].Labs<5) and
(aGame[aPlayerNumber].Base>40) then
begin
Result:=BuildLabProject;
exit;
end;
Немного хотелось бы сказать про количество лабораторий. Их количество увеличивается только до 5, так как строительство больше пяти лабораторий требует дополнительного строительства базы. Вообще проекты спроектированы так, что на шпионские проекты надо много электроэллементов и если у вас мало электроэлементов вы не сможете использовать сильные шпионские проекты. Правильное развитие на лаборатории и использование шпионских проектов может стать решающим фактором в победе вашего бота.
Теперь посмотрим список проектов выбираемых ботом. Удалим 28 проект и добавим (31) СуперАтака 4. En 26, Me 16, El 10 : ->49 в итоге получаем такой список проектов:
const
STRATEGY:array[0..MaxProjectsToPLayer-1] of integer =
(
5, 6, 11, 13, 16, 18, 20, 28, 31, 33, 34, 35, 44, 45, 46
);
И вставим проверку использования 31 проекта перед всеми атакующими проектами, т.е. его наличие будет обрабатываться в первую очередь:
if IsProjectAvail(31,aAvailProjects) then
begin
Result:=31;
exit;
end;
if IsProjectAvail(46,aAvailProjects) then
begin
Result:=46;
exit;
end;
if IsProjectAvail(29,aAvailProjects) then
begin
Result:=29;
exit;
end;
Проверку наличия проектов 45 и 44 оставим без изменения, а вот в конце при случайном выборе проекта изменим число 15 на 8, таким образом, случайно будут выбираться только первые 8 проектов из списка доступных проектов, а именно проекты мелких атак и ремонта базы:
repeat
Result:=aAvailProjects^[random(8)];
until Result<>0;
Компилируем и смотрим результаты (см. рисунок 2):
Результат – выигрыш более 60% игр.
Ресурсы
. Скачать исходники SimpleBot v1.1. (C++) http://pkonkurs.ru/wp-content/uploads/2010/06/SimpleBotCpp_v11.zip
. Скачать Fortress 2 build 2026 + FortUI build 1004 http://pkonkurs.ru/wp-content/uploads/2010/06/Fortress-2-2026-+-FortUI-1004.zip
. Скачать Fortress 2 build 2026 beta + SimpleBot v1.2 http://pkonkurs.ru/wp-content/uploads/2010/06/Fortress-2-2026-+-FortUI-1004-+-SimpleBot-v1.2.zip
Статья из четвертого выпуска журнала “ПРОграммист”.
Скачать этот номер можно по ссылке.
Ознакомиться со всеми номерами журнала.
Под редакцией Сергея Бадло…
Обсудить на форуме — Игра Fortress 2. Создание лучшего бота – призовой фонд 5000 рублей!
6th
Июн
SimpleBot v1.1 напишем вместе!
Новая статья на http://pkonkurs.ru/
SimpleBot v1.1 напишем вместе!
Также новая версия игры с подправленным именами проектов
В этой статье я покажу как добавив несколько строк кода можно очень сильно изменить игру бота в лучшую сторону.
Итак, приступим! Для разнообразия будем писать на C++.
Что мы сделаем в первую очередь? Изменим набор проектов. Смотрим строку в коде которая содержит список проектов
………..
12th
Апр
Fortress 2. Конкурс. Создание лучшего бота
Не прошло и месяца как на форуме программистов стартует новый конкурс на создание лучшего бота к игре Fortress 2.
Приз за первое место 1000 р.. Если участников будет много, то занявшие 2 и 3 место получат утешительные призы – 100 р.
Для тех кто не в курсе : бот представляет собой DLL с тремя экспортируемыми функциями.
Документация по созданию бота находится в файле Fortress 2 Bot Specification
Скачать Fortress 2 build 2025 beta + Документация + исходник SimpleBot v1.0
Скачать исходники SimpleBot v1.0 на С++ (CodeBlocks+MinGW)
Ориентировочная дата подведения итогов конкурса – июнь.
Почему надо участвовать в этом конкурсе?
Во-первых, это интересно!
Во-вторых, можно получить денежный приз, пусть это всего 1000 р., но на “пиво попить” хватит.
В-третьих, вы получите опыт в создании ИИ для игры, и сможете сказать “Я разрабатывал бота для игры!”
Все кто хочет и будет участвовать отписываемся здесь.
28th
Мар
Fortress 2 – бета-тестирование
Только закончился конкурс по созданию бота для игры Fortress.
27th
Мар
Игра Fortress. Конкурс на создание лучшего бота. Итоги
22nd
Мар
Конкурс подходит к концу! Создание лучшего бота для игры Fortress.
Присылаем ботов до субботы на майл – gruzino-abhaz@rambler.ru
В субботу 27.03 будет производится битва Dll ботов.
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)