ПОСТРОИТЕЛЬ МК |
КАРТА САЙТА | ТЕТРАЭДРЫ | ЧАТУРАНГА | ВСЁ О КВАДРАТАХ | ПОСТРОИТЕЛЬ МК 1 | ПОСТРОИТЕЛЬ МК 2 |
|
Copyright , А. А. Ратушный Построитель магических квадратов Surmico-edition, Kiev, 2004
Поскольку построитель магических квадратов - программа реализованная мной на Visual Basic 6.0 и многие могут с недоверием отнестись к неизвестной программе, я просто намерен постепенно распечатать полностью её листинг. Кто работает с Visual Basic 6.0 легко её воспроизведёт сам, кто работает с другими языками, легко переведёт её на свой родной язык. НАЧИНАЮ ВЫКЛАДЫВАТЬ! Несколько вводных замечаний: для любителей изящного программирования здесь нет ничего интересного. Воспроизведение кода в условиях самобытного шаблона "народа" весьма нетривиальная задача. Я запущу отдельный список фрагментов кода и уже там все постараюсь упорядочить и откомментировать. Здесь особых комментов нет, потому что все очевидно и наглядно. В 16 случаях прописаны те самые 54 строки, которые являются ключевыми для каждого корневого числа. Здесь для примера приведен код для корневого числа 8. То есть для строки, начинающейся этим числом. Методологии получения этих 54 строк я посвящу отдельную страничку. Так что не грустите. Даст Бог, всё у вас будет! Private Sub otcenochka() Dim Result As Integer Result = 10 Val (Label5.Caption) + Val(Label2.Caption) = zavsm1 Val (Label11.Caption) + Val(Label16.Caption) = zavsm2 Val (Label5.Caption) + Val(Label6.Caption) = zavsm3 Val (Label3.Caption) + Val(Label4.Caption) = zavsm4 Val (Label2.Caption) + Val(Label6.Caption) = zavsm5 Val (Label9.Caption) + Val(Label13.Caption) = zavsm6 If Val(Label11.Caption) < 1 Or Val(Label11.Caption) > 16 Or Val(Label11.Caption) = Val(Label1.Caption) Or _ Val(Label11.Caption) = Val(Label2.Caption) Or Val(Label11.Caption) = Val(Label3.Caption) Or Val(Label11.Caption) = Val(Label6.Caption) Or _ Val(Label11.Caption) = Val(Label4.Caption) Or Val(Label11.Caption) = Val(Label5.Caption) Or Val(Label11.Caption) = Val(Label16.Caption) Or _ Val(Label11.Caption) = Val(Label9.Caption) Or Val(Label11.Caption) = Val(Label13.Caption) Or _ Val(Label2.Caption) = Val(Label5.Caption) Or Val(Label2.Caption) = Val(Label9.Caption) Or Val(Label2.Caption) = Val(Label13.Caption) Or Val(Label2.Caption) = Val(Label6.Caption) Or Val(Label2.Caption) = Val(Label16.Caption) Or _ Val(Label3.Caption) = Val(Label5.Caption) Or Val(Label3.Caption) = Val(Label9.Caption) Or Val(Label3.Caption) = Val(Label13.Caption) Or Val(Label3.Caption) = Val(Label6.Caption) Or Val(Label3.Caption) = Val(Label16.Caption) Or _ Val(Label4.Caption) = Val(Label5.Caption) Or Val(Label4.Caption) = Val(Label9.Caption) Or Val(Label4.Caption) = Val(Label13.Caption) Or Val(Label4.Caption) = Val(Label6.Caption) Or Val(Label4.Caption) = Val(Label16.Caption) Or _ Val(Label5.Caption) = Val(Label6.Caption) Or Val(Label5.Caption) = Val(Label16.Caption) Or Val(Label9.Caption) = Val(Label6.Caption) Or Val(Label9.Caption) = Val(Label16.Caption) Or Val(Label4.Caption) = Val(Label16.Caption) Or _ Val(Label13.Caption) = Val(Label6.Caption) Or Val(Label13.Caption) = Val(Label16.Caption) Or Val(Label6.Caption) = Val(Label1.Caption) Or _ Val(Label6.Caption) < 1 Or Val(Label6.Caption) > 16 Or Val(Label16.Caption) < 1 Or Val(Label16.Caption) > 16 Or Val(Label6.Caption) = Val(Label16.Caption) Or Val(Label16.Caption) = Val(Label1.Caption) Then Result = 0 End If If Result = 10 Then Timer1.Enabled = False ispytanie End If End Sub Private Sub ispytanie() Form4.Label1.Caption = Label1.Caption Form4.Label2.Caption = Label2.Caption Form4.Label3.Caption = Label3.Caption Form4.Label4.Caption = Label4.Caption Form4.Label5.Caption = Label5.Caption Form4.Label6.Caption = Label6.Caption Form4.Label9.Caption = Label9.Caption Form4.Label11.Caption = Label11.Caption Form4.Label13.Caption = Label13.Caption Form4.Label16.Caption = Label16.Caption Form4.Timer1.Enabled = True Form4.Show End Sub Private Sub MagStrok8Horizont() MagHorizont8 = MagHorizont8 + 1: If MagHorizont8 = 55 Then MagHorizont8 = 1 If MagHorizont8 = 1 Then Label2.Caption = 1: Label3.Caption = 10 If MagHorizont8 = 2 Then Label2.Caption = 1: Label3.Caption = 11 If MagHorizont8 = 3 Then Label2.Caption = 1: Label3.Caption = 12 If MagHorizont8 = 4 Then Label2.Caption = 1: Label3.Caption = 13 If MagHorizont8 = 5 Then Label2.Caption = 1: Label3.Caption = 14 If MagHorizont8 = 6 Then Label2.Caption = 1: Label3.Caption = 15 If MagHorizont8 = 7 Then Label2.Caption = 2: Label3.Caption = 9 If MagHorizont8 = 8 Then Label2.Caption = 2: Label3.Caption = 11 If MagHorizont8 = 9 Then Label2.Caption = 2: Label3.Caption = 13 If MagHorizont8 = 10 Then Label2.Caption = 2: Label3.Caption = 15 If MagHorizont8 = 11 Then Label2.Caption = 3: Label3.Caption = 9 If MagHorizont8 = 12 Then Label2.Caption = 3: Label3.Caption = 10 If MagHorizont8 = 13 Then Label2.Caption = 3: Label3.Caption = 13 If MagHorizont8 = 14 Then Label2.Caption = 3: Label3.Caption = 14 If MagHorizont8 = 15 Then Label2.Caption = 5: Label3.Caption = 9 If MagHorizont8 = 16 Then Label2.Caption = 5: Label3.Caption = 10 If MagHorizont8 = 17 Then Label2.Caption = 5: Label3.Caption = 11 If MagHorizont8 = 18 Then Label2.Caption = 5: Label3.Caption = 12 If MagHorizont8 = 19 Then Label2.Caption = 9: Label3.Caption = 2 If MagHorizont8 = 20 Then Label2.Caption = 9: Label3.Caption = 3 If MagHorizont8 = 21 Then Label2.Caption = 9: Label3.Caption = 5 If MagHorizont8 = 22 Then Label2.Caption = 9: Label3.Caption = 12 If MagHorizont8 = 23 Then Label2.Caption = 9: Label3.Caption = 14 If MagHorizont8 = 24 Then Label2.Caption = 9: Label3.Caption = 15 If MagHorizont8 = 25 Then Label2.Caption = 10: Label3.Caption = 1 If MagHorizont8 = 26 Then Label2.Caption = 10: Label3.Caption = 3 If MagHorizont8 = 27 Then Label2.Caption = 10: Label3.Caption = 5 If MagHorizont8 = 28 Then Label2.Caption = 10: Label3.Caption = 11 If MagHorizont8 = 29 Then Label2.Caption = 10: Label3.Caption = 13 If MagHorizont8 = 30 Then Label2.Caption = 11: Label3.Caption = 1 If MagHorizont8 = 31 Then Label2.Caption = 11: Label3.Caption = 2 If MagHorizont8 = 32 Then Label2.Caption = 11: Label3.Caption = 5 If MagHorizont8 = 33 Then Label2.Caption = 11: Label3.Caption = 10 If MagHorizont8 = 34 Then Label2.Caption = 11: Label3.Caption = 13 If MagHorizont8 = 35 Then Label2.Caption = 11: Label3.Caption = 14 If MagHorizont8 = 36 Then Label2.Caption = 12: Label3.Caption = 1 If MagHorizont8 = 37 Then Label2.Caption = 12: Label3.Caption = 5 If MagHorizont8 = 38 Then Label2.Caption = 12: Label3.Caption = 9 If MagHorizont8 = 39 Then Label2.Caption = 12: Label3.Caption = 13 If MagHorizont8 = 40 Then Label2.Caption = 13: Label3.Caption = 1 If MagHorizont8 = 41 Then Label2.Caption = 13: Label3.Caption = 2 If MagHorizont8 = 42 Then Label2.Caption = 13: Label3.Caption = 3 If MagHorizont8 = 43 Then Label2.Caption = 13: Label3.Caption = 10 If MagHorizont8 = 44 Then Label2.Caption = 13: Label3.Caption = 11 If MagHorizont8 = 45 Then Label2.Caption = 13: Label3.Caption = 12 If MagHorizont8 = 46 Then Label2.Caption = 14: Label3.Caption = 1 If MagHorizont8 = 47 Then Label2.Caption = 14: Label3.Caption = 3 If MagHorizont8 = 48 Then Label2.Caption = 14: Label3.Caption = 9 If MagHorizont8 = 49 Then Label2.Caption = 14: Label3.Caption = 11 If MagHorizont8 = 50 Then Label2.Caption = 15: Label3.Caption = 1 If MagHorizont8 = 51 Then Label2.Caption = 15: Label3.Caption = 2 If MagHorizont8 = 52 Then Label2.Caption = 15: Label3.Caption = 9 If MagHorizont8 = 53 Then Label2.Caption = 15: Label3.Caption = 10 If MagHorizont8 = 54 Then Label2.Caption = 10: Label3.Caption = 15 Label4.Caption = 34 - (Val(Label1.Caption) + Val(Label2.Caption) + Val(Label3.Caption)) Label11.Caption = 34 - (Val(Label1.Caption) + Val(Label3.Caption) + Val(Label9.Caption)) Label6.Caption = 34 - (Val(Label1.Caption) + Val(Label2.Caption) + Val(Label5.Caption)) Label16.Caption = 34 - (Val(Label1.Caption) + Val(Label4.Caption) + Val(Label13.Caption)) otcenochka End Sub |