IPB
ЛогинПароль:

> Конкурсы

Этот раздел предназначен исключительно для проведения конкурсов. Создание новых тем пользователями тут запрещено. Ответы в разрешенные темы только по теме соответствующего конкурса и в согласии с его правилами.

 
 Ответить  Открыть новую тему 
> Предложение по конкурсу на тему Калах, (отделено от темы Игра Калах)
andriano
сообщение 11.12.2009 13:17
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Кстати, Калах - хороший пример игры для конкурса. В отличие от предлагавшегося Морского боя.
При этом "игрока" можно было бы реализовать как dll, имеющую стандартный интерфейс: инициализация, финализация (нужны, если алгоритм требует чтения с диска какой-либо базы) и ход. Последний можно реализовать как функцию, принимающую два массива - лунки игрока и соперника и возвращающую номер лунки-хода.
Тогда такие dll можно использовать как для игры против человека, так и друг с другом.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 15.12.2009 19:38
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(RathaR @ 14.12.2009 19:52) *
andriano, я почти ничего не понял...
Обидно.
Все-таки рискну редложить на обсуждение некоторое описание программы, которую можно использовать для проведения конкурса и простейший пример программы-конкурсанта.
Цитата
Игра Калах

Программная реализация.
Предназначена для проведения турниров программистов.
Состоит из основного управляющего модуля (дальше - Доска) и двух динамически присоединяемых библиотек DLL (дальше такая DLL будет именоваться Игрок).
Игроки имеют предопределенные имена KlPayer1.dll и KlPayer2.dll. Эти файлы должны располагаться в одной папке с Доской.
В игре предусмотрено возможное изменение интерфейса между Доской и Ироками. Для этого вводится номер версии интерфейса. Игроки должны поддерживать все версии с 1 до их текущей.
Игра происходит с интерфейсом самой старшей версии, которую поддерживают оба Игрока и Доска. Т.е, если версии игроков 2 и 4, а доски 3, то игра будет происходить по интерфейсу версии 2.

Описание интерфпейса версии 1.
Игрок содержит следующие процедуцры и функции:

function KlInit(var KlInfo : tKlInfo) : boolean; - инициализация. Для версий 2 и выше допускается повторный вызов этой функции.

структура
tKlInfo = record
size : longint; // (i) длина структуры в байтах
ver_B : longint; // (i) версия интерфейса Доски
ver_P : longint; // (o) версия интерфейса Игрока. Обязательна к заполнению, должна быть не больше, чем версия Доски.
Num_P : longint; // (i) номер игрока - 1 или 2. В принципе, нужно лишь для информации, внутреннего протоколирования игрока и алгоритмов, основанных на протоколировании игры.
Nholes : longint; // (i) количество лунок у каждого из игроков
Nbones : longint; // (i) первоначальное колитчество камней в каждой лунке
name : array[0..31]of char; // (o) имя Игрока (C-строка, заканчивающаяся нулем)
creator : array[0..31]of char; // (o) разработчик (C-строка, заканчивающаяся нулем)
description : array[0..255]of char; // (o) описание (C-строка, заканчивающаяся нулем)
end;

Игрок долже считать пол size и в дальнейшем заполнять только те поля, что не выходят за предел size.
Заполение поля ver_P обязательно, при этом если версия Игрока старше версии, переданной в параметре ver_B, должно возвращаться значение ver_B.
Если произошла ошибка инициализации и игра невозможно, функциия должна вернуть FALSE, а при успешном завершении TRUE.
Инициализация датчика псевдослучайных чисел randomize происходит в dll независимо от основной прогшраммы, поэтому при необходисмости его нужно инициализировать.

в игре используется масив лунок, причем лунки нумеруются с 1 до 6 в направлении хода, т.е. 1-го Игрока слева направо, а 2-го справа налево.

tHoles : array[1..6] of longint;

function KlGetTurn(MyHoles, OppHoles : tHoles; MyKalah, OppKalah, OppTurn : longint) : longint; - очередной ход. все параметры: свои лунки, лунки противника, свой Калах, калах противника, предыдущий ход противника - входные.

выход - номер лунки, с которой начинается очередной ход, от 1 до Nholes. Если произошла ошибка, то 0.
OppTurn - предыдущий ход противника от 1 до Nholes. Если это повторный ход, то 0. Может пригодиться, если стратегия игры основана на протоколировании.

procedure OppTurnRepeat(OppTurn : longint); - в случае повторного хода противника информирует о нем, т.е. если противник делает 3 хода подряд, между KlGetTurn будет дважды вызвана OppTurnRepeat. При одиночном ходе противника не вызывается.

procedure KlEndRound(MyBones, OppBones, NumTurns : longint); - вызывается при завершении текущего раунда. Информирует игрока о количестве камней у него и у противника на момент окончания игры, также о количестве ходов.
Если последним был ход текущего игрока, то последний ход противника - 0.



procedure KlDone; - вызывается при завершении программы для аккуратного освобождения памяти и, если нужно, сохранении статистики на диск.


И простейший вариант "Игрока". Даже слишком "простейший" - делающий случайные ходы.
library KlPlRnd; // игрок в калах со случайным выбором хода
uses KlComm;

const
NumVer = 1; // версия интерфейса Игрока
_name : string = 'Dumb Player';
_creator : string = 'Sergey Andrianov';
_description : string = 'Random Turn Player';
var
CurrVer : longint; // версия, с которой будет работать программа
Player : longint; // номер игрока (1 bkb 2)
NumHoles : longint; // количество лунок (3-6)
NumBones : longint; // первоначальное количество камней в лунке (3-6)
t : text; // файл протокола данного игрока
Nturn : longint; // счетчик щагов

procedure MoveString(var s : string; var p : array of char; size : longint);
// пересылка Паскль-строки в С-строку
var l : longint;
begin
l := length(s);
if l > (size-1) then l := size-1;
move(s[1], p, l);
p[l] := #0;
end;

function KlInit conv arg_stdcall(var KlInfo : tKlInfo) : boolean;
// инициализация. Для версий 2 и выше допускается повторный вызов этой функции.
begin
if KlInfo.Num_P = 1 then
assign(t,'Player1.out')
else
assign(t,'Player2.out');
rewrite(t);
randomize;
with KlInfo do begin
if size >= 24 then begin // заполняем только те поля, о которых знает вызывающаяч программа
if NumVer <= ver_B then
ver_P := NumVer
else
ver_P := ver_B;
CurrVer := ver_P;
Player := Num_P;
NumHoles := Nholes;
NumBones := Nbones;
if size >= 344 then begin
MoveString(_name, name, 32);
MoveString(_creator, creator, 32);
MoveString(_description, description, 256);
end;
end;
end;
Nturn := 0;
KlInit := TRUE;
end;

function KlGetTurn conv arg_stdcall(MyHoles, OppHoles : tHoles; MyKalah, OppKalah, OppTurn : longint) : longint;
// очередной ход. все параметры:
// свои лунки, лунки противника, свой Калах, калах противника, предыдущий ход противника - входные.
var i,j,n : longint;
begin
if OppTurn = 0 then begin // повторный ход
write(t,'KlGetTurn Turn: ',Nturn,' Opp: ',OppTurn); // учитываем ход противника и собственный
inc(Nturn,1);
end else begin //
write(t,'KlGetTurn Turn: ',Nturn,' - ',Nturn+1,' Opp: ',OppTurn); // учитываем ход противника и собственный
inc(Nturn,2);
end;
n := 0;
for i := 1 to NumHoles do
if MyHoles[i] > 0 then inc(n); // вычисляем количество непустых лунок
if n = 0 then begin // если ходить неоткуда - ошибка
writeln(t,'KlGetTurn *3*');
KlGetTurn := 0;
end else begin
j := random(n) + 1;
write(t,' Num: ',n,' Rnd: ',j);
i := 0;
repeat
inc(i);
if MyHoles[i] > 0 then dec(j);
until j = 0;
writeln(t,' Out: ',i);
KlGetTurn := i;
end;
end;

procedure OppTurnRepeat conv arg_stdcall(OppTurn : longint);
// в случае повторного хода противника информирует о нем
begin
writeln(t,'OppTurnRp Turn: ',Nturn,' Opp: ',OppTurn);
inc(Nturn);
end;

procedure KlEndRound conv arg_stdcall(MyBones, OppBones, NumTurns : longint);
// В конце раунда информирует игрока о количестве камней у него и у противника на момент окончания игры.
begin
writeln(t,' EndRound My: ',MyBones,' Opp: ',OppBones,' Turns: ',NumTurns,'/',Nturn);
Nturn := 0;
end;

procedure KlDone conv arg_stdcall;
// вызывается при завершении программы для аккуратного освобождения памяти и,
// если нужно, сохранении статистики на диск.
begin
close(t);
end;

