| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7882 人关注过本帖
标题:生命游戏(Game of Life)
只看楼主 加入收藏
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
回复20楼
那个想法很好很好。

-------------------
再次回复17楼
我前面贴出来的代码,刚加多了格子,相当于增加了绘图工作量,就可以看到绘图是从左到右有一根很明显的绘图线,但屏幕不会闪。
会闪的那行代码,我只是在 重绘窗体时才执行。
如何介意绘图线,那就使用 缓冲方式绘图。试了一下,也是不闪的。

授人于鱼,不如授人于渔
早已停用QQ了
2016-02-22 10:46
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
使用缓冲方式绘图:

初始化
Picture1.Visible = False
Picture1.AutoRedraw = True
Picture1.Appearance = 0


程序代码:
Public Sub view()
'显示每个格子

If hd < Screen.TwipsPerPixelX * 3 Or ld < Screen.TwipsPerPixelY * 3 Then Exit Sub
'如果不够绘图,则直接退出

Dim i As Long, j As Long
For i = 0 To 横 - 1
    For j = 0 To 竖 - 1
        If z(i + 1, j + 1) = 1 Then         '生,就用生画格
            Picture1.Line (i * hd + Screen.TwipsPerPixelX, j * ld + Screen.TwipsPerPixelY)-(i * hd + hd - Screen.TwipsPerPixelX, j * ld + ld - Screen.TwipsPerPixelY), 生, BF
        Else                                '死,就用死画格
            Picture1.Line (i * hd + Screen.TwipsPerPixelX, j * ld + Screen.TwipsPerPixelY)-(i * hd + hd - Screen.TwipsPerPixelX, j * ld + ld - Screen.TwipsPerPixelY), 死, BF
        End If
    Next j
Next i

Call Form_Paint

End Sub

Private Sub Form_Paint()
'
Me.PaintPicture Picture1.Image, 0, 0

End Sub

Private Sub Form_Resize()
'窗体大小改变时,计算格子大小
Dim i As Long, j As Long

Picture1.Height = Me.ScaleHeight
Picture1.Width = Me.ScaleWidth

i = Picture1.ScaleWidth
hd = i \ 横

i = Picture1.ScaleHeight
ld = i \ 竖


'绘制网络
Picture1.Cls              '清屏

For i = 0 To 横 - 1
    For j = 0 To 竖 - 1
        Picture1.Line (i * hd, j * ld)-(i * hd + hd, j * ld + ld), 灰, B          '副格子线,按每个格子均画线,也可以按横和竖分别画线
    Next j
Next i

Call view           '重绘格子

Call Form_Paint         '缩小时,不会产生重绘事件,需要手动调用
 
End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2016-02-22 15:02
初始元灵
Rank: 2
等 级:论坛游民
帖 子:72
专家分:46
注 册:2016-10-10
收藏
得分:0 
这个好有趣啊,谢谢风版。

三清之始
2016-11-10 18:31
快速回复:生命游戏(Game of Life)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027802 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved