Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Шахматы
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
imported_SaboteuR imported_SaboteuR вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.12.2009
По умолчанию 27.12.2009, 22:38

Один отличный во всех смыслах человек считает, что мы являемся супер программистами, и что за полтора месяца можем самостоятельно освоить такой нестандартный язык, как пролог. Но так как реальность гораздо страшнее вымыслов, мы всего лишь обычные студенты, которые без внятной помощи мало что поняли в логике и построениях (соглситесь, за 1.5 месяца ни один язык не выучишь нормально).
По форуму искалa, сразу говорю. Только познаний разобраться явно не хватает. Поэтому прошу помощи у экспертов.

Задача такая:

На поле размером nxn расставить n/2 ладей и n/2 слонов, чтоб они не били друг друга, причем ладьи одного цвета, слоны другого. Вообще, нам еще нужно, чтоб это нечто обладало графическим интерфейсом, но я буду очень прям благодарна хотя бы за сам алгоритм!

P.S. очень желательно на turbo prolog
P.P.S. Я понимаю, что задача очень типовая, но и вы меня поймите...
Ответить с цитированием
  (#2 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 27.12.2009, 22:56

Переделать готовые чужие программки, которые есть в примерах к Турбо Прологу (nqueen, например) - вполне реально и легко. При этом не надо быть супер-программистами. Так, слегка.

Поиском тоже нужно уметь пользоваться. Искать нужно на ключевые слова ладей или слонов. Все немедленно находится.
http://www.hardforum.ru/t80621
Ответить с цитированием
  (#3 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,988
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 27.12.2009, 22:57

Цитата:
причем ладьи одного цвета, слоны другого
Ну ввобще-то ладьи не имеют цвета в том смысле, в каком его имеют слоны.
Цитата:
Вообще, нам еще нужно, чтоб это нечто обладало графическим интерфейсом
...
P.S. очень желательно на turbo prolog
Ну это просто гнусное извращение. Я понимаю, если б такие условия прозвучали хотя бы лет 10 назад.
Итого - Вам нужна программа расстановки n/2 ладей и n/2 однополых слонов, чтоб они не били друг друга на доске nxn?
Если - да, то здесь за Вас могут написать только собственно алгоритм расстановки, а графический интерфейс уверен, что нет.
Ответить с цитированием
  (#4 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 27.12.2009, 23:01

Да, еще советую строчку с write там раскомментировать (и поставить отсечение, а то решений очень много), а в строчке с counter заменить counter(I) на retract(counter(I)).
Кроме этого, в объявлении счетчика counter в Турбо Прологе нужно заменить слово single на слово determ.

Там цвет слонов не учитывается, так что посмотрите, что и как нужно учитывать (если это не нужно только для графического отображения :-) ).
Ответить с цитированием
  (#5 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 27.12.2009, 23:28

Цитата:
На поле размером nxn расставить n/2 ладей и n/2 слонов, чтоб они не били друг друга, причем ладьи одного цвета, слоны другого. Вообще, нам еще нужно, чтоб это нечто обладало графическим интерфейсом, но я буду очень прям благодарна хотя бы за сам алгоритм!
Графический интерфейс -- это сильно!!! :shock:
Цитата:
ладьи одного цвета, слоны другого
-- Ещё сильнее!!!!!! :shock: :shock:
А колется запросто, если без "интерфейса")))
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Грымзик Грымзик вне форума
Member
 
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Регистрация: 25.09.2009
По умолчанию 27.12.2009, 23:35

Чего-то я не понимаю чего вы так напали на цвет фигур?
Ответить с цитированием
  (#7 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 27.12.2009, 23:51

Там очень легко учесть цвет слонов (чтобы они стояли на полях одного и того же цвета) - для этого нужно просто пересчитать номера диагоналей - их будет вполовину меньше.
Я как-то надеюсь, что студентка сама попробует это сделать. Та программа вообще легко модифицируема.
Все решено, только диагонали берутся все.
Ответить с цитированием
  (#8 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 27.12.2009, 23:56

Цитата:
Чего-то я не понимаю чего вы так напали на цвет фигур?
Неопределёнка в условии, однако... Толи слоны однопольные, толи ладьи на одном цвете, а слоны на другом, толи ещё чего :upset:
Цитата:
Грамотная формулировка = половина решения
Ответить с цитированием
  (#9 (permalink)) Старый
Грымзик Грымзик вне форума
Member
 
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Регистрация: 25.09.2009
По умолчанию 28.12.2009, 00:25

Хотя да, похож про цвет все по-разному понимают. По-моему там
имелось в виду, не то, что они на диагоналях одного цвета стоят
(ведь в шахматах слоны одного цвета на любых диагоналях стоят),
а то, что ладьи друг-друга не бьют, и слоны друг-друг не бьют.
Я вот задумалась, вообще возможно ли расставить слонов и ладьей,
считая что каждый бьет каждого?
Ответить с цитированием
  (#10 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 28.12.2009, 00:40

В шахматах один и тот же слон цвет не меняет.
Я думаю, что имеется в виду все-таки цвет полей. Т.е. все слоны на полях одного цвета, все ладьи - на полях другого цвета.
Из той программы у меня мгновенно получилось, что если слоны на белых, а ладьи на черных - то расстановок 59536. Значит, всего их должно быть в 2 раза больше.

Есть какие-то книжки про такого рода шахматные задачи (бьет - не бьет ...) - их там море. У меня таких книжек нет.
Ответить с цитированием
  (#11 (permalink)) Старый
Грымзик Грымзик вне форума
Member
 
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Регистрация: 25.09.2009
По умолчанию 28.12.2009, 00:46

Я понимаю, что один и тот же слон цвет поля не меняет,
но из фразы "белый слон" я не могу сделать вывод на белом
поле он стоит или нет. И я думаю, что большинство людей
фразу "слон такого-то цвета" понимают, что именно он такого
цвета, а не то, что он на поле такого цвета находится.
Ответить с цитированием
  (#12 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 28.12.2009, 01:05

Цитата:
Я понимаю, что один и тот же слон цвет поля не меняет,
но из фразы "белый слон" я не могу сделать вывод на белом
поле он стоит или нет. И я думаю, что большинство людей
фразу "слон такого-то цвета" понимают, что именно он такого
цвета, а не то, что он на поле такого цвета находится.
Ага, тогда формулировку мона трактовать так: ладьи одного цвета друг-друга не бьют, а защищают... То же самое про слонов... То бишь требуется "ни одна ладья не бьёт ни одного слона, и ни один слон не бьёт ни одну ладью"... А дальше-больше)))
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
Грымзик Грымзик вне форума
Member
 
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Регистрация: 25.09.2009
По умолчанию 28.12.2009, 01:14

Что-то я про защиту не очень поняла, как там можно защищать друг-друга.
Цитата:
То бишь требуется "ни одна ладья не бьёт ни одного слона, и ни один слон не бьёт ни одну ладью"...
По-моему именно это и требуется.
Ответить с цитированием
  (#14 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 28.12.2009, 01:30

Цитата:
Что-то я про защиту не очень поняла, как там можно защищать друг-друга.

По-моему именно это и требуется.
В этих куклах фигуры одного цвета друг-друга не бьют, а "защищают"...
Короче, чего и как мне не ясно
Ответить с цитированием
  (#15 (permalink)) Старый
SergeMukhin SergeMukhin вне форума
Member
 
Сообщений: 260
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 22.06.2006
По умолчанию 28.12.2009, 13:02

Цитата:
соглситесь, за 1.5 месяца ни один язык не выучишь нормально
если речь о языке программирования - не соглашусь.

Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шахматы на C# как их создать Areostar .NET 10 15.02.2012 19:32
Шахматы Stemy Prolog 77 04.07.2011 02:00
Написание игры шахматы в Delphi 7 GodZiLA Вопросы начинающих программистов 0 24.10.2010 19:01
Снова шахматы!=) axllow Prolog 4 21.01.2010 17:15
Задача про шахматы!Помогите, пожалуйста, переделать код! Katerina_Katerina Prolog 7 26.12.2009 08:36
HELP! задача про шахматы freakrage Pascal 6 11.12.2009 13:47
Где найти исходники к программе шахматы Faradel Вопросы начинающих программистов 0 08.02.2009 18:26
Шахматы(пат конь+ферзь) imported_Олька Задания за деньги 47 22.12.2007 22:25
шахматы randomizer Prolog 3 11.09.2007 22:19
программа игры в шахматы Malah Prolog 3 05.01.2006 12:52
Как написать программный код для игры в шахматы _NauT Вопросы начинающих программистов 4 12.05.2005 23:50
Как написать программу шахматы на Pascale borissrus Вопросы начинающих программистов 0 28.02.2005 17:25



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов