Игра в шахматы.
От: Аноним  
Дата: 28.03.05 18:13
Оценка:
Здравствуйте всем! Заранее извините, если форумом ошибся.
Мне нужен алгоритм, по которому можно было бы написать программу игры в шахматы на Delphi. Единственное чтоя знаю из области написания подобной программы — это как сделать доску и фигуры (это у меня есть). Мне нужно.. ну например:

1. Как заставить коня ходить буквой "Г"?
2. Как пешку заставить ходить по вертикали а брать по диагонали?

И т.д. Вопросы в том же духе. В общем, наверное нужно сваять некий искуственный интеллект по которому это всё дело работало бы. Но как? Если кто знает, напишите сюда в форум, или мне на e-mail: web-support@mail.ru
Заранее спасибо!
Re: Игра в шахматы.
От: _DAle_ Беларусь  
Дата: 28.03.05 18:36
Оценка: +4
Здравствуйте, Аноним, Вы писали:


А>Здравствуйте всем! Заранее извините, если форумом ошибся.

А>Мне нужен алгоритм, по которому можно было бы написать программу игры в шахматы на Delphi. Единственное чтоя знаю из области написания подобной программы — это как сделать доску и фигуры (это у меня есть). Мне нужно.. ну например:

А>1. Как заставить коня ходить буквой "Г"?

А>2. Как пешку заставить ходить по вертикали а брать по диагонали?

А>И т.д. Вопросы в том же духе. В общем, наверное нужно сваять некий искуственный интеллект по которому это всё дело работало бы. Но как? Если кто знает, напишите сюда в форум, или мне на e-mail: web-support@mail.ru

А>Заранее спасибо!

Вы конечно извините, но если возникают вопросы "Как заставить коня ходить буквой "Г"", то о написании какого шахматного AI может вообще вестичь речь?
Re: Игра в шахматы.
От: Nev0 Россия  
Дата: 28.03.05 18:38
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Здравствуйте всем! Заранее извините, если форумом ошибся.

А>Мне нужен алгоритм, по которому можно было бы написать программу игры в шахматы на Delphi. Единственное чтоя знаю из области написания подобной программы — это как сделать доску и фигуры (это у меня есть). Мне нужно.. ну например:

А>1. Как заставить коня ходить буквой "Г"?

А>2. Как пешку заставить ходить по вертикали а брать по диагонали?

А>И т.д. Вопросы в том же духе. В общем, наверное нужно сваять некий искуственный интеллект по которому это всё дело работало бы. Но как? Если кто знает, напишите сюда в форум, или мне на e-mail: web-support@mail.ru

А>Заранее спасибо!

В Examples Turbo Pascal'я 7.0 есть пример программы, играющей в шахматы. Называется, CHESS. Думаю тебе это поможет.
Re: Игра в шахматы.
От: Chamele0n  
Дата: 28.03.05 19:22
Оценка:
Здравствуйте, <Аноним>, Вы писали:

Вообще-то, представление поля и ходы в шахматах — дело последнее.
Начинать с alpha-beta и mini-max
... << RSDN@Home 1.1.3 stable >>
Re: Игра в шахматы.
От: fefelov Россия  
Дата: 28.03.05 19:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне нужен алгоритм


Обсуждалось здесь.
Re[2]: Игра в шахматы.
От: DelphiMaster  
Дата: 29.03.05 02:04
Оценка:
Здравствуйте, _DAle_, Вы писали:


_DA>Вы конечно извините, но если возникают вопросы "Как заставить коня ходить буквой "Г"", то о написании какого шахматного AI может вообще вестичь речь?


А разве ход конём не является областью шахматного AI? Или это что-то значительно более сложное? Я извиняюсь, конечно, может, глупые вопросы,но я никогда такие вещи не разрабатывал. И потом ещё: здесь мне посоветовали посмотреть примеры Borland Pascal (там установлены исходники CHESS по умолчанию). Но весь ужас в том, что они не компилируются (хотите верьте хотите нет). Может есть у кого прямая ссылка на исходники шахмат?
Re[3]: Игра в шахматы.
От: Socrat Россия  
Дата: 29.03.05 06:08
Оценка:
Здравствуйте, DelphiMaster, Вы писали:

