type
status
date
slug
summary
tags
category
icon
password
效果图:
整体设计思路:
整个游戏分为三个板块——棋盘、珠子和玩家,而三个板块分别对应三个类,通过成员函数去完善这三个成员的功能。整个游戏大体流程先确定下来,再把每一步用函数去实现。
关于程序功能的描述,如何使用功能:
五子连珠的流程大体为:1初始七颗珠子——2判断这七颗珠子是否能消去——3若能则消去,不产生珠子/若不能则开始操作——4选择起始珠子和目标位置——移动这颗珠子——检查移动后这颗珠子所在位置能否消去——若能则消去,重复4/若不能则产生3颗珠子,重复4,直到游戏结束。
首先我在main函数中定义三个类,棋盘、珠子和玩家,为了完成上述流程,我就在每个类中定义了能实现上述功能的成员函数,用if语句和while循环串联,形成一个完整的流程,而是否结束游戏我用了一个bool型变量game_over来作为指标,只要点击“退出游戏”或达到结束条件,则game_over=true,跳出循环,游戏结束。
各模块的体系结构设计和描述:
1. 棋盘板块:
主要是开始游戏前的棋盘绘制,包括设置游戏窗口大小、游戏操作提示、棋盘边框绘制。
2. 珠子版块:
主要是珠子的各种功能实现,比如判断一个位置是否可以消去、消去珠子、生成三颗新珠子、选择珠子、移动所选珠子等等。珠子消去移动包括两方面,一是画面上的珠子伪图形移动,通过上学期高程课上老师给的函数来实现,另一方面是内部数组的更新,也就是zhuzi[9][9]这个二维数组,我把它设置为私有的数据成员,而成员函数是可以访问修改的。
3. 玩家版块:
负责记录玩家的分数,后续程序优化可以为用户提供个性化服务,比如设置玩家ID、积分记录、排名等等。
游戏使用说明:
通过鼠标进行选择起始珠子和目标珠子,单击“退出游戏”框即可退出游戏
单击右键可以取消选择已经确定的起始珠子;
右侧标有下一轮产生的三颗珠子的颜色
其他:
压缩包中的音乐文件请与运行文件放在同一目录下,否则背景音乐无法播放。
更多项目详情参见github面向对象项目主页
- Author:S+M
- URL:http://www.sujiaming.top/article/color-ball
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!