Модераторы: Snowy, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Давайте напишем игру "Точки"!!! 
:(
    Опции темы
cLifman
Дата 17.1.2006, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.11.2005

Репутация: нет
Всего: нет



Есть тема написать сетевые крестики-нолики. Не обычные 3х3, а на произвольном (задаваемом) поле.
PM MAIL   Вверх
Alx
Дата 17.1.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 3
Всего: 78



еси без ИИ, я могу) на JS + HttpRequest


--------------------
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 17.1.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 1
Всего: 133



Цитата(cLifman @ 17.1.2006, 15:20 Найти цитируемый пост)

Есть тема написать сетевые крестики-нолики
В этой теме это как бы оффтоп smile Создавай новую...

Цитата(Alx @ 17.1.2006, 15:36 Найти цитируемый пост)

еси без ИИ, я могу)
Как ты представляешь игру против компа без ИИ? Ну можно конечно с помощью random, но это не выход smile . А игра человек-человек only не получит достойного внимания.




--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Fighter
Дата 18.1.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(Poseidon @ 11.1.2006, 19:59 Найти цитируемый пост)

не думал что игра будет кому-то интересна, оказалось ошибся 



Ты очееень ошибся!!!!!!!!!!!!!!
Добавлено @ 00:15
Кстати, насчет доработок, сделай хотя бы разброс уровней побольше, ну например 0..10.
Добавлено @ 00:20
Кстати, не тормозит теперь - это очень радует.
PM MAIL   Вверх
Poseidon
Дата 18.1.2006, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 1
Всего: 133



Цитата(Fighter @ 17.1.2006, 23:13 Найти цитируемый пост)

Кстати, насчет доработок, сделай хотя бы разброс уровней побольше, ну например 0..10.
Зачем? Я вообще подумываю сделать "Новичок", "Любитель", "Профессионал" => только 3 уровня.

Цитата(Fighter @ 17.1.2006, 23:13 Найти цитируемый пост)

Кстати, не тормозит теперь - это очень радует.
Не, четвертый уровень пока еще подтормаживает, особенно при нестандартных ходах. Но и третий выиграть не так и легко smile
Сессия скоро. Сдам, сделаю подсчет лучшего хода в параллельных потоках. Можно будет еще больше вариантов обрабатывать за секунду... Предлагайте еще идеи по доработке или новым фитчам.
Вот мой план по доработке:
План совершенствования программы "Точки"
Что сделать
    0.Рефакторинг:
  • Вынесение вычислений в отдельный поток
  • Разделение программы на блоки по функциональному назначению : на
  • интерфейс(2 формы - главная и диалога)
  • движок(логику), реализующий логику и ИИ, имеющий ограниченное число открытых методов а также спсобный отрисовать свое состояние на HDC

    1.Функциональность:
  • Скорость и качество игры компьютера
  • Нерекурсивная реализация поиска в глубину
  • Применение некоторых положений из статьи Торгашова Павла http://pointsgame.narod.ru
  • метод ветвей и границ
  • Применение поля размером больше на 2 по всем измерениям для того , чтобы крайние точки как фиктивные обеспечивали автоматический выход из циклов. Не нужно тогда будет проверять в циклах выход за пределы игрового поля
  • Оптимизация процедур проверки окружения и контрокружения вплоть до ассемблерной
  • Поиск шаблонов
  • Поиск стратегических алгоритмов
  • Сетевая игра через интеренет(Но без необходимости введения IP-адреса компа. Очевидно, нужен центральный сервак)

    2. Интерфейс:
  • Загрузка названий пунктов меню из текстового файла(типа как у FlashGet)
  • Английский интерфейс
  • Оптимизация относит. размеров точек при любом разрешении
  • Устранение мерцания при ходе компьютера(запуск продумывания отдельн. потоком и оставление всех пунктов меню доступными для нажатия)
  • Инсталлятор и автоматическая ассоциация типов файлов
  • Устранение проблемы отображения вопросиков вместо меню на некоторых нелокализованных системах
  • NewGameDialog не всегда запоминал последнй уровень и размер поля-исправить
  • Файл tochki.ini с информацией про размер поля и игровые настройки, положение и размер окна программы

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

Это сообщение отредактировал(а) Poseidon - 18.1.2006, 01:44


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Fighter
Дата 18.1.2006, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(Poseidon @ 18.1.2006, 01:34 Найти цитируемый пост)