DM>И потом ещё: здесь мне посоветовали посмотреть примеры Borland Pascal (там установлены исходники CHESS по умолчанию). Но весь ужас в том, что они не компилируются (хотите верьте хотите нет).


Вот и разберешься.
Re[3]: Игра в шахматы.
От: Chamele0n  
Дата: 29.03.05 07:37
Оценка:
Здравствуйте, DelphiMaster, Вы писали:

DM>А разве ход конём не является областью шахматного AI? Или это что-то значительно более сложное? Я извиняюсь, конечно, может, глупые вопросы,но я никогда такие вещи не разрабатывал. И потом ещё: здесь мне посоветовали посмотреть примеры Borland Pascal (там установлены исходники CHESS по умолчанию). Но весь ужас в том, что они не компилируются (хотите верьте хотите нет). Может есть у кого прямая ссылка на исходники шахмат?


Нет, не является.
Схема такая — есть AI — он ищет подходящий ход перебором, двигаясь по дереву возможных позиций. Из него вызывается функция генерации перемещения — ход конем — ее забота. Если мы подставим туда другую функцию, получем шашки, например. Дальше, есть оценочная функция — она уже решает, хороший это ход или нет
... << RSDN@Home 1.1.3 stable >>
Re: Игра в 1-е апреля
От: Voblin Россия http://maslyaew.narod.ru/
Дата: 29.03.05 07:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне нужен алгоритм, по которому можно было бы написать программу игры в шахматы на Delphi.

Господа, возникло смутное ощущение, что нас разводят.

А ведь 1-е апреля ещё не наступило.

А> Единственное чтоя знаю из области написания подобной программы — это как сделать доску и фигуры (это у меня есть).

Купил, наверно осталось только сваять некий искуственный интеллект и приделать моторчики к фигуркам.
Что-то я какой-то злой сегодня
Re: Игра в шахматы.
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 29.03.05 08:10
Оценка:
Такая тема и такое ее продолжение... Мне кажеться, что Вы несколько не готовы к такой задаче, либо это тема лабораторной работы...

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

Заданые вопросы относятся к технике программирования и совсем мало к шахматному программированию... Ответы на вопросы зависят напрямую от того, как ты собираешься представлять позицию. Чисто интуитивно, я начинал с массива из 64-х байт, но однажды прочитал, что разработчик программы (вроде Греко) в новой версии переделал пердставление позиции с массива на список фигур... Вот отредактированый фрагмент из недавней попытки написать шахматныю программу (доска представляет в виде массива):

@ Строим таблицы для коня. Данный код инициализирует два массива: |KnightTable|,
которая последовательно клетки, куда может пойти конь последовательно с полей
0, 1, 2 (a1, b1, c1, ...), Разделенных символом -1. Массив |KnightCatalog| показывает,
с какого индекса в массиве |KnightTable| перечислен список полей, куда может пойти конь.

