大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 其他相关 -> 玩一玩平面魔方

玩一玩平面魔方

时间: 2021-07-31 作者:daque

回顾儿时玩的魔方游戏,已经让我如痴如醉。其时我不分日夜地商量它,而且很快就变成了小伙伴中的能手,很得意啊!前几天整治房子的功夫,果然在一个暗淡的边际里又创造了它,玩了之后却创造本人此刻仍旧惟有入门者的程度了。不好道理成天把它捧在手里玩,结果确定仍旧在电脑上玩一玩吧,所以就用vb编写了这个步调。原想是编写一个三维的游戏,但用vb举行三维计划过于搀杂,结果确定仍旧按照魔方的道理,编写一个平面二维魔方。即是在一个5×5方格的围盘中,每一个小方格都随机弥补5种脸色中的任一脸色。而且在这25个方格中,每种脸色的方格惟有5个,当用鼠圈点击个中一个方格,举行横向或纵向拖动,同一目标方格的脸色就程序变革,如:同一目标5个方格的脸色辨别为“红(1)、绿(2)、蓝(3)、黑(4)、紫(5)”,当把第二个方格(绿)拖到第四个方格(黑)的场所时,那么这5个方格的脸色的程序就形成“黑(4)、紫(5)、红(1)、绿(2)、蓝(3)”。当把百般脸色按横向或纵向各陈设成一排时,那么就实行了这个游戏。

编写这个步调在本领上没有什么难点,要害的场合是在数据算法安排上,如在方格中随机弥补脸色的算法安排中,我发端是用数组来举行安排,截止创造算法有点搀杂,代码有点长,厥后改用汇合东西,算法就大大大略明清楚。谈天少说,此刻咱们就发端编制程序。开始翻开vb,兴建一个规范工程,在form1上增添一个picturebox控件,树立picture1的autoredraw属性为true,而后切换到代码编纂框增添如次代码:'设置x1、y1为全部变量,用来表白鼠标按下时的坐标dim x1 as integerdim y1 as integer'设置fill_color进程,在5*5的方格中随机弥补脸色sub fill_color()    dim color as integer    dim color_col as new collection '设置一个汇合变量

玩一玩平面魔方图1

    '在汇合中承载5种脸色    for i = 0 to 24        color_col.add int(i / 5), str(i)    next i

    '在方格中弥补脸色    j = 0    for n = 0 to 4        for m = 1 to 5            randomize            x = int((25 - j) * rnd() + 1)            color = color_col.item(x)            picture1.line (n, m)-(n + 1, m - 1), qbcolor(color), bf            color_col.remove (x)            j = j + 1        next m    next nend sub'设置draw进程,画边框为白色的方格sub draw()    for n = 0 to 5        picture1.line (0, n)-(5, n), qbcolor(15)        picture1.line (n, 0)-(n, 5), qbcolor(15)    next nend subprivate sub form_activate()    fill_color    drawend subprivate sub form_load()    picture1.scale (0, 5)-(5, 0)end sub

private sub picture1_mousedown(button as integer, shift as integer, x as single, y as single)    x1 = int(x)    y1 = int(y)    picture1.mousepointer = 14end sub

private sub picture1_mouseup(button as integer, shift as integer, x as single, y as single)    dim color1(4) as long    dim x2 as integer    dim y2 as integer

    x2 = int(x)    y2 = int(y)        if y1 = y2 then        for n = 0 to 4            color1(n) = picture1.point(n + 0.5, y2 + 0.5)        next n

        a = x2 - x1        for n = 0 to 4            if n - a <= 4 and n - a >= 0 then                z = n - a            else                z = abs(5 - abs(n - a))            end if            picture1.line (n, y2 + 1)-(n + 1, y2), color1(z), bf        next n    else        if x1 = x2 then            for n = 0 to 4                color1(n) = picture1.point(x2 + 0.5, n + 0.5)            next n            a = y2 - y1            for n = 0 to 4                if n - a <= 4 and n - a >= 0 then                    z = n - a                else                    z = abs(5 - abs(n - a))                end if                picture1.line (x2 + 1, n)-(x2, n + 1), color1(z), bf            next n        else            msgbox "你的挪动失效", , "劝告"        end if    end if    draw    picture1.mousepointer = vbdefaultend sub

步调比拟大略,大师确定很简单看懂,这个步调的方格咱们也不妨改成6*6、7*7之类,但玩起来的难度大概会大大减少,即是这个5*5方格的游戏,我有功夫都很难玩通。本步调在vb6.0+ windows me下调节和测试经过。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.