Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Шахматы на С |
Автор: Siansor 27.4.2007, 02:49 |
Всем привет! Хочу написать простые шахматы под дос Читал две книги (С за 21 день и Риччи Анси С) Вобщем шахматы будут очень простые Там хочу сделать примерно такие функции Сверху будет простая менюшка (Файл Вид Справка...) В них смогут играть 2 человека . (переставлять фигуры..) Интерфейс должен состоять из 2 окон. В первом окне - доска 8 на 8 . Во втором - запись партии. Правда не знаком еще с графикой в С . ) Вобщем подскажите с чего начинать . или просто дайте пару советов (или исходных кодов,я уже скачал пару десятков шахмат на С = но там от 10 000 строк и куча наворотов.. на для меня) Добавлено через 13 минут и 48 секунд Немного подумав , я решил большую задачу разбить на пару маленьких ... 1. Разработка интерфейса на С а) доска с фигурами (наверно это будут просто буквы ... например конь буква к ) б) менюшка 2. Создание функций с правилами игры (мат, пат , шах ...) 3. другие функции . (немогу ничего найти по графике в С ) |
Автор: nerezus 27.4.2007, 07:30 | ||
Совет: пересаживайся на современную ОСь(нахрен тебе ДОС? там даже компилеров вменяемых под нее нету) и используй ее средства для разработки графики. |
Автор: Daevaorn 27.4.2007, 08:48 |
ну как так, у Borland то есть. |
Автор: apook 27.4.2007, 08:50 |
Графика только Borland Turbo C++ предлагает несколько функций причем минимум всего что может понадобиться. А что за игра расскажи правила. |
Автор: black_priest 27.4.2007, 09:02 |
Честно говоря, доску с фигурами ты напишешь (неважно под ДОС или винду), менюшки нарисуешь и всякое такое. Но про интеллект своих шахмат ты думал? Честно говоря, я не представляю вообще как такие вещи пишут. Написать шахматы, которые полноценно будут с тобой играть, продумывая ходы, рассчитывая различные комбинации и представляя собой действительно достойного соперника - ИМХО слишком нетривиальная задача даже для достаточно опытного программиста. В инете куча всяких красивых шахмат, которые мягко говоря умеют переставлять фигуры, но ,за исключением редких случаев, не способны даже поставить мат при полном твоем несопротивлении. Так что подумай не только про интерфейс. Может чем нить другим заняться, что до конца реально будет довести ![]() |
Автор: betal 27.4.2007, 09:06 |
grapics.h ![]() |
Автор: apook 27.4.2007, 09:14 |
Давай шашки сворганим, там что то помню вроде легче правила |
Автор: nerezus 27.4.2007, 09:17 | ||
Я имел ввиду стандартные либы. P.S. Я бы на GDI делал графу. |
Автор: Daevaorn 27.4.2007, 09:21 |
а у меня нету GDI. Она тоже стандартная? |
Автор: Akina 27.4.2007, 09:26 |
В примерах Borland С++ 3.1 имеются в т.ч. и шахматы под Windows 3.0. Алгоритм выбора хода (да и вообще все, кроме интерфейса) можно просто взять оттуда... кстати, при своей обалденной простоте он играет на уровне крепкого любителя. |
Автор: Anikmar 27.4.2007, 09:27 |
Я чего-то пропустил? И в турбо-си и в microsoft с есть возможность вывода примитивной графики - точки, линии, кружочки. Я лет цать назад работал на этих компиляторах и и даже делал примитивную оконную системку а ля windows. Другое дело готовые картинки (bmp, jpg) - это все вручную делать придется |
Автор: apook 27.4.2007, 09:30 |
Можно вообще без графики, менюшки текстовые, можно просто черно-беллое ну или цветное если че.. ![]() |
Автор: HappyLife 27.4.2007, 09:44 | ||
Не согласен. Ты про шахматные компьютеры знаешь? Так вот, даже Гарри Каспарову не всегда удается победить. А суть этого очень проста, компьютер прощитывает большинсво возможных ходов, до определенной ступени, что и называется уровень сложности. Чем более ступень возможных ходов компьюетр наблюдает, тем уровень сложнее. Я одно время покупал книгу по созданию компьютерных шахмат. |
Автор: black_priest 27.4.2007, 09:45 |
Можно вообще тогда: консольное окно, пишешь туда e2-e4 и т.д. ![]() |
Автор: Greeen 27.4.2007, 09:45 | ||
black_priest,
|
Автор: black_priest 27.4.2007, 09:54 |
2HappyLife Про шахматные компьютеры и про Каспарова знаю. Не совсем понял с чем ты не согласен. С тем, что писать интеллект шахмат - это нетривиальная задача? Если просто переставлять фигуры (у Siansor там кстати после переставлять фигуры многоточие, подразумевалось наверное и игра в том числе), то вроде никаких сложностей |
Автор: HappyLife 27.4.2007, 09:57 |
black_priest, не согласен, что создавать их столь сложно. Конечно, если знать теорию. Да, я заметил что, у человека, есть желание сделать только пользовательскую игру. Но сделать игру с компьютером тоже не столь сложно. Все упирается в знание техники и теории. |
Автор: betal 27.4.2007, 10:03 | ||
![]() ![]() |
Автор: nerezus 27.4.2007, 10:35 | ||||||
Я полгода назад думал, что написать интерпретатор нереально сложно и могут это немногие. Как же я ошибался: не нужно оказалось для этого почти никаких знаний. |
Автор: dizzy1984 27.4.2007, 18:22 |
Могу порекомендовать книгу Программирование шахмат и других логических игр. Евгений Корнилов. Санкт Петербугр 2005. Там есть несколько реализаций шахмат на си и паскаль Насколько я знаю нельзя написать шахматную программу, работающую на неспециализированном железе, которую не сможет обыграть гроссмейстер. Насколько я знаю нет гроссмейстера который может обыграть хорошо написанную программу, работающую на специализированном железе. Где-то с начала 90-х годов компьютер подмял под себя способности человека по игре в шахматы. Так что мы все обречены... ![]() |
Автор: Metixa 13.6.2007, 00:24 |
Есть такая задача: Найти хотя бы одну расстановку 8 слонов на шахматной доске, когда каждое поле находится под ударом одного из них. реално?? на доске 4х4 нашелся, но 8х8 ???? ![]() |
Автор: FiMa1 13.6.2007, 12:35 | ||
Имхо, вышеозначенную задачу более приемлемо писать на С++... |
Автор: Shaggie 13.6.2007, 12:59 |
dizzy1984, я тоже читал, хорошая книга. Правильно советуешь, держи плюс! Если разрабатывать в программе искусственный интелект, то без предварительного чтения этой книжки лучше не соваться - очень много подводных камней она поможет обойти. Если запланирована простая ГУИшка для двух человек... имхо, это не стоит затрат времени. |
Автор: BigHeart 14.6.2007, 02:31 |
Metixa, я недавно писал программку,которая расставляла 8 ферзей так, что бы не один не угрожал другому. |
Автор: Shaggie 14.6.2007, 06:32 |
BigHeart, в сях писал? На ветке пролога есть тема, где эта задача влёт решается. |
Автор: regis 14.6.2007, 12:01 |
Есть GNU chess, которые, по отзывам знающих людей, играют двольно неплохо. Так что весь AI можно взять оттуда. ![]() |
Автор: MAKCim 14.6.2007, 16:46 |
тупой рекурсивный перебор? конечно не сложно но и ужасно неэффективно ![]() |
Автор: Metixa 15.6.2007, 21:41 | ||
BigHeart, твоя задача по моему боле простая задача чем моя. я даже не знаю стоит ли продолжать решать мою задачку ![]() Найти хотя бы одну расстановку 8 слонов на шахматной доске, когда каждое поле находится под ударом одного из них. |
Автор: nerezus 16.6.2007, 08:23 | ||
Я на олимпиадах даже задачки на графы решал перебором )) |
Автор: MAKCim 16.6.2007, 08:57 |
nerezus, там же обычно N большое, специально для того, чтобы перебор был достаточно долгим, и решение не прошло тесты ![]() |
Автор: Metixa 14.12.2007, 00:08 |
Добрый ночи!!! ищу кто решает задачи из этой (Шиманович - http://www.knorus.ru/95205) помогли бы друг-другу ![]() |
Автор: Cycle 15.12.2007, 01:10 |
http://artema.fopf.mipt.ru/ai/chessalg.html есть описание алгоритма AI для шахмат. |