2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 
Сообщение18.12.2006, 21:55 
Заслуженный участник
Аватара пользователя


09/10/05
1142
SE - Software Engineering

Дело не в том, чтобы хотеть или не хотеть помочь. Здесь Вам наверняка окажут помощь. Просто если это семестровая (или курсовая), которую Вы делаете к тому-же в группе (а всё выглядит именно так) то весь код программы будет занимать несколько тысяч (а возможно и более 10 000) строк и писать её здесь на форуме не будет никто, не потому, что нет желания Вам помочь, а потому что объём не позволит...
Если Вы хотите получить помощь, то Вам лучше спрашивать про отдельные тулы или как имплементировать отдельные опции, причём чем конкретнее вопрос, тем более полным будет возможный ответ.

 Профиль  
                  
 
 
Сообщение18.12.2006, 22:29 


16/12/06
7
это не курсовая и не семестровая (мы такое не пишем, пока) и делаю я ее одна. Если бы я делала не одна я бы наверно поспрашивала в группе... В том то и дело что эта прога должна быть простой (мы только начали изучать Builder!). Препода в универе я найти не могу для уточнения условия... может не нужно рассматривать все-все ходы... Мне нужна какая-нибудь база от чего оттолкнуться.

 Профиль  
                  
 
 
Сообщение18.12.2006, 22:40 
Заслуженный участник
Аватара пользователя


09/10/05
1142
Ну если так, то вот Вам в помощь к примеру...

А вообще советую воспользоваться гуглом : Source code for game "Draughts".

 Профиль  
                  
 
 
Сообщение18.12.2006, 22:53 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
worm2 писал(а):
Но сложность, как мне кажется, в деталях. Отладка алгоритма перебора всех возможных ходов с учётом дамок и всех правил (…) --- возня малоприятная.

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

worm2 писал(а):
насколько я знаю, есть такое правило: из всех ходов игрок обязан выбрать тот, при котором забирается больше всего шашек

В русских шашках такого правила нет, в 100-клеточных — есть. Но мы, вроде, про русские. (В американском аналоге — dsraughts — еще более странные правила. Например, дамка ходит только на одну клетку. Но в них я не разбирался). С дамками хитрее: дамка обязана взять всю цепочку, но не обязательно самую длинную цепочку.

Capella писал(а):
Kстати, вот ещё один вариант - BackTracking!

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

Sunrise_kitten писал(а):
А можно попонятнее, я не все поняла ((

Идея состоит в написании рекурсивной процедуры перебора с примерно таким интерфейсом:
function HalfStep(whites: bool, availableDepth: int): int
если availableDepth <= 0, то функция возвращает оценку позиции (тут надо быть внимательным, оценка позиции за белых, или за черных)
Если же availableDepth положительна, перебирает все возможные ходы и вызывает себя рекурсивно.

Дальнейшее — детали реализации. Их много, но я не могу предсказать, каким путем Вы пойдете, какое представление данных изберете, и потому не могу подсказать подводные камни. Но все это вполне проходимо, за недельку можно справиться.

Спрашивайте, будем рады помочь. Но, как и говорили — помочь, а не написать за Вас.

Добавлено спустя 7 минут 57 секунд:

Sunrise_kitten писал(а):
может не нужно рассматривать все-все ходы...

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

 Профиль  
                  
 
 
Сообщение18.12.2006, 23:13 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Для начала, наверное, стоит выбрать, в каком виде хранить отдельную позицию. Далее научиться по позиции определять все возможные ходы. Далее для пары "позиция" + "ход" получать новую позицию...

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

 Профиль  
                  
 
 
Сообщение19.12.2006, 00:56 
Заслуженный участник


28/10/05
1368
Sunrise_kitten писал(а):
а я че, прошу мне готовую лабу выложить в архивчике!!! я прошу помощи, это что запрещено???


Если хотите помощи, то прочитайте правила. Они в данный момент расположены в математическом разделе, но относятся к любым сообщениям, подпадающим под тематику "помогите решить/разобраться".

 Профиль  
                  
 
 
Сообщение19.12.2006, 05:21 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
PAV писал(а):
Вообще-то все это очень нехило, особенно для начинающего

Потому-то за это и дают автомат. Как продемонстрировавшему достаточный навык. Но задание, согласен, садистское.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group