движок(логику), реализующий логику и ИИ, имеющий ограниченное число открытых методов а также спсобный отрисовать свое состояние на HDC


Я думаю что тут нет необходимости в отрисовке своего состояния на HDC (ты конечно можешь это добавить, но как опцию). Я думаю, что ответственным в данном случае за отображение на HDC конекретного приложения является конкретный программист. А вдруг он захочет сделать точки в 3D (мало ли что). Так что если ты будешь добавлять процедуру отрисовки на HDC, делай её виртуальной, чтобы кому-надо могли бы её переопределить. А основной упор - это да, логика, ИИ, и мой вопрос - это как определить что точка закрыта или сколько точек закрыто и т.д.
PM MAIL   Вверх
Poseidon
Дата 18.1.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 1
Всего: 133



Цитата(Fighter @ 18.1.2006, 01:55 Найти цитируемый пост)

А вдруг он захочет сделать точки в 3D (мало ли что).
Пусть делает, я же не запрещаю. smile Но 3D точки наврятли будут популярны, т.к. все привыкли в жизни играть на листике в "клеточку", поэтому если будут навороты типа 3D, то это только отпугнет игроков. В интернете существует достаточное количество версий точек, но большинство из них не учитывает данную особенность и теряют в популярности. Игрокам превычнее двухмерная сетка, и даже если ее нет (встрачались мне такие версии), то это уже отталкивает. Во фразе "отрисовать свое состояние на HDC" не имеется ввиду отрисовывать точки, имеется ввиде отрисовывать состояние ИИ. Т.е. сколько ходов просчитано, сколько вариантов, коэфициент "хорошести" хода и т.п.

Цитата(Fighter @ 18.1.2006, 01:55 Найти цитируемый пост)

и мой вопрос - это как определить что точка закрыта или сколько точек закрыто и т.д.
Не понял вопрос! Ты хочешь узнать, как определить обведена ли точка противника? Если да, то прочитай хотя бы статью Торгашова Павла . Именно с этой статьи начинают практически все кодеры точек. А вообще зачем начинать новый проект, если можно доработать этот? Я только рад помощи и реализованным идеям. smile




--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
mes
Дата 27.4.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: нет
Всего: 250



Цитата(Alx @  11.1.2006,  20:19 Найти цитируемый пост)
Poseidon
супер!!!я выиграл первый раз в жизни!!!! 


В данной версии одержать победу можно совершено без напряга, например по следующему алгоритму:

Программа всегда старается поставить точку ближе к внешнему краю. По-етому можно воспользоваться етой слабостью.
Т.е. "состовляете" прямоугольник не допуская ходов по диагонали отступив немного (например 2 клетки) от края. Компьютер в ответ будет пытаться "обвести" ваш прямоугольник своим, но так как ваш прямоугольник меньшего периметра он замкнётся на нескоолько ходов раньше и у Вас будет время прегородить путь компьютера. В принципе победа Вам обеспечена - как только компьютер поставит точку внутри Вашего прямоугольника, так сразу контур прямоугольника замкнётся. Но ето будет победа 1:0. Чтоб выйграть с более внушительным результатом, начинайте делить свой прямоугольник на клетки (пополам,потом опять пополам и т.д) Как только у компьютера не будет хода на зоне вне вашего прямоугольника, он начнет ставить точки внутри "подготовленных" Вами клеток. Имено для того чтоб у Вас было время разбить прямоугольник на клетки, я и предложил отступать две клетки, а не одну. 

После некоторой тренировки (нможно конечно просто посчитать) легко определить нужный отступ.

Так что у игры ИИ нужно дорабатывать иначе игра просто лишена смысла...


 


--------------------
PM MAIL WWW   Вверх
Poseidon
Дата 27.4.2006, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 1
Всего: 133



Цитата(mes @  27.4.2006,  21:59 Найти цитируемый пост)
Т.е. "состовляете" прямоугольник не допуская ходов по диагонали отступив немного (например 2 клетки) от края. Компьютер в ответ будет пытаться "обвести" ваш прямоугольник своим
 Вы сами-то пробовали? Версия 0.40 пытается обвести ваш прымоугольник изнутри. Т.е. ставит точку ближе к центру, а не краю.
  

Это сообщение отредактировал(а) Poseidon - 27.4.2006, 23:50


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
mes
Дата 29.4.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: нет
Всего: 250