exports
KlInit name 'KlInit',
KlInit index 1,
KlGetTurn name 'KlGetTurn',
KlGetTurn index 2,
KlEndRound name 'KlEndRound',
KlEndRound index 3,
KlDone name 'KlDone',
KlDone index 4,
OppTurnRepeat name 'OppTurnRepeat',
OppTurnRepeat index 5;

end.


Сообщение отредактировано: Lapp - 17.12.2009 4:00
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
cameron
сообщение 20.12.2009 23:40
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский
Реальное имя: Ольга

Репутация: -  0  +


andriano, то есть протестировать твою прогамму-конкурсанта мы можем, только самостоятельно написав модуль KlComm и библиотеку KlPlRnd...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 21.12.2009 11:06
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(cameron @ 20.12.2009 23:40) *

andriano, то есть протестировать твою прогамму-конкурсанта мы можем, только самостоятельно написав модуль KlComm и библиотеку KlPlRnd...

Это, конечно, тоже вариант smile.gif, но я подразумевал несколько иной.
В данной теме содержится лишь предложение о создании подобного конкурса и в неявном виде вопрос - а интересно ли это будет хоть кому-то. Описание и текст DLL-ки приведены лишь затем, чтобы можно было понять, о чем идет речь.
Коль скоро это вызвало интерес хоть у кого-то, все необходимые материалы будут выложены в разделе "Конкурсы" в теме !"Предложения...".
Собственно, все готово, мне осталось лишь проверить компилируемость в Delphi и работоспособность полученной DLL.
Единственное, есть предположение, что сейчас далеко не лучший момент для объявления конкурса в связи с начавшейся у студентов зачетной сессией.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.12.2009 11:21
Сообщение #5


Гость






Цитата
При этом "игрока" можно было бы реализовать как dll, имеющую стандартный интерфейс: инициализация, финализация (нужны, если алгоритм требует чтения с диска какой-либо базы) и ход. Последний можно реализовать как функцию, принимающую два массива - лунки игрока и соперника и возвращающую номер лунки-хода.
Тогда такие dll можно использовать как для игры против человека, так и друг с другом.
А также для форматирования жесткого диска (ну, или других подобных шалостей) тому, кто рискнет положить DLL-ку себе на диск и вызывать оттуда функции. То есть, организатору конкурса... Это так, на всякий случай, чтоб потом не было претензий...
 К началу страницы 
+ Ответить 
Lapp
сообщение 21.12.2009 13:00
Сообщение #6


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Я выделил разговор на тему о предложении использовать Калах для конкурсного задания в отдельную тему.

Кроме этого, andriano инициировал переписку со мной в личке на эту тему. Возможно, она также представляет интерес. Если Сергей не против и кто-то проявит желание ее увидеть - я могу выложить ее тут.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 23.12.2009 13:08
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Прикрепленный файл  Kalah_Test.zip ( 83.54 килобайт ) Кол-во скачиваний: 880
Предлагаю конкурс несколько необычного формата (возможно, кто-то даже сочтет, что предлагаемое не имеет права называться конкурсом).
Итак:
- никаких ограничений по срокам,
- никаких ограничений на используемый язык программирования,
- никаких ограничений на количество файлов проекта,
- никаких ограницений на содержимое файлови и набор используемых функций,
- отсутствие исчерпывающего набора допустимых компиляторов,
- независимость от организаторов конкурса,
- возможность отладки и настройки алгоритмов в "настоящем" окружении, а не в собственной реализации, которую нужно писать самому, и которая может отличаться от той, что используют органмизаторы,

Ограничения:
- только Windows,
- используемый компилятор должен уметь делать Windows DLL,
- все конкурсные соревнования проводятся на пользовательском компьютере,
- при публикации конкурсной программы в виде DLL ОБЯЗАТЕЛЬНО размещение исходников (п.9 Правил форума), а также указание используемого компилятора, его версии и настроек. Если программа использует внешние файлы, необходимо описание структуры этих файлов.

Основные положения.
Предмет: разработка алгоритмов для игры в Калах.
Способ: алгоритм оформляется в виде Windows DLL, после чего управляющая программа подключает две DLL и проводит между ними соревнование, помещая отчет в файл.

