19南师软工——人机交互作业
前言
用vb来实现简易的五子棋,我们人机交互大作业,两人一组完成。是很简陋的学生作品
一、五子棋窗口弹开
我们设置的窗口是一个开始新游戏的界面和一个打开之前某次的游戏记录,点击开始游戏的界面则弹出该窗体的一个子窗口,且可以同时开启多个子窗口
所以我们五子棋是有两个窗口,一个frmGame窗口,一个frmStartGame窗口。
frmstartGame窗口
对于frmStartGame窗口,我设置了一个好看的背景图片
放在resources文件夹里
窗口的具体代码:
Public Class frmStartGame
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles StartGame.Click
CreateChild()
End Sub
Sub CreateChild()
Dim game As Form = New frmGame
' Dim NewChild As Form = New frmGame
Me.IsMdiContainer = True
game.MdiParent = Me
game.Show()
End Sub
Private Sub frmStartGame_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'继续游戏
End Sub
End Class
frmGame窗口
另外一个窗口是这个样子的:
其中一个是listbox,一个是picturebox(背景色是黄色)
运行结果:
运行弹出的窗口:我们默认是最大化,可以更改
这个是点击开始新游戏之后
可以同时打开好几个游戏窗口
二、画棋盘
画线段
首先一个五子棋的棋盘是固定的15*15的规格,也就是我们要画15条横线和竖线
而画线段的函数是
g.DrawLine(Pens.Black, x1, y, x2, y)
g是画笔,参数分别是颜色,起始坐标的xy值,终点坐标的xy值
数据
我们会怎么画一条线段了,那么,怎么来画一个棋盘呢
对于要在PictureBox里画出两组15的线段组,那么我们需要知道
Public Wxy As Integer '行数
Public gap As Integer '棋子间的缝隙
Public ChessR As Integer '棋子的半径
Public CellSize As Integer '格子的大小
具体是多少,可以直接制定比例
change()
当我们拖动窗口,画的画框会消失怎么办?
我的解决办法是chang事件
Public Event Changed() '当界面改变的响