Цитата(Poseidon @  27.4.2006,  23:49 Найти цитируемый пост)
 Вы сами-то пробовали? 


Для убедительности моих слов привожу скриншот игры.Победа (счет 80:0 в пользу игрока) основана на алгоритме описанном выше.
user posted image

Начал игру с точки в верхнем  левом углу (2,2)

Цитата(Poseidon @  27.4.2006,  23:49 Найти цитируемый пост)
 Версия 0.40 пытается обвести ваш прымоугольник изнутри. Т.е. ставит точку ближе к центру, а не краю.


На рисунке явно видно обратное smile

Добавлено @ 14:17 
Ето не единственная слабость етой программы. Легко окружить точки если окружать не сплошной линией, а с разрывами.

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


--------------------
PM MAIL WWW   Вверх
mes
Дата 29.4.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: нет
Всего: 250



Испробовал другой алгоритм (змейкой).  Результат (поле 20х20)  149:0 в пользу игрока. При етом максимально возможный (но недостижимый) результат 200:0
user posted image

Так что с ИИ надо что-то делать....  

Это сообщение отредактировал(а) mes - 30.4.2006, 01:13


--------------------
PM MAIL WWW   Вверх
Poseidon
Дата 30.4.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 1
Всего: 133



Молодец  smile 


Цитата(mes @  29.4.2006,  22:10 Найти цитируемый пост)
Так что с ИИ надо что-то делать.... 
 Буду что-то делать smile
 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
acc15
Дата 3.5.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



как бы вы не мучались, а бот он и в африке бот... лучше сделать норм. сетевую игру 
PM MAIL   Вверх
vms
Дата 23.5.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



Не хочу огорчать, но ИИ боле менее нормальный в природе пока что отсутствует. Обсуждения на подобные темы ведутся и на сайтах, посвященных игре Го (если кто не знает, очень похожа на "точки", уж тем более с точки зрения создания ИИ). Не смотря на мощную поддержку (спонсоры, премиальный фонд программистам, большое количество участников со всего мира) программу с ИИ (играющем на уровне хоть чуть выше среднего) пока что не удалось создать.
Что касается той программы с ИИ, представленной здесь, то она проигрывает в хлам (тестировал на поле 9х9, максимальный уровень сложности).
Лучше пока что направить силы на улучшение условий для игры по сети... На сайте любителей точек (www.pointsxt.ru) уже создана неплохая версия для игры по сети... может объединить усилия и сделать еще более лучший продукт?
С уважением, Владимир.
P.S.: если интересно, то могу дать ссылки и на сервера по Го
P.P.S.: с удовольствием сыграю с кем-нибудь по инету в "точки" 

Это сообщение отредактировал(а) vms - 23.5.2006, 13:46
PM MAIL   Вверх
Poseidon
Дата 27.5.2006, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 1
Всего: 133



Цитата(vms @  23.5.2006,  13:41 Найти цитируемый пост)
Что касается той программы с ИИ, представленной здесь, то она проигрывает в хлам
 А я и не претендую на премию в этой области. Игра писалась по просьбе друга за выходные. Там многое через Ж сделано. В том числе и ИИ. Так что вот так smile
 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Совместные проекты/поиск партнёров"
Snowy
Poseidon

Внимание:
В этом форуме обсуждаются вопросы только по совместным проектам, когда Вы хотите найти партнёров или стать участником проекта.
Запрещается размещение заказов на написание программ, поиск работников (для этого есть раздел "Работа") и реклама своих сетевых ресурсов.

Этот раздел только для проектов в которых Вы будете выступать в качестве исполнителя!

Темы и сообщения, не удовлетворяющие данным правилам, будут удаляться на основании пункта 3 Правил форума!

  • Человек, создающий тему, становится руководителем проекта. Все вопросы о разработке решаются с его согласия.
  • Публикация предложения к сотрудничеству считается защищённым авторскими правами и не может разрабатываться без согласия с руководителем проекта.
  • Конечный продукт должен содержать указание на всех участников и Vingrad.

  • Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, Poseidon

     
    1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
    0 Пользователей:
    « Предыдущая тема | Совместные проекты/поиск партнёров | Следующая тема »


     




    [ Время генерации скрипта: 0.1014 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


    Реклама на сайте     Информационное спонсорство

     
    По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
    Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.