r/>
Лістінг програми
Sub Form_Load (). Visible = FalseRozstanovkaSub
'Основна процедура
Sub Rozstanovka () a (7, 7) As Integeri, j, coordI, coordJ As IntegerKilkKorolev, mm, nn As Integerb As Booleankilk, col As Integer
= 8 'Задаємо кількість королев, якіх нужно розставіті = -1' Номер колонки, З якої будемо почінаті розстановку
Until (kilk = KilkKorolev) Or (col = 7). Height = Picture1 (0). Height * 0.75 * KilkKorolev
'Обнуляємо матрицю и очіщаємо формуi = 0 To 7j = 0 To 7 (i, j) = 0
(j). Caption = 8 - j (i). Caption = Chr (97 + i). Caption = ""
'Встановлюмо колір клітінок: чорна або біла ((i + j) Mod 2) = 0 Then (8 * i + j). BackColor = & H80000009 (8 * i + j). Picture = LoadPicture (""): Picture1 (8 * i + j). BackColor = & H80000008 (8 * i + j). Picture = LoadPicture ("") If
ji
= 0 'Початкова кількість королев рівна 0 = col + 1 = True
i = 0 To 7j = 0 To 7b = True Then = col = 0 = False: = i = jIf
a (coordI, coordJ) = 0 Then 'Качан умови = kilk + 1 (coordI, coordJ) = 1
'Перевірка розташування
'по горізонталіmm = 0 To 7a (mm, coordJ) <> 1 Then a (mm, coordJ) = 2mm
'по вертікаліnn = 0 To 7a (coordI, nn) ​​<> 1 Then a (coordI, nn) ​​= 2nn
'вгору-вліво від поточної королеві = coordI = coordJUntil (mm = 0) Or (nn = 0) mm - 1 <> -1 Then mm = mm - 1nn - 1 <> ; -1 Then nn = nn - 1 (mm, nn) ​​= 2
'вниз-вправо від поточної королеві = coordI = coordJUntil (mm = 7) Or (nn = 7) mm + 1 <> 8 Then mm = mm + 1nn + 1 <> 8 Then nn = nn + 1 (mm, nn) ​​= 2
'вниз-вліво від поточної королеві = coordI = coordJUntil (mm = 0) Or (nn = 7) mm - 1 <> -1 Then mm = mm - 1nn + 1 <> ; 8 Then nn = nn + 1 (mm, nn) ​​= 2
'вгору-вправо від поточної королеві = coordI = coordJUntil (mm = 7) Or (nn = 0) mm + 1 <> 8 Then mm = mm + 1nn - 1 <> -1 Then nn = nn - 1 (mm, nn) ​​= 2
'Вивід королеві: чорної, або білої
((coordI + coordJ) Mod 2) = 0 Then (8 * coordI + coordJ). Picture = ("D: VB6.0 Vb5.0 8 Корольов Koroleva-W . bmp "): Picture1 (8 * coordI + coordJ). Picture = (" D: VB6.0 Vb5.0 8 Корольов Koroleva-B.bmp ") If
'Вивід координат поточної королеві.Caption = lblEkran.Caption & CStr (kilk) & ". - "& CStr (Label2 (coordJ)) &
CStr (Label1 (coordI)) & vbCrLfIf 'Кінець умовіjiSub
'Перехід від f...