分类提取华容道的对称场景
我们已经把华容道的全部场景分成了六个大类,现在要在这六个大类中分别提取出对称的场景。
为什么要提取对称场景呢?这不仅仅是好玩,对称场景优美整齐。因为在“所有的场景”中是包括镜像的,我把它称之为“正像”与“镜像”。“正像”与“镜像”应该是可以把它看做为同质的。其实“正像”与“镜像”的最佳步数是一样的,由于程序设计,自左向右看待一个场景,所以搜索过程有些差异。但对称场景是没有镜像的,是独立的场景。为了在以后的研究中,有针对性地进行,大概还是必要的。
以下是搜索对称场景的VB源程序,这里仅对三横场景作示范,余者类通。
Private Sub Form_Click() Dim d As String, l As Long, i As Long, a As Long, dc As Boolean a = 0 Open App.Path & "\三横场景.dat" For Random As #1 Len = 22 For l = 1 To 100770 Get #1, l, d dc = True For i = 0 To 4 If Mid$(d, i * 4 + 1, 1) <> Mid$(d, i * 4 + 4, 1) Or _ Mid$(d, i * 4 + 2, 1) <> Mid$(d, i * 4 + 3, 1) Then _ dc = False: Exit For Next i If dc = True Then a = a + 1: Text1.Text = a Open App.Path & "\三横对称.dat" For Random As #2 Len = 22 Put #2, a, d Close #2 End If Next l Close #1 Text2.Text = "End" End Sub
|
阅读(943) | 评论(0) | 转发(0) |