Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата

немогу ничего найти по графике в С 
 А графики в C и нету. Не ожидал?

Совет: пересаживайся на современную ОСь(нахрен тебе ДОС? там даже компилеров вменяемых под нее нету) и используй ее средства для разработки графики.

Автор: Daevaorn 27.4.2007, 08:48
Цитата(nerezus @  27.4.2007,  08:30 Найти цитируемый пост)
А графики в C и нету. Не ожидал?

ну как так, у Borland то есть.

Автор: apook 27.4.2007, 08:50
Графика только Borland Turbo C++ предлагает несколько функций
причем минимум всего что может понадобиться.
А что за игра расскажи правила.

Автор: black_priest 27.4.2007, 09:02
Честно говоря, доску с фигурами ты напишешь (неважно под ДОС или винду), менюшки нарисуешь и всякое такое. Но про интеллект своих шахмат ты думал? Честно говоря, я не представляю вообще как такие вещи пишут. Написать шахматы, которые полноценно будут с тобой играть, продумывая ходы, рассчитывая различные комбинации и представляя собой действительно достойного соперника -  ИМХО слишком нетривиальная задача даже для достаточно опытного программиста. В инете куча всяких красивых шахмат, которые мягко говоря умеют переставлять фигуры, но ,за исключением редких случаев, не способны даже поставить мат при полном твоем несопротивлении. Так что подумай не только про интерфейс. Может чем нить другим заняться, что до конца реально будет довести  smile В любом случае удачи во всех начинаниях.

Автор: betal 27.4.2007, 09:06
Цитата(nerezus @  27.4.2007,  07:30 Найти цитируемый пост)
 А графики в C и нету. Не ожидал?
grapics.h smile 

Автор: apook 27.4.2007, 09:14
Давай шашки сворганим, там что то помню вроде легче правила

Автор: nerezus 27.4.2007, 09:17
Цитата

grapics.h
 А у меня такой нету ;) А знаешь почему? Потому что я не юзаю продукт борланда.
Я имел ввиду стандартные либы.

P.S. Я бы на GDI делал графу.

Автор: betal 27.4.2007, 09:20
Цитата(nerezus @  27.4.2007,  09:17 Найти цитируемый пост)
А у меня такой нету ;) А знаешь почему? Потому что я не юзаю продукт борланда.
Я имел ввиду стандартные либы.

P.S. Я бы на GDI делал графу. 

значит ты шахматы не напишешь smile 

Автор: Daevaorn 27.4.2007, 09:21
Цитата(nerezus @  27.4.2007,  10:17 Найти цитируемый пост)
P.S. Я бы на GDI делал графу.

а у меня нету GDI. Она тоже стандартная?

Автор: Akina 27.4.2007, 09:26
В примерах Borland С++ 3.1 имеются в т.ч. и шахматы под Windows 3.0. Алгоритм выбора хода (да и вообще все, кроме интерфейса) можно просто взять оттуда... кстати, при своей обалденной простоте он играет на уровне крепкого любителя.

Автор: Anikmar 27.4.2007, 09:27
Цитата(nerezus @  27.4.2007,  07:30 Найти цитируемый пост)
А графики в C и нету. Не ожидал?


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

Другое дело готовые картинки (bmp, jpg) - это все вручную делать придется


Автор: apook 27.4.2007, 09:30
Можно вообще без графики, менюшки текстовые, можно просто черно-беллое ну или цветное если че.. smile 

Автор: HappyLife 27.4.2007, 09:44
Цитата(black_priest @  27.4.2007,  09:02 Найти цитируемый пост)
Честно говоря, доску с фигурами ты напишешь (неважно под ДОС или винду), менюшки нарисуешь и всякое такое. Но про интеллект своих шахмат ты думал? Честно говоря, я не представляю вообще как такие вещи пишут. Написать шахматы, которые полноценно будут с тобой играть, продумывая ходы, рассчитывая различные комбинации и представляя собой действительно достойного соперника -  ИМХО слишком нетривиальная задача даже для достаточно опытного программиста. В инете куча всяких красивых шахмат, которые мягко говоря умеют переставлять фигуры, но ,за исключением редких случаев, не способны даже поставить мат при полном твоем несопротивлении. Так что подумай не только про интерфейс. Может чем нить другим заняться, что до конца реально будет довести  smile В любом случае удачи во всех начинаниях. 


Не согласен. Ты про шахматные компьютеры знаешь? Так вот, даже Гарри Каспарову не всегда удается победить. А суть этого очень проста, компьютер прощитывает большинсво возможных ходов, до определенной ступени, что и называется уровень сложности. Чем более ступень возможных ходов компьюетр наблюдает, тем уровень сложнее. 
Я одно время покупал книгу по созданию компьютерных шахмат.

Автор: black_priest 27.4.2007, 09:45
Можно вообще тогда: консольное окно, пишешь туда e2-e4 и т.д.  smile 

Автор: Greeen 27.4.2007, 09:45
black_priest
Цитата(Siansor @  27.4.2007,  02:49 Найти цитируемый пост)
Вобщем шахматы будут очень простые 
Там хочу сделать примерно такие функции
Сверху будет простая менюшка (Файл Вид Справка...)
В них смогут играть 2 человека . (переставлять фигуры..)


Автор: black_priest 27.4.2007, 09:54
2HappyLife Про шахматные компьютеры и про Каспарова знаю. Не совсем понял с чем ты не согласен. С тем, что писать интеллект шахмат - это нетривиальная задача? Если просто переставлять фигуры (у Siansor там кстати после переставлять фигуры многоточие, подразумевалось наверное и игра в том числе), то вроде никаких сложностей

Автор: HappyLife 27.4.2007, 09:57
black_priest, не согласен, что создавать их столь сложно. Конечно, если знать теорию.
Да, я заметил что, у человека, есть желание сделать только пользовательскую игру. Но сделать игру с компьютером тоже не столь сложно. Все упирается в знание техники и теории.

Автор: betal 27.4.2007, 10:03
Цитата(Anikmar @  27.4.2007,  09:27 Найти цитируемый пост)
Я чего-то пропустил?
И в турбо-си и в microsoft с есть возможность вывода примитивной графики - точки, линии, кружочки. Я лет цать назад работал на этих компиляторах и и даже делал примитивную оконную системку а ля windows.

 smile  smile 

Автор: nerezus 27.4.2007, 10:35
Цитата

значит ты шахматы не напишеш
 угу, не напишу: ибо не нужно мне это.

Цитата

а у меня нету GDI. Она тоже стандартная?
 Воооот. Я про это же сразу и сказал: в С/С++ нету средств работы с графикой. Стандартных. В либах каждого компилера и в каждой ОС - свои средства. Разные.

Цитата

Но про интеллект своих шахмат ты думал? Честно говоря, я не представляю вообще как такие вещи пишут
 Сомневаюсь, что это сложно ;)

Я полгода назад думал, что написать интерпретатор нереально сложно и могут это немногие. Как же я ошибался: не нужно оказалось для этого почти никаких знаний.

Автор: dizzy1984 27.4.2007, 18:22
Могу порекомендовать книгу
Программирование шахмат и других логических игр. Евгений Корнилов. Санкт Петербугр 2005.
Там есть несколько реализаций шахмат на си и паскаль

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

Так что мы все обречены...  smile 

Автор: Metixa 13.6.2007, 00:24
Есть такая задача:
Найти хотя бы одну расстановку 8 слонов на шахматной доске, когда каждое поле находится под ударом одного из них.
реално??
на доске 4х4 нашелся, но 8х8 ???? smile 

Автор: FiMa1 13.6.2007, 12:35
Цитата(Siansor @ 27.4.2007,  02:49)
Читал две книги (С за 21 день и Риччи Анси С)
Правда не знаком еще с графикой в С.  )
(немогу ничего найти по графике в С)

Имхо, вышеозначенную задачу более приемлемо писать на С++...

Автор: 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 можно взять оттуда.  smile 

Автор: MAKCim 14.6.2007, 16:46
Цитата(nerezus @  27.4.2007,  10:35 Найти цитируемый пост)
Сомневаюсь, что это сложно ;)

тупой рекурсивный перебор? конечно не сложно
но и ужасно неэффективно smile 

Автор: Metixa 15.6.2007, 21:41
Цитата(BigHeart @ 14.6.2007,  02:31)
Metixa
я недавно писал программку,которая расставляла 8 ферзей
так, что бы не один не угрожал другому.

BigHeart, твоя задача по моему боле простая задача чем моя. я даже не знаю стоит ли продолжать решать мою задачку smile 

Найти хотя бы одну расстановку 8 слонов на шахматной доске, когда каждое поле находится под ударом одного из них.

Автор: nerezus 16.6.2007, 08:23
Цитата

тупой рекурсивный перебор? 
 угу.
Я на олимпиадах  даже задачки на графы решал перебором ))

Автор: MAKCim 16.6.2007, 08:57
nerezus
там же обычно N большое, специально для того, чтобы перебор был достаточно долгим, и решение не прошло тесты  smile 

Автор: Metixa 14.12.2007, 00:08
Добрый ночи!!!

ищу кто решает задачи из этой (Шиманович - http://www.knorus.ru/95205) помогли бы друг-другу smile 

Автор: Cycle 15.12.2007, 01:10
http://artema.fopf.mipt.ru/ai/chessalg.html есть описание алгоритма AI для шахмат.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)