vb实现元胞自动机 生命

vb实现元胞自动机 生命


<![if supportMisalignedColumns]> <![endif]>
checkboxnamecc
caption
index0
visibleFALSE
height255
width255
left0
top0
menunameks
caption开始
enabledFALSE
menunamesz
caption设置
menunametz
caption停止
enabledFALSE
timerenabledFALSE
interval1000

Option Explicit
Dim x%, y%

Private Sub ks_Click()
Timer1.Enabled = True
ks.Enabled = False
tz.Enabled = True
End Sub

Private Sub sz_Click()
Dim z%, i%, j%
Do
x = InputBox("创建二维数组,行数x:", "输入x", "10")
y = InputBox("列数y:", "输入y", "10")
z = MsgBox("矩阵" & x & "行" & y & "列?", vbOKCancel, "确定?")
Loop Until z = 1
For i = 0 To x - 1
For j = 0 To y - 1
If i <> 0 Or j <> 0 Then
Load cc(i * y + j)
cc(i * y + j).Caption = ""
cc(i * y + j).Height = 255
cc(i * y + j).Width = 255
cc(i * y + j).Top = 255 * i
cc(i * y + j).Left = 255 * j
cc(i * y + j).Visible = True
End If
Next j, i
cc(0).Visible = True
ks.Enabled = True
sz.Enabled = False
End Sub

Private Sub Timer1_Timer()
Dim temp%(), i%, j%, nn%
ReDim temp(x, y)
For i = 1 To x - 2
For j = 1 To y - 2
nn = cc((i - 1) * y + j - 1).Value + cc((i - 1) * y + j).Value + cc((i - 1) * y + j + 1).Value + cc(i * y + j - 1).Value + cc(i * y + j + 1).Value + cc((i + 1) * y + j - 1).Value + cc((i + 1) * y + j).Value + cc((i + 1) * y + j + 1).Value
If nn = 3 Then
temp(i, j) = 1
ElseIf nn = 2 Then
temp(i, j) = cc(i * y + j).Value
Else
temp(i, j) = 0
End If
Next j, i
For i = 1 To x - 2
For j = 1 To y - 2
cc(i * y + j).Value = temp(i, j)
Next j, i
End Sub

Private Sub tz_Click()
Timer1.Enabled = False
tz.Enabled = False
ks.Enabled = True
MsgBox "结束后请关闭生命。", vbOKOnly
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值