@d PutKnightMove(#) == begin KnightTable[C] := #; C := C + 1; end

@<Таблица для коня@> =
  C := 0;
  Cell := 0;
  for Y := 0 to 7 do
    for X := 0 to 7 do
    begin
      KnightCatalog[Cell] := C;
      if (X >= 2) and (Y >= 1) then PutKnightMove(Cell-10);
      if (X >= 1) and (Y >= 2) then PutKnightMove(Cell-17);
      if (X <= 6) and (Y >= 2) then PutKnightMove(Cell-15);
      if (X <= 5) and (Y >= 1) then PutKnightMove(Cell-6);
      if (X <= 5) and (Y <= 6) then PutKnightMove(Cell+10);
      if (X <= 6) and (Y <= 5) then PutKnightMove(Cell+17);
      if (X >= 1) and (Y <= 5) then PutKnightMove(Cell+15);
      if (X >= 2) and (Y <= 6) then PutKnightMove(Cell+6);
      PutKnightMove(-1);
      Cell := Cell + 1;
    end;

@ Чтобы определеть список полей, куда может пойти конь в поля I, нам надо
будет последовательно просматривать поля |KnightTable[KnightCatalog[18]], 
KnightTable[KnightCatalog[18]+1], ...|, до тех пор, пока мы не получим в результате -1.

@<Ход белым конем@> =
  J := KnightCatalog[I];
  while KnightTable[J] <> -1 do
  begin
    if Board[KnightTable[J]] <= 0 then { Если поле занято черной фигурой или свободно }
      AddMove(I, KnightTable[J]);
    J := J + 1;
  end;


Вообще... По шахматному программированию действует рассылка на yahoo. Могу порекомендовать такие ссылки:

Описание программы REBEL
Теория шахматного программирования
Начала
Re[2]: Игра в 1-е апреля
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 29.03.05 08:30
Оценка:
Здравствуйте, Voblin, Вы писали:

А>>Мне нужен алгоритм, по которому можно было бы написать программу игры в шахматы на Delphi.

V>Господа, возникло смутное ощущение, что нас разводят.

V>А ведь 1-е апреля ещё не наступило.


Разводят, потому что на Delphi? Скажем, мне нравится такой движок, как Delfi, рейтинг 2550-2400, чемпион Италии 2004 года...

TECHNICAL DETAILS
Delfi is quite an uncommon chess program, it uses some human-like strategical/tactical schemes to play the game, many of these ideas were conceived during my games against computers in the last 15 years. Delfi has a lot of endgame knowledge, it can play very well the most important 4-pieces endgames and the KRP-KR, thanks to an internal database.
Delfi is written in Object Pascal, in pure object oriented style.

Re[3]: Игра в шахматы.
От: Nev0 Россия  
Дата: 29.03.05 12:33
Оценка:
Здравствуйте, DelphiMaster, Вы писали:

DM>Здравствуйте, _DAle_, Вы писали:



_DA>>Вы конечно извините, но если возникают вопросы "Как заставить коня ходить буквой "Г"", то о написании какого шахматного AI может вообще вестичь речь?


DM>А разве ход конём не является областью шахматного AI? Или это что-то значительно более сложное? Я извиняюсь, конечно, может, глупые вопросы,но я никогда такие вещи не разрабатывал. И потом ещё: здесь мне посоветовали посмотреть примеры Borland Pascal (там установлены исходники CHESS по умолчанию). Но весь ужас в том, что они не компилируются (хотите верьте хотите нет).


Не может быть. Сейчас у меня нет под рукой Pascal'я, но я точно помню, что еще в школе (видимо, это не так трудно было) я его скомпилил и попробовал поиграть, интерфейс конечно ужасный (текстовый), но дело не в интерфейсе.
Re: Игра в шахматы.
От: Alex Alexandrov США  
Дата: 29.03.05 18:10
Оценка: :)))
Здравствуйте, <Аноним>, Вы писали:


А>Здравствуйте всем! Заранее извините, если форумом ошибся.

А>Мне нужен алгоритм, по которому можно было бы написать программу игры в шахматы на Delphi. Единственное чтоя знаю из области написания подобной программы — это как сделать доску и фигуры (это у меня есть). Мне нужно.. ну например:

А>1. Как заставить коня ходить буквой "Г"?

А>2. Как пешку заставить ходить по вертикали а брать по диагонали?

А>И т.д. Вопросы в том же духе. В общем, наверное нужно сваять некий искуственный интеллект по которому это всё дело работало бы. Но как? Если кто знает, напишите сюда в форум, или мне на e-mail: web-support@mail.ru

А>Заранее спасибо!

Гарри, ты?
[ Posted via RSDN@Home 1.1.4 beta 4 (303) listening to Сказка — Голубой щенок (1) ]
It's kind of fun to do the impossible (Walt Disney)
Re: Игра в шахматы.
От: Chez Россия  
Дата: 30.03.05 10:04
Оценка:
Есть такая софтина, Borland Pascal 7.0.
Так вот, в полном дистрибе в сэмплах есть исходник (на паскале) очень даже прилично (для сэмпла) играющий в шахматы.

Chez, ICQ#161095094

Posted via:RSDN@Home;version:1.1.3;muzikstamp:Sopor Aeternus — Im Garten Des Nichts

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.