vbAccelerator - Contents of code file: frmCellularAutomata.frmVERSION 5.00
Begin VB.Form frmCellularAutomata
Caption = "vbAccelerator Cellular Automata Demo"
ClientHeight = 4065
ClientLeft = 5865
ClientTop = 4455
ClientWidth = 5370
BeginProperty Font
Name = "Tahoma"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Icon = "frmCellularAutomata.frx":0000
LinkTopic = "Form1"
ScaleHeight = 271
ScaleMode = 3 'Pixel
ScaleWidth = 358
Begin VB.CommandButton cmdReset
Caption = "&Reset"
Height = 495
Left = 4020
TabIndex = 14
Top = 1260
Width = 1275
End
Begin VB.HScrollBar hscStates
Height = 255
LargeChange = 8
Left = 4080
Max = 32
Min = 8
SmallChange = 2
TabIndex = 3
Top = 2220
Value = 16
Width = 1095
End
Begin VB.CommandButton cmdDust
Caption = "&Dust"
Enabled = 0 'False
Height = 495
Left = 4020
TabIndex = 2
Top = 720
Width = 1275
End
Begin VB.CommandButton cmdRun
Caption = "&Run"
Height = 495
Left = 4020
TabIndex = 1
Top = 120
Width = 1275
End
Begin VB.PictureBox picCell
AutoRedraw = -1 'True
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 3840
Left = 120
ScaleHeight = 3780
ScaleWidth = 3780
TabIndex = 0
Top = 120
Width = 3840
End
Begin VB.Label lblStates
Caption = "States: 16"
Height = 195
Left = 4080
TabIndex = 13
Top = 1980
Width = 1035
End
Begin VB.Label lblNeighbours
Caption = "Neighbours:"
Height = 195
Left = 4080
TabIndex = 12
Top = 2580
Width = 1035
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H00FFFFFF&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 8
Left = 4800
TabIndex = 11
Tag = "1,1"
Top = 3540
Width = 315
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H8000000D&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 7
Left = 4440
TabIndex = 10
Tag = "0,1"
Top = 3540
Width = 315
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H00FFFFFF&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 6
Left = 4080
TabIndex = 9
Tag = "-1,1"
Top = 3540
Width = 315
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H8000000D&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 5
Left = 4800
TabIndex = 8
Tag = "1,0"
Top = 3180
Width = 315
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H8000000D&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 3
Left = 4080
TabIndex = 7
Tag = "-1,0"
Top = 3180
Width = 315
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H00FFFFFF&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 2
Left = 4800
TabIndex = 6
Tag = "1,-1"
Top = 2820
Width = 315
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H8000000D&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 1
Left = 4440
TabIndex = 5
Tag = "0,-1"
Top = 2820
Width = 315
End
Begin VB.Label lblNeighbour
Appearance = 0 'Flat
BackColor = &H00FFFFFF&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 315
Index = 0
Left = 4080
TabIndex = 4
Tag = "-1,-1"
Top = 2820
Width = 315
End
End
Attribute VB_Name = "frmCellularAutomata"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private m_cCell As cCellularAutomata
Private Sub cmdReset_Click()
m_cCell.Init
End Sub
Private Sub cmdRun_Click()
If (cmdRun.Tag = "") Then
cmdRun.Tag = "RUN"
cmdRun.Caption = "&Stop"
cmdDust.Enabled = True
Do While cmdRun.Tag = "RUN"
m_cCell.Step
m_cCell.Paint picCell.hdc
picCell.Refresh
DoEvents
Loop
cmdRun.Caption = "&Run"
Else
cmdRun.Tag = ""
cmdDust.Enabled = False
End If
End Sub
Private Sub cmdDust_Click()
m_cCell.AddRandom 95
m_cCell.Paint picCell.hdc
picCell.Refresh
End Sub
Private Sub Form_Load()
Set m_cCell = New cCellularAutomata
m_cCell.Paint picCell.hdc
picCell.Refresh
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If Len(cmdRun.Tag) > 0 Then
cmdRun_Click
End If
End Sub
Private Sub hscStates_Change()
m_cCell.States = hscStates.Value
lblStates.Caption = "States: " & hscStates.Value
End Sub
Private Sub hscStates_Scroll()
hscStates_Change
End Sub
Private Sub lblNeighbour_Click(Index As Integer)
Dim xOffset As Long
Dim yOffset As Long
Dim iPos As Long
Dim bState As Boolean
bState = Not (lblNeighbour(Index).BackColor = vbHighlight)
iPos = InStr(lblNeighbour(Index).Tag, ",")
xOffset = CLng(Left(lblNeighbour(Index).Tag, iPos - 1))
yOffset = CLng(Mid(lblNeighbour(Index).Tag, iPos + 1))
m_cCell.ConsiderNeighbour(xOffset, yOffset) = bState
lblNeighbour(Index).BackColor = IIf(bState, vbHighlight, vbWindowBackground)
End Sub
|
|