Суббота, 19.05.2012, 00:57
Приветствую Вас Гость

Сайт факультета ЭВТ ВолгГТУ

Меню сайта
Форма входа
Логин:
Пароль:

Войдите, чтобы не видеть рекламу
Категории раздела
Дополнительно
Реклама


Это интересно...

На 3-ем курсе преподаватель сказал, что не будет проверять мои лабы, потому что такой почерк может быть либо у дебила, либо у гения.

Поиск
Наш опрос
Вам нравится учиться в ВолГТУ?
Всего ответов: 203
Статистика

Онлайн всего: 9
Ныкаются: 9
Пользователей: 0
Главная » Файлы » Лекции » ООП [ Добавить материал ]

Задача о восьми ферзях методом ООП

[ Скачать с сервера (86.2Kb) - бесплатно ] 10.09.2010, 22:08

Фрагменты из pdf презентации:

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


Традиционное (процедурное) решение задачи
  • Для описания позиций фигур используется матрица
  • Программа решает задачу, систематически перебирая значения в матрице и проверяя каждую позицию: не удовлетворяет ли она условию?
  • Традиционная программа подобна человеку, находящемуся над доской и передвигающему безжизненные фигуры
Объектно-ориентированное решение задачи
  • В объектно-ориентированном подходе фигуры наделяются жизнью, чтобы они решили проблему самостоятельно
  • Вместо одного существа, управляющего процессом, ответственность за нахождение решения разделяется среди многих взаимодействующих агентов
  • Шахматные фигуры выступают одушевленными существами, взаимодействующими между собой, которым поручено найти решение
Исследование задачи
  • В любом случае никакие два ферзя не могут занимать один столбец и, следовательно, все столбцы заняты
  • Каждый ферзь должен знать только о своем соседе слева
  • Приемлемое решение для столбца N - это такая конфигурация столбцов с 1 по N, в которой ни один ферзь из этих столбцов не бьет другого
  • Каждому ферзю будет поручено найти приемлемое решение для себя и своих соседей слева
  • Решение всей задачи будет получено, когда самый правый ферзь отыщет приемлемое решение
Получение общего решения
  • Сначала все ферзи располагаются на первой строке разных столбцов доски
  • Последовательно для каждого ферзя, начиная с крайнего левого, находится приемлемое решение
  • для него и его соседей слева
  • Решение будет получено, когда получим приемлемое решение для крайнего правого ферзя или когда он не будет никем атакован
Получение приемлемого решения для ферзя и его соседей слева
  • Ферзь проверяет, находится ли он под атакой ферзей слева
  • Если его атакуют, то он смещается вверх
  • Если смещаться некуда, то он просит сместиться соседей слева для получения приемлемого решения и сам смещается на первую строку
  • Крайний левый ферзь перемещается вверх, а если смещаться некуда, 8 то - на первую строку

Похожие материалы

Категория: ООП | Добавил: COBA | Теги: программирование, ООП
Просмотров: 983 | Загрузок: 132 | Рейтинг: 1.0/1 |
Всего комментариев: 0

Имя *:
Email:
Код *:




Рейтинг@Mail.ru Создать сайт бесплатно