一、项目介绍
十五子游戏开始界面,任意键进入十五子游戏,暂停按钮进入屏保。开始是十五个按钮按顺序,排成四排。点击开始按钮进入游戏,十五个按钮顺序被打乱,通过点击空白块周围的任意按钮,将该按钮移动到空白位置。以此来使十五个按钮按照正确的顺序重新排列,游戏获得胜利!
游戏开始界面是老式windows电脑的屏保,通过Timer组件和五个Lable控件以及随机数对象Random来实现。设置timer的Interval属性,每0.1秒变换lable的BackColor,Left,Top属性,来达到lable背景颜色不断变换,位置移动的效果,当lable移动到窗体边缘就以相反的方向进行移动,从而实现类似屏保的开始界面。
游戏通过两个for循环创建了4*4的按钮数组,在for循环里设置了按钮的大小,坐标等相关属性,然后通过this.Controls.Add方法把按钮添加到窗体。当点击按钮时通过Button btn = sender as Button,来找到被点击的按钮,然后判断该按钮是否与空白按钮相邻,若相邻则把按钮上面的数字和可见性进行交换,从而实现将按钮移动到空白位置的视觉效果。每移动一次就判断按钮顺序是否正确,若正确则提示成功。为了防止玩家多次移动仍不能成功,右下角的按钮通过Controls.Remove方法删除所有按钮,然后重新创建来实现对所有按钮进行排序。
暂停功能也是通过timer组件,用g.DrawEllipse不停的在窗口绘制大小依次变大的圆来实现一个动态变换的效果。
![18702784-e9b70ae4612c7f80.png](https://i-blog.csdnimg.cn/blog_migrate/fe9cae82bf1fb2e1ace3dcd2aee658e4.webp?x-image-process=image/format,png)