Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Игры разума
Перезагрузить страницу Внимание! Конкурс!
Ответ
 
Опции темы Опции просмотра
  (#61 (permalink)) Старый
yureckor yureckor вне форума
Member
 
Сообщений: 462
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.03.2004
По умолчанию 29.06.2005, 10:00

примерно на 200 ходу моя выигрывает!!!
(потому что я ставлю в поле 20*20 а не 100*100 )
Ответить с цитированием
  (#62 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 29.06.2005, 12:26

Цитата:
Originally posted by yureckor
[b]примерно на 200 ходу моя выигрывает!!!
(потому что я ставлю в поле 20*20 а не 100*100 )

Читер!!!
Ответить с цитированием
  (#63 (permalink)) Старый
yureckor yureckor вне форума
Member
 
Сообщений: 462
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.03.2004
По умолчанию 29.06.2005, 13:48

Цитата:
Читер!!!
Ну я же посылал письмо, где перечислял способы взлома
А этот оставил для себя

А если серьезно- особо я не тестил, но ошибку в случае если DLL лепит уже в использованную клетку, выдает.

Кстати, я подправил свою оболочку, могу выслать.
Ответить с цитированием
  (#64 (permalink)) Старый
Fuud Fuud вне форума
Member
 
Сообщений: 4,076
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2004
По умолчанию 15.07.2005, 16:02

Garic, выкиньте исходник, если не сложно! У меня ощущение, что что-то где-то с соглашениями...
Впрочем, ряд ошибок у себя нашел и исправил!
Ответить с цитированием
  (#65 (permalink)) Старый
shuricus
Guest
 
Сообщений: n/a
По умолчанию 19.07.2005, 13:25

думаю я тоже поучаствую :)
играбельная длл
http://shuricus.front.ru/gomoku.01.zip
Ответить с цитированием
Ads.
  (#66 (permalink)) Старый
S.Yu.Gubanov S.Yu.Gubanov вне форума
Member
 
Сообщений: 587
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.12.2002
По умолчанию 22.07.2005, 18:44

Здравствуйте.

Только что случайно набрёл на эту ветку... Интересно.

Есть пожелание по поводу во этого:
Цитата:
Originally posted by Garik
[b]
Код:
// Ход
// lpField - указатель на массив 100x100 байт, определяющий поле
// 0 - пустая клетка, 1 - крестик, 2 - нолик
// dwMoveNum - номер хода, начинается с 1
// dwOpponentMove - предыдущий ход;
// старшее слово - координата по x, младшее - координата по y.
// Для первого хода передается 0xFFFFFFFF
// Возвращает координаты хода:
// старшее слово - координата по x, младшее - координата по y.
// Время работы функции ограничено правилами
DWORD MakeMove(LPCBYTE lpField, DWORD dwMoveNum, DWORD dwOpponentMove);
1) Ни каких указателей передавать от сервера к игроку не надо, да и просто нельзя! Это потому, что:

* Игрок в состоянии помнить карту самостоятельно. Причем в своем собственном формате.

* Тогда не надо будет проверять, а не записал ли игрок чего по этому указателю против правил (читерство). И не испортил-ли он память?
* Существуют safe языки, в конце концов, где толку от этого указателя на массив не будет ни какого.

2) Не надо передавать ему номер хода. Количество сделанных им ходов игрок вполне может помнить сам если ему это вообще нужно.

3) Зачем извраты с запихиванием двух чисел в DWORD? Типа так круто?

Короче, процедура хода, должна быть такой:
Код:
void MakeTurn (int opponentX, int opponentY, int& X, int& Y);
входные данные: opponentX, opponentY - клетка, которую занял оппонент во время предыдущего хода; выходные данные: &X, &Y - клетка которую собирается занять игрок. Причем, в первый ход значения opponentX, opponentY находятся за пределами карты, например: (-1, -1) т. е. ни какая клетка на предыдущем ходе оппонентом занята не была.
Ответить с цитированием
  (#67 (permalink)) Старый
S.Yu.Gubanov S.Yu.Gubanov вне форума
Member
 
Сообщений: 587
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.12.2002
По умолчанию 22.07.2005, 18:53

Цитата:
Originally posted by Garik
[b]
Код:
// Начать раунд
// Здесь следует инициализировать все внутренние структуры
// Время работы этой функции не ограничено
void InitRound();
Во время инициализации нужно передавать правила игры, а именно размер карты и количество клеток выстроенных в линию необходимых для победы:
Код:
void InitRound(int LengthX, int LengthY, int LineLength);
LengthX, LengthY - размеры карты. Чтобы можно было играть не только на карте 100*100
LineLength - сколько клеток выстроенных в линию нужно занять для победы. Чтобы можно было играть не только с LineLength = 5
Ответить с цитированием
  (#68 (permalink)) Старый
tоkito tоkito вне форума
Member
 
Сообщений: 266
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.07.2005
По умолчанию 10.08.2005, 12:20

ага, давайте еще com сервер сделайте чтоб у каждого свои прототипы были
Ответить с цитированием
  (#69 (permalink)) Старый
Mikle Mikle вне форума
Member
 
Сообщений: 38
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2005
По умолчанию 29.08.2005, 16:21

По-моему S.Yu.Gubanov говорит дело.
Ответить с цитированием
  (#70 (permalink)) Старый
Mike. Mike. вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.08.2004
По умолчанию answer - 24.12.2005, 15:23

А какой главный приз или опять это своего рода надувательство?
Ответить с цитированием
  (#71 (permalink)) Старый
Fuud Fuud вне форума
Member
 
Сообщений: 4,076
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2004
По умолчанию 24.12.2005, 17:12

На дату смотрел?
Ответить с цитированием
  (#72 (permalink)) Старый
Fuud Fuud вне форума
Member
 
Сообщений: 4,076
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2004
По умолчанию 24.12.2005, 17:25

Впрочем, могу раскопать исходники!
Ответить с цитированием
Ads
  (#73 (permalink)) Старый
Zefick Zefick вне форума
Member
 
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.04.2008
По умолчанию 19.05.2008, 17:17

Ау! В этой теме ещё кто-нибудь есть? Насколько я понимаю, игры так и не было?
Я лишь сегодня наткнулся на тему конкурса и у меня возникло желание поучавствовать в турнире, но также имеетя несколько предложениё:

1. Сделать игроков не в виде DLL, а в EXE. Я конечно понимаю, что старый механизм уже отлажен, но вот аргументы: Во первых DLL умеют делать не все и не все из тех, кто не умеет их делать являются чайниками, а поучавствовать им хочется (это я про себя). Если использовать EXE-программы в качестве игроков, то программисты будут иметь больше свободы в том плане, что программа обязательно должна только принять координаты клетки хода противника и выдать свой ход в файл, а всё остальное программист волен делать как хочет - хранит доску, номер хода, историю партии, да много-ли чего ещё. Если программа будет сама следить за доской, то не надо будет передавать ей указатель на доску и следить, как-бы она не изменилась. И насколько я понимаю, при использовании DLL строго регламентированы имена функций и переменных? Если так, то это ещё один камень в сторону DLL, а то кто-то высказывался с предложением изменения прототипов функций, или чего-то ещё. С EXE же подобные вопросы остаются на усмотрение программиста.
Схема игры может выглядеть так: запускаются две программы, которые начинают непрерывно читать один файл, в который программа-судья кладёт номер очередного игрока. После того, как номер совпал с нужным, программа начинает просчёт хода и выдаёт в тот-же или другой файл позицию своего хода. Стоит заметить, что так программы смогут делать расчёты даже во время хода противника (зачем это нужно, пусть каждый решает сам).
В качестве усложнения можно ограничиться не EXE, а COM-файлом - но это может серьёзно увеличить сложность задания, зато все будут выжимать из COM последние соки в гонке за памятью.

2. По поводу времени. Сделаль его не ограниченным, но так, что нельзя затрачивать на свои ходы намного больше времени, чем другой игрок. Например, если разница между временем, затраченным в сумме на ходы каждого из игроков отличается на 5 секунд, то тот из них, у кого оно больше проигрывает. Тогда игроки смогут варьировать время хода в зависимости от скорости противника, да и вообще увеличится динамичность игры - на один ход можно затратить 0,01 секудны, а на другой две-три, если есть хандикап, или устроить противнику временной прессинг, делая быстрые ходы.

3. Размер поля необходимо уменьшить. Откуда такие цифры - 100*100, чтобы отсекать медленные программы?! Если один игрок сильне другого, то партия закончится за 100-200 ходов, иначе, скорее всего, будет ничья. Да и как такую досту визуализировать: вертикальное разрешение монитора - 1000-1200 пикселей, получается по 10-12 пикселей на клетку в высоту и ширину - размеры одной Большой буквы на том-же мониторе, мелковато. 40*40 должно хватить, во всяком случае, если один игрок победил на таком поле, то победит он и на большем, иначе какой смысл тянуть резину в ожидании ничьи?
Ответить с цитированием
  (#74 (permalink)) Старый
Mikle Mikle вне форума
Member
 
Сообщений: 38
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2005
По умолчанию 26.01.2009, 20:42

Я уже писал про EXE, я уже даже выкладывал рабочую программу.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конкурс sozin Подбор комплектующих 1 25.02.2012 20:42
Внимание! Конкурс на разработку интернет-сайта! voronezhselm Работа 0 25.01.2011 10:51
Конкурс mihan2000 Офтопик 11 17.12.2009 12:23
Конкурс suharik113 Общетематический 0 04.10.2009 00:53
Внимание всем!!! КОНКУРС! Тёмыч Опросы и мнения 194 28.11.2008 13:33
Конкурс дизайна apro3 Задания за деньги 0 18.11.2008 17:24
Игра на конкурс Mikle Зацените! 0 02.03.2007 19:36
Что за конкурс Imagine Cup? Nast Работа 0 26.01.2007 18:29
Конкурс!!! Fuud Офтопик 25 04.01.2006 15:21
Конкурс работ Нижегородский Госунивер Некоммерческие проекты 1 29.12.2005 23:04
Конкурс по программированию для новичков Anonymous Некоммерческие проекты 0 21.06.2004 21:30



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов