Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2014, 13:57   #1
pyxamex
Новичок
Джуниор
 
Регистрация: 29.05.2014
Сообщений: 1
По умолчанию Pascal ABC. Установить на шахматной доске минимум ферзей (первоначально 8), чтобы каждое поле было под боем

Доска (8*8). Требуется, чтобы программа выводила первоначально матрицу с 8-ью ферзями, затем с 7-ью и так уменьшала количество ферзей до тех пор пока не станет невозможно расставить ферзей так, чтобы все поля оказались под боем.
У меня есть не до конца продуманный алгоритм (поэтому код не получается)
1)Задаем начальное количество ферзей n=8

2)с помощью random (возможно по-другому) заполняем матрицу ферзями

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

3)ферзь обозначим цифрой 2, поля, находящиеся под угрозой ферзя ((i+(ik-jk)=j) or (i+j=ik+jk) or (i=ik) or (j=jk)) обозначим 1

4)в переменной p проверяем все ли клетки под боем, если p=8*8, то выводим матрицу
pyxamex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверить по позициям на шахматной доске бьёт ли ферзь заданное поле (Delphi) kaznachey1993 Помощь студентам 19 29.05.2014 20:58
Ладья на шахматной доске C++ VIGANTI Помощь студентам 2 09.10.2012 20:15
Про ферзей на abc Pascal COBECTb Помощь студентам 2 19.01.2011 07:51
Какое наимньшее число ферзей можно расставить на доске так, чтобы они держали под бонм все свободные поля alykaa Помощь студентам 4 01.12.2010 18:48
Си/Си++ Слоны на шахматной доске Маришка_Курносова Помощь студентам 1 12.09.2010 01:02