-
图文榜单
- 1.
泰拉瑞亚雷云法杖怎么获得
- 2.
魔方公式和扫雷的玩法
- 3.
扫雷游戏有秘诀吗
- 4.
QQ飞车超级排位赛怎么玩
- 5.
冒险岛宠物饿了冒险岛里面宠物饿了如果不在商城买吃的喂它它自己
- 6.
冒险岛扎1任务怎么做的
- 7.
冒险岛2标飞怎么加点更好
- 8.
泰拉瑞亚十字架项链用于合成什么
VB写扫雷的问题(vb制作扫雷游戏的问题)
整理:yaobaiwang.com 时间:09月24日
[怎么用vb做扫雷程序]怎么用vb做扫雷程序,关于扫雷程序设计:先说一个 扫雷的吧,,没办法给你源程序, 就给你说制作过程吧, 打开VB6.0 在窗体的上半部分,用pictureBOX控件画一定的区域用来模仿WINDOWS那样...+阅读
VB写扫雷的问题
1、扫雷的按钮是画出来的,实际上没有一个按钮。你需要自己设计一个绘制指定像素大小按钮的函数
(一个绘制鼓起状态、一个绘制凹下状态、一个绘制点开状态,你需要定义一个数组来记录“按钮”阵列的状态,比如:0=突起、1=凹下、2=点开)
2、MouseMove、MouseUp、MouseDown三个事件带有x和y坐标属性。根据x、y坐标可以计算出鼠标在哪个格子里。
假如你的格子是12*12像素的,坐标整除12就是格子的行列坐标。既然可以知道格子的坐标,只要在鼠标按下的状态将鼠标所在坐标的格子绘制成凹下、其他格子绘制成突起、已经点开的不变就可以了。
3、由于扫雷的“按钮”其实是画出来的,所以不存在你说的焦点问题。
4、实际做扫雷我建议你用Paint粘贴小图块来做图。扫雷基本上就那么几种图块:鼓起、凹下、点开;地雷、1-8数字、红旗、问号。
学会制作图块“字库”是设计这种小游戏的基本功。粘贴图块还可以使你的扫雷更加漂亮,因为你可以用绘图工具精心绘制这些图块,可以使扫雷更漂亮。
5、扫雷这个游戏是个像素矩阵游戏。首先你应该从像素矩阵角度来实现它的数学模型(以数字阵列的形式使它可以运行),而不是首先设计界面。因为界面只是最后的工作。你看到的图块只是矩阵中这些数据的表达。
如果你想寻更多的帮助,推荐你去CSDN论坛(.csdn.net)的VB板块助。那里不乏有人做过扫雷。...
vb制作扫雷游戏的问题
见:
?qbl=relate_question_0&word=vb%BC%D3%D4%D8%BF%D8%BC%FE%CA%FD%D7%E9
自己做了一个:
初始设置:
控件数组Command1() '通过设置Index=0建立
开始按钮Command2
Const HT = 400 '储存height
Const WT = 400 '储存width
Dim vbRow As Integer
Dim vbLine As Integer
Private Sub Command2_Click()
Command2.Visible = False
Dim cter As Integer
For cter = 1 To 400
Load Command1(cter)
vbRow = Int(cter Mod 20) '列值
If cter Mod 20 = 0 Then vbRow = 20 '如果被20整除说明在第20列,vbRow应该返回20而非0
vbLine = Int(cter \ 20) + 1 '行值
If cter Mod 20 = 0 Then vbLine = vbLine - 1 '如果被20整除,“/”运算返回值将比真实的vbLine多1,应返回vbLine-1
Command1(cter).Height = HT
Command1(cter).Width = WT
Command1(cter).Top = (vbLine - 1) * (HT + 10)
Command1(cter).Left = (vbRow - 1) * (WT + 10)
Command1(cter).Visible = True
DoEvents '防止程序卡死
Next cter
End Sub
Private Sub Form_Load() '用于显示【开始!】按钮(Command2)
Form1.Height = (HT + 10) * 20 + 10
Form1.Width = Form1.Height
Command2.Top = (Form1.Height - Command2.Height) / 2
Command2.Left = (Form1.Width - Command2.Width) / 2
End Sub
扫雷的VB编程
Private Sub Form_Load()Init_FormEnd Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)Dim x1 As Integer, y1 As Integerx1 = Fix((x - x0) / a): y1 = Fix((y - y0) / a)If (x - x0) >((Col_Num + 1) * a) Or (y - y0) >((Col_Num + 1) * a) Then Exit SubIf xx0 + x1 * a + a - 4 Or _yy0 + y1 * a + a - 4 _Then Exit SubIf Button = 1 ThenIf Map(x1, y1) = 0 ThenCall fan(x1, y1)ElseIf Map(x1, y1) = 1 ThenCall loseEnd IfElseIf Button = 2 ThenCall draw_flg(x1, y1)End IfDim n As Integern = 0Dim i As Integer, j As IntegerFor i = 0 To Col_NumFor j = 0 To Row_NumIf Map(i, j) = -2 Then n = n + 1Next jNext iIf n = (Col_Num + 1) * (Row_Num + 1) - Ant_Num ThenBeepCurrentX = (Col_Num / 2) * a + x0CurrentY = (Row_Num / 2) * a + y0Call sub1a = Form1.FontSizeForm1.FontSize = 80'Form1.ForeColor = vbBlackPrint "you win"Form1.FontSize = aEnd IfEnd Sub Sub fan(x As Integer, y As Integer)Dim i As Integer, j As IntegerDim n As IntegerFor i = -1 To 1For j = -1 To 1If j * i = 0 And Map(x + i, y + j) = 0 ThenMap(x + i, y + j) = -2n = Counts(x + i, y + j)Form1.Line (x0 + (i + x) * a + 2, y0 + (j + y) * a + 2)-Step(a - 4, a - 4), Form1.BackColor, BF If n0 ThenCurrentX = (x + i) * a + 2 + x0CurrentY = (y + j) * a + 2 + y0Select Case nCase Is = 1Form1.ForeColor = vbWhiteCase Is = 2Form1.ForeColor = vbYellowCase Is >2Form1.ForeColor = vbRedEnd SelectPrint nElseIf n = 0 Then Call fan(x + i, y + j)End IfEnd IfNext jNext iEnd Sub Function Counts(x As Integer, y As Integer) As IntegerDim i As Integer, j As IntegerFor i = -1 To 1For j = -1 To 1If Map(x + i, y + j) = 1 Then Counts = Counts + 1NextNextEnd FunctionSub lose()Dim i As Integer, j As IntegerFor i = 0 To Row_NumFor j = 0 To Col_NumIf Map(j, i) = 1 ThenForm1.FillColor = vbBlackForm1.FillStyle = 0Form1.Circle (x0 + j * a + a / 2, y0 + i * a + a / 2), a / 3, vbBlack, , , 0.8Form1.Line (x0 + j * a, y0 + i * a)-Step(a, a), vbWhiteForm1.Line (x0 + j * a + a, y0 + i * a)-Step(-a, a), vbWhite ElseIf Map(j, i) = 0 ThenForm1.Line (x0 + j * a + 2, y0 + i * a + 2)-Step(a - 4, a - 4), Form1.BackColor, BFCurrentX = j * a + x0CurrentY = i * a + y0Print Counts(j, i)End IfNext j Next iBeepa = Form1.FontSizeForm1.FontSize = 80'Form1.ForeColor = vbBlackPrint "you lose"Form1.FontSize = aEnd SubSub draw_flg(x As Integer, y As Integer)CurrentX = x * a + x0 + 2CurrentY = y * a + y0 + 2Print "?"End Sub Public Sub Init_Form() Form1.ClsForm1.ScaleMode = 3Form1.Width = 8000Form1.Height = 6000Form1.BackColor = vbGreenForm1.AutoRedraw = Trueform1.caption="一个简单扫雷游戏 "Col_Num = 10 '获取列数Row_Num = 10 '获取行数a = 20 '单元宽(高)度Ant_Num = 40 '雷的数量ReDim Map(-1 To Col_Num + 1, -1 To Row_Num + 1)Dim i As Integer, j As IntegerFor i = -1 To Row_Num + 1 For j = -1 To Col_Num + 1Form1.Line (x0 + j * a, y0 + i * a)-Step(a, a), 0, BForm1.Line (x0 + j * a + 2, y0 + i * a + 2)-Step(a - 4, a - 4), vbRed, BFMap(j, i) = 0 '初始化位置标记为空格0If i = -1 Or i = Row_Num + 1 Or j = -1 Or j = Row_Num + 1 ThenForm1.Line (x0 + j * a + 1, y0 + i * a + 1)-Step(a - 2, a - 2), RGB(100, 120, 100), BF '画四周墙体Map(j, i) = -1 '四周位置标记为墙体:-1End IfNext j Next iDim x As Integer, y As IntegerFor i = 1 To Ant_Num1000Randomizex = Rnd * Col_Numy = Rnd * Row_NumDoEventsIf Map(x, y)0 Then GoTo 1000Map(x, y) = 1NextEnd Sub Sub sub1() Dim i As Integer, j As IntegerFor i = 0 To Row_NumFor j = 0 To Col_NumIf Map(j, i) = 1 ThenForm1.FillColor = vbBlackForm1.FillStyle = 0Form1.Circle (x0 + j * a + a / 2, y0 + i * a + a / 2), a / 3, vbBlack, , , 0.8ElseIf Map(j, i) = 0 ThenForm1.Line (x0 + j * a + 2, y0 + i * a + 2)-Step(a - 4, a - 4), Form1.BackColor, BFCurrentX = j * a + x0CurrentY = i * a + y0Print Counts(j, i)End IfNext j Next iEnd Sub
以下为关联内容:
用VB编程实现扫雷的思路用VB编程实现扫雷的思路,扫雷的秘诀是什么:'一个简单扫雷游戏 Option Explicit Dim Map() As Integer Dim Row_Num, Col_Num As Integer '范围,一个正方形的边长 Dim Ant_Num A...
扫雷程序用c语言怎样写扫雷程序用c语言怎样写,扫雷 c语言代码告诉我:这个程序应该不下一千行。。。要干什么用的?总体来说,是用一个二维数组a[][]来保存雷的存储情况。然后用一个二维数组chang[][]表...
VB中的扫雷双击代码是什么VB中的扫雷双击代码是什么,一份扫雷的c语言代码自己编的:假如说你用的commandbutton,那么可以这样Dim a As IntegerPrivate Sub Command1_MouseDown(Button As Integer, Shift...
vb制作扫雷游戏的问题vb制作扫雷游戏的问题,怎样用C Builder编写扫雷游戏:见: ?qbl=relate_question_0&word=vb%BC%D3%D4%D8%BF%D8%BC%FE%CA%FD%D7%E9 自己做了一个: 初始设置: 控件数组Command1() '通...
扫雷的VB编程扫雷的VB编程,c程序编程扫雷:Private Sub Form_Load()Init_FormEnd Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)Dim x1 A...
vb做windows自带的扫雷游戏急代码和解释如果是WINDOWS自带的是VC++的编写的这里有个VB代码布局是10*10的,希望对你有用dim a(10,10),b(100) as longFor i = 1 To 10 For j = 1 To 10 a(i, j) = "0" Next jNext iFor k...
C语言写扫雷时间地址,扫雷 c语言代码告诉我:在MFC程序里写: HWND gh=::FindWindow(NULL,"游戏标题可以用SPY++取得"); DWORD id; ::GetWindowThreadProcessId(gh,&id); //取进程ID HANDLE h=::OpenProce...
谁能给一下扫雷vb代码和详细解释急大神指点如何用java做扫雷小游戏详细:如果是WINDOWS自带的是VC++的编写的这里有个VB代码布局是10*10的,希望对你有用dim a(10,10),b(100) as longFor i = 1 To 10 For j = 1 T...
跪一个扫雷vb代码要详细有界面设计。急需电脑版JAVA扫雷源代码带计时器和自定义超级急:Public Class Form1 Private chks(8, 8) As CheckBox Private Sub Button1_Click(ByVal sender As System.Object, ByVal e...