Правила проведения.
Организатор размещает:
- исполняемый файл: kalah.exe - консольное приложение (TMT Pascal 4.01, Windows Console, настройки по умолчанию), исходники прилагаются.
- пример игрока, делающего случайные ходы, файл KlPlRnd.dll, (TMT Pascal 4.01, Windows DLL, настройки по умолчанию), исходники прилагаются.
- то же самое, файл Kalah_D.dll, (Turbo Delphi, Windows DLL, настройки по умолчанию), исходники прилагаются.
- исходники дополнительных модулей, необходимых для компиляции управляющей программы и DLL.
- пример командного файла для проведения конкурса run.bat - поочередно запускает два раунда соревнований, меняя игроков местами (первого со вторым).
- описание требований, предъявляемых к DLL, файл readme.txt.
Организатор осуществляет поддержку управляющей программы, исправляя в ней найденные пользователями ошибки, и выполняя некоторые из пожеланий пользователей.
Организатор НЕ запускает DLL пользователей на своем компьютере - все тестирования проводит конкурсант.
Организатор обещает, что он не включил в состав программы вредоносного кода, но не гарантирует отсутствие каких-либо проблем у пользователя вследствие ошибок в программе либо заражения ее вирусами после публикации (организатор рекомендует проверять на наличие вирусов все скачиваемые из И-нета программы).
Конкурсант проводит разработку алгоритма, его отладку, тестирование и проведение своей локальной части конкурса на своем компьютере, после чего размещает отчет о результатах тестов вместе с DLL и исходником на форуме.

Управляющая программа позволяет проводить разработку, отладку и тестирование алгоритмов пользователя, в частности протоколирование работы как управляющей программы, так и алгоритмов пользователей с различной степенью подробности, проведение многократных игр для набора статистики, настройки управляющих коэффициентов, обучения НС и т.п.
Ключи командной строки:
/h:N (N - десятичное число, default = 6) - количество лунок в игре (3-6),
/b:N (N - десятичное число, default = 6) - начальное количество камней в каждой лунке (3-6),
/r:N (N - десятичное число, default = 1) - количество раундов (для подсчета статистики),
/t:N (N - десятичное число, default = 300) - количество ходов, после которого фиксируется ничья (во избежание зацикливания),
/f:xxxxxx.txt (строка без пробелов, default = 'KlLog.txt') - файл протокола,
/l:NM, где N и M - цифры: N=0 для "Доски", N=1 или N=2 для "Игрока", default = 3 - уровень подробности лог-файла.
M - от 0 до 5: (0 - лог-файл не создается, 1 - только интегральная по игре (KlDone), 2 - только интегральная по раунду (KlEndRound),
3 - краткая на каждом ходе, 4 - средняя на каждом ходе, 5 - самая подробная)
/p:N=M (N - 1 или 2 (номер игрока), M - десятичное или 16-чное число) - настроечные параметры, передаются "Игрокам" в 10-чном /p:1=12345 или 16-чном /p:2:$12ab или /p=1:12abh виде

Для участия в конкурсе достаточно:
1. Открыть один из приведенных примеров (если используется Паскаль).
2. Заменить строки, содержащие название алгоритма, имя автора и описание.
3. Заменить несколько строк в функции KlGetTurn на собственный алгоритм.
4. Сохранить под новым самостоятельно придуманным именем.
5. Откомпилировать файл, получив DLL.
6. Скопировать файл в KlPlayer1.dll или KlPlayer2.dll по своему выбору либо видоизменить командный файл run.bat под свое имя библиотеки.
7. Запустить kalah.exe или run.bat, получив протокол работы программы (точнее, три протокола: управляющей программы и по одному от игроков).
8. Разместить на форуме результат работы программы (необходимо два варианта счета: при игре 1-м и 2-м игроком) вместе с указанием, против кого она играла, исходник, саму DLL, указание компилятора и настроек.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 28.12.2009 0:32
Сообщение #8


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(andriano @ 23.12.2009 13:08) *
8. Разместить на форуме результат работы программы (необходимо два варианта счета: при игре 1-м и 2-м игроком) вместе с указанием, против кого она играла, исходник, саму DLL, указание компилятора и настроек.

andriano, ситуация, когда каждый участник имеет доступ к сорсам соперников, не может рассматриваться как честная. Ты можешь говорить о добросовестности сколько угодно - напрасно. Размещать же только DLL без сорса - непозволительно (аксиома). И даже если dll размещается с сорсом, все равно должна осуществляться проверка соответствия, и эта проверка должна делаться не пользователем (участником). Значит, должно быть выделенное ответственное лицо, и мы приходим опять к стандартной процедуре. А тогда, прости, зачем все эти ухищрения?..

Кроме того, результат должен кодироваться с асимметричным ключом, чтобы ему можно было доверять. А это значит, в частности, что все dll-участницы должны иметь свою цифровую подпись.. продолжать?

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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 28.12.2009 2:21
Сообщение #9


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


я подредактировал свой предыдущий пост, а теперь просто обновляю время.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 28.12.2009 11:36
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Lapp @ 28.12.2009 0:32) *

andriano, ситуация, когда каждый участник имеет доступ к сорсам соперников, не может рассматриваться как честная.
Согласись, что она симметричная. Так откуда берется бесчестность?
Цитата
Ты можешь говорить о добросовестности сколько угодно - напрасно. Размещать же только DLL без сорса - непозволительно (аксиома).
В данном случае согласен.
Цитата
И даже если dll размещается с сорсом, все равно должна осуществляться проверка соответствия, и эта проверка должна делаться не пользователем (участником). Значит, должно быть выделенное ответственное лицо, и мы приходим опять к стандартной процедуре.
Если результат конкурса - приобретение участниками (победителями) каких-либо материальных либо нематериальных благ, то - безусловно. Если же не предполагается не только раздача призов, но даже подведение итогов (кстати, именно поэтому я оговорился насчет возможности отнесения данного мероприятия к конкурсам), то какой в этом смысл?
Цитата
А тогда, прости, зачем все эти ухищрения?..
Честно говоря, я рассматриваю предложенное не как ухищрения, а как упрощение.
Цитата

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

Я понимаю, что эти вопросы не могли ускользнуть от твоего внимания при разработке предложения. Тем самым,я прихожу к выводу, что ты заложился таки на добросовестность участников и, вероятно, приготовился спорить на эту тему. Так вот, я говорю, что я с тобой в корне не согласен и вряд ли соглашусь.
Если честно, я буду считать свою затею удавшейся даже в том случае, если кто-то попытается что-то сделать исключительно у себя и решит не выкладывать результаты на всеобщее обозрение. Кстати, для этого я еще выложу 1-2 варианта реально играющих DLL.
Ты ведь выложил исходники программы, играющей в калах, при том, что ее вряд ли можно использовать без накопленных баз. В конце концов интересна сама идея.
Цитата
И вот тогда становится понятным, что ты имел в виду под фразой И вот с этой-то твоей фразой (а точнее - с ее второй половиной) я как раз согласен в полной мере )).
Ну, тогда можешь перенести эту тему из "Конкурсов" в "Игры".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 29.12.2009 2:40
Сообщение #11


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(andriano @ 28.12.2009 11:36) *
Согласись, что она симметричная. Так откуда берется бесчестность?
Хороший вопрос smile.gif. Думаю, она берется из окружающей социологической обстанвки и не имеет никакого отношения к таким фундаментальным понятиям, как симметрия )).
Вася выложил свою конкурсную работу. Петя скачал ее, раскурочил и использовал полученную информацию с целью выигрыша в конкурсе. Согласен, что Вася после этого также будет иметь шанс сделать то же самое, но ему могут помешать принципы..

Цитата
Если результат конкурса - приобретение участниками (победителями) каких-либо материальных либо нематериальных благ, то - безусловно. Если же не предполагается не только раздача призов, но даже подведение итогов (кстати, именно поэтому я оговорился насчет возможности отнесения данного мероприятия к конкурсам), то какой в этом смысл?
Смысл - в почете и уважении. А может - в потирании рук под столом. Какой смысл в писании вирусов? Я не знаю. Я знаю только, что возможность, если она есть, будет использована рано или поздно. Да, ничего СТРАШНОГО не произойдет, но неприятное ощущение будет. А главное - сама по себе эта самая возможность внесет коррективы в виде чьего-то аргумента не участвовать. Ну, и последнее: призы, хотя бы в виде тех же открыток с афтографом - совсем не такая уж и лишняя вещь.

Цитата
Честно говоря, я рассматриваю предложенное не как ухищрения, а как упрощение.
Упрощений я не усмотрел. Если хочешь, проведи опрос.

Цитата
Кроме того, каждый результат должен быть размещен на двух носителях, основанных на разных физических принципах (например, магнитный и оптический), и в запаянных контейнерах сдан на хранение в швейцарский банк.
smile.gif

Цитата
Если честно, я буду считать свою затею удавшейся даже в том случае, если кто-то попытается что-то сделать исключительно у себя и решит не выкладывать результаты на всеобщее обозрение. Кстати, для этого я еще выложу 1-2 варианта реально играющих DLL.
Заслуживает уважения.

Цитата
Ты ведь выложил исходники программы, играющей в калах, при том, что ее вряд ли можно использовать без накопленных баз.
Это ты зря. Накопление осуществляется той же программой, так что она self consistent. И там объектом внимания является сам механизм обучения.

Цитата
В конце концов интересна сама идея.Ну, тогда можешь перенести эту тему из "Конкурсов" в "Игры".
Все, сказанное мной - всего лишь мнение. Проверить есть только один способ smile.gif.
Предлагаю создать тему типа "Постоянно действующий конкурс Калах", а andriano назначить ответственным (с месячным жалованием в 0.084 спасибо и 31 плевок в душу, а также единовременной выплатой +1 в репу лично от меня в качестве подъемных)). Свистни мне, когда ты будешь готов окончательно. Я думаю, что не нужно упускать любую возможность активизировать жизнь на Форуме. Если я что-то не учитываю - продолжай обсуждение здесь или пиши мне в личку.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rian
сообщение 31.05.2010 8:06
Сообщение #12


Знаток
****

Группа: Пользователи
Сообщений: 394
Пол: Мужской

Репутация: -  9  +


а почему бы не завести мини сервер, через кторый проги смогут биться между собой?
я думаю веберы тут тож найдутся

а команды для простоты можно даже через get отсылать, в текстовом режиме


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 3.06.2010 23:29
Сообщение #13


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Rian @ 31.05.2010 9:06) *
а почему бы не завести мини сервер, через кторый проги смогут биться между собой?
я думаю веберы тут тож найдутся
Rian, все в твоих руках. Делай. Нужна помощь - пиши тут.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rian
сообщение 10.06.2010 10:07
Сообщение #14


Знаток
****

Группа: Пользователи
Сообщений: 394
Пол: Мужской

Репутация: -  9  +


хорошо, после 15-го освобожусь и постараюсь занятся основательно и написать несколько скриптиков.
На этой странице так сказать общие правила:

http://rian.ho.ua/?page_id=33

там и будут биться проги
пока, так сказать, оцениваем концепцию, пишем воинов....

предварительное время начала дуэлей 15.07.2010

ЗЫ. сам в суть калаха не вник так что ориентировался на правила шахмат
...ага там еще пропуск хода есть...

Сообщение отредактировано: Rian - 10.06.2010 10:16


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.06.2010 10:40
Сообщение #15


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Rian @ 10.06.2010 11:07) *
предварительное время начала дуэлей 15.07.2010
Гуд, заметано! ))

Цитата
ЗЫ. сам в суть калаха не вник так что ориентировался на правила шахмат
...ага там еще пропуск хода есть...
Где пропуск хода? к калахе?? или в шахматах??? blink.gif


Откуда такой сдвиг терминологии?
игра -> битва
игроки -> воины..
а?.. из тяжелого детства? lol.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rian
сообщение 10.06.2010 10:55
Сообщение #16


Знаток
****

Группа: Пользователи
Сообщений: 394
Пол: Мужской

Репутация: -  9  +


smile.gif холивар, останется только один lol.gif

"Если при раскладывании последний камень попал в калах, то игрок ходит еще раз. "

это решается передачей нескольких ходов в одном запросе, т.е. программа делет свои ходы пока может, а когда ходы закончились передает свои решения за раз
да и ход то сводится к выбору лунки
например:
a1+a4+a2



--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.06.2010 11:28
Сообщение #17


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Rian @ 10.06.2010 11:55) *
... это решается ...
Все решается, безусловно )).
Короче, ты не торопись. Продумай все. И реши )).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rian
сообщение 30.06.2010 7:04
Сообщение #18


Знаток
****

Группа: Пользователи
Сообщений: 394
Пол: Мужской

Репутация: -  9  +


думаю уже пора подавать заявки, проходить квалификацию;)


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 1.07.2010 2:32
Сообщение #19


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Rian @ 30.06.2010 8:04) *
думаю уже пора подавать заявки, проходить квалификацию;)
Опиши всю процедуру в деталях, пожалуйста: что должен делать участник, как он это должен делать и чего он должен не делать. Пришли мне и volvo в личку.
Жду.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 1.07.2010 9:37
Сообщение #20


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Rian получил от меня +1 за инициативность )
Дело двигается. Следим за новостями!.. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 9.11.2024 7:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"