День добрый, форумчане
Задался я вопросом расписать абсолютно все варианты расстановки ферзей из . Я знаю, что есть куча решений данной проблемы в сети, но мне захотелось из "спортивного интереса" сделать все самостоятельно, поэтому не предлагайте варианты решений.
Вверху часть кода для решения сей задачи. Я уже нашел частное решение проблемы в графической интерпретации в excel (собственно оттуда и взят код сверху, который был предварительно подкорректирован, NB: это набросок для массивного решения, он не проверялся). Вопрос такой: хочу осуществить обращение к этой процедуре из другой, но не знаю как при этом обрабатывать массив в таком случае.
Вот, например:
| Код |
|---|
Sub Prov(a, b, ParamArray tabl()) 'выполняет проверку 'Dim jLeft, jRight, i, j As Integer 'ReDim Tabl(1 To 8, 1 To 8) As Boolean For i = a To 8 For j = 1 To 8 tabl(a, j) = False 'закрашиваем горизонталь Next tabl(i, b) = False 'закрашиваем вертикаль Next jLeft = b jRight = b For i = a + 1 To 8 'закрашивание диагоналей начинаем со следующей строки jLeft = jLeft - 1 jRight = jRight + 1 If jLeft > 0 Then tabl(i, jLeft) = False 'закрашиваем левую диагональ If jRight < 9 Then tabl(i, jRight) = False 'закрашиваем правую диагональ Next tabl(a, b) = True End Sub |
Задался я вопросом расписать абсолютно все варианты расстановки ферзей из . Я знаю, что есть куча решений данной проблемы в сети, но мне захотелось из "спортивного интереса" сделать все самостоятельно, поэтому не предлагайте варианты решений.
Вверху часть кода для решения сей задачи. Я уже нашел частное решение проблемы в графической интерпретации в excel (собственно оттуда и взят код сверху, который был предварительно подкорректирован, NB: это набросок для массивного решения, он не проверялся). Вопрос такой: хочу осуществить обращение к этой процедуре из другой, но не знаю как при этом обрабатывать массив в таком случае.
Вот, например:
| Код |
|---|
sub adf(a,b) здесь код, описывающий операции над массивом (приведен вверху) end sub sub adjdj([здесь разные аргументы]) dim массив(1 to 8, 1 to 8) as boolean здесь какой-то код call adf(a,b) здесь какой-то код end sub |
С уважением,
Федор/Все_просто
Федор/Все_просто