Восемь Проблем Королевы Вновь – VB 6.0 – База кода

Скачать

Название (оригинал): The Eight Queens Problem Revisited

Описание:
Англ (оригинал)This program started out as a project in Byte Magazine way back in the 70s.
I wrote it in basic for the IBM 370. In those days I didn’t know recursive programming, so I wrote it in procedural format. Yuck. Today I tried to duplicate that, but I found I can’t even think like that anymore. Also – it took 3 weeks then and 30 min now, not counting looking up how to run the @#$ MS flex grid…:-)
The article caused quite a sensation. Byte published two issues of mail replies to it…
The problem is to put 8 Queens on a chess board in such a manner that no Queen can take another. This is surprisingly difficult.
The algorithm I use is a common sense one but I didn’t think of it – I read it in a book somewhere. What you do is divide the chess board into columns, and, moving from the left, place a Queen in the first column in the lowest available non-tried square. Then you place one penny on each square the Queen covers.
Then you move one column to the right and do this again. Note the Queen is pushed up to the third square by the two pennies already in it’s column.
Move right again. When you get to the sixth column you cant place a Queen as the column is full of pennies.
You back to the previous column, remove the Queen and remove all it’s pennies. Then you go up in the column, if you can, and replace the Queen and all its pennies, and keep going.
When you can’t go up any further, you go back another Queen.
When you place a Queen on the 8th column you record the position and then treat it as if it failed. This program pauses 5 seconds and makes a beep.
When you cannot move the first Queen any higher, the search is over.

Рус (машинный)Эта программа начинала как проект в байт кассеты еще в 70-х годах.
Я писал на бейсике для IBM 370. В те времена я не знал, рекурсивное программирование, поэтому я написал это в процедурном формате. Фу. Сегодня я пытался дублировать, но я даже не могу больше об этом думать. Также – это заняло 3 недели, тогда и 30 мин сейчас, не считая искал как запустить @#$ МС гибкого трубопровода сетки…:-)
Статья вызвала настоящую сенсацию. Байт опубликовано два вопроса, ответы на него почту…
Проблема в том, чтобы поставить 8 Ферзей на шахматной доске таким образом, чтобы ни один Ферзь может взять другой. Это на удивление сложно.
Алгоритм я использую здравый смысл, но я не думал об этом – я читал об этом в книгах. То, что вы сделать, это разделить шахматную доску на столбцы, и, двигаясь слева, Место ферзя в первом столбце в низкой не пробовал квадрат. Затем Вы размещаете одну копейку на каждом квадратном Королева покрывает.
Затем переместите на одну колонку вправо и сделать это снова. Обратите внимание, Королева поднимется в третий квадрат на две копейки уже в колонке.
Двигаться вправо снова. Когда вы доберетесь до шестого столбца крутая Королева как столбец полный медяков.
Вернуться на предыдущий столбец, удалить королеву, и снять все это копейки. Затем вы идете в колонне, если можно, и заменить королеву и все свои гроши, так и продолжают идти.
Когда вы не можете идти дальше, ты вернешься другой королевы.
Когда Вы размещаете Королева на 8-м столбце записать позицию и затем рассматривать его как, если он не. Эта программа делает паузу в 5 секунд и раздается звуковой сигнал.
Когда вы не можете двигаться, первой Королевой выше, поиск по.

база кода