Студенческий спорт → Программирование шахмат
У меня есть идея, написать свой шахматный движок. С целью попрактиковаться в программирование да и в шахматах тоже.
Мож еще ктото тож хочет. Я имею работу не над одним проектом, а за разными, с целью посмотреть чья программа сильнее. Но конечно это не сейчас, после сессии естественно.
Мож еще ктото тож хочет. Я имею работу не над одним проектом, а за разными, с целью посмотреть чья программа сильнее. Но конечно это не сейчас, после сессии естественно.
- 0
- Yanchik_Nadzuga
- 24 декабря 2014, 01:26
Как бы там ни было - успехов!
свернуть ветку
вот если решать задачи связанные с шахматами....
Задание :))
"Шахматная ассоциация решила оснастить всех своих сотрудников такими телефонными номерами, которые бы набирались на кнопочном телефоне ходом коня. Например, ходом коня набирается телефон 340-49-27. При этом телефонный номер не может начинаться ни с цифры 0, ни из цифры 8.
-------------
| 1 | 2 | 3 |
-------------
| 4 | 5 | 6 |
-------------
| 7 | 8 | 9 |
-------------
|__| 0 |__ |
Нужно написать программу, которая определяет количество телефонных номеров длины N, которые набираются ходом коня.
1<N<100
Исходный файл должен содержать одно число - искомое количество телефонных номеров"
Или хотя бы напишите - при какой длине, сколько номеров)))))))))))))))))
свернуть ветку
Валерий, человек хочет написать не обязательно новый, а свой движок.
Татьяна, это обычная задача олимпиадного программирования.
Влад, у меня есть полностью оригинальный движок (примерно 50 часов разработки без опоры на сторонние идеи). Если хотите играть -- пишите в личку.
Впрочем, подозреваю, что движок, разработанный одним человеком, с реализованным по книжке, сравнивать будет не очень интересно, так что уточните пожалуйста, что имеете в виду, чтобы не было такой ситуации.
свернуть ветку
Правильно)
:))
свернуть ветку
16, 36, 82, 188, 428, 984, 2240, 5152, 11728, 26976, 61408, 141248, 321536, 739584, 1683584, 3872512, 8815360, 20276736, 46157824, 106170368, 241685504, 555915264, 1265481728, 2910810112, 6626148352, 15241199616, 34694963200, 79803957248, 181665185792, 417858945024, 951211261952, 2187937841152, 4980606828544, 11456191266816, 26078795923456, 59985396236288, 136550348226560, 314087612350464, 714986905665536, 1644584089157632, 3743720041086976, 8611154085543936, 19602372623859712, 45088588156633088, 102639355578810368, 236086912597622784, 537426642977423360, 1236167122959204352,
свернуть ветку
uses crt;
var n,i:integer;
z,x,y,v,u,x1,y1,v1,u1:extended;
BEGIN
write('Enter kolichestvo tsifr n = ');
readln(n);
x:=4;y:=0;u:=1;v:=2;
if n>2 then
for i:=n downto 3 do
begin
x1:=x;y1:=y;u1:=u;v1:=v;
x:=2*(u1+v1);y:=v1;
u:=x1;v:=x1+2*y1;
end;
writeln('nomerov : ',2*(x+y+u)+3*v:3:0);
readln;
END.
Длина | Количество
-----------------------------------------
3 | 36
-----------------------------------------
8 | 2240
-----------------------------------------
35 | 11456191266816
-----------------------------------------
80 | 1715550913604185820(12)
Дмитрий Анисимов пять баллов :)))))
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
Заинтересованные товарищи можете почитать этот форум immortal223.borda.ru и/или написать мне в личку.
свернуть ветку
свернуть ветку
свернуть ветку
Надо бы еще правила довести до полных. Как-то до таких высот программирования, чтобы запросто добавить правило 50 ходов или тройного повтора, сохранив при этом скорость работы, я не дорос.. :(
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
Против людей играет довольно неплохо (стабильно обыгрывает знакомых 1-разрядников и КМС-ов), против других движков - похуже (рейтинг 2300 ЭЛО).
Если интересно - пишите! Могу поделиться исходниками (Delphi) :)
З.Ы. а насчет повторения позиции и правила 50 ходов:
повторения лучше делать не через сравнение позиций 2 и 4 полухода назад. Правильней хранить хэши всех позиций которые встречались, и в которые можно попасть из данной позиции (то есть все позиции после хода пешки или взятия (таких позиций теоретически может быть не много - не более 50)). также запоминаем количество таких позиций - если оно больше 50 - оценка 0, т.к. правило 50 ходов. :) И если есть совпадение текущей позиции с 2-мя позициями из этого списка - повторение :)
свернуть ветку
Вопрос - какой хэш? MD5 думаю снизит скорость работы вдвое... надо что-нибудь попроще...
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку