C语言课程设计之连连看
1 需求分析
游戏名称:连连看。这是一款区别于普通连连看的小游戏。玩家以某个速度顺时针连续旋转,在旋转过程中根据键盘或鼠标命令射出直线连接 界面上的小球,每连接一个小球,玩家则占领此地,连接下一个小球,直至连接所有小球成闭环。
1.1 功能需求
1.1.1基本功能:
1.1.1基本功能:
①完成游戏登入界面的设计
②在登入界面按下空格,将弹出对话框用于保存当前玩家的用户名
③游戏开始后:
1)载入背景画面,主球和其余小球随机分布在相应位置上
2)主球以某个角速度顺时针旋转
3)玩家点击鼠标控制球发出子弹,子弹击中小球后将此球连接,表示该球被占领。则上一个小球停止旋转、炮针消失和失去发射子弹的功能;而当前被占领的球开始旋转、生成炮针和具有发射子弹的功能。以此类推,直至所有小球闭合成环或者形成“主球—其他球—主球”的连接路线。
4)游戏时间固定(本游戏限时60秒),剩余游戏时间显示在屏幕右上角,游戏时间实时更新
5)游戏时间到或玩家成功连接小球,游戏结束
6)游戏结束,记录总得分,并显示在界面上
7)保存用户的成绩:单击“保存成绩”可记录当前玩家的用户名和游戏得分,并将其存入文件中(同一个用户名可有多个成绩)
②在登入界面按下空格,将弹出对话框用于保存当前玩家的用户名
③游戏开始后:
1)载入背景画面,主球和其余小球随机分布在相应位置上
2)主球以某个角速度顺时针旋转
3)玩家点击鼠标控制球发出子弹,子弹击中小球后将此球连接,表示该球被占领。则上一个小球停止旋转、炮针消失和失去发射子弹的功能;而当前被占领的球开始旋转、生成炮针和具有发射子弹的功能。以此类推,直至所有小球闭合成环或者形成“主球—其他球—主球”的连接路线。
4)游戏时间固定(本游戏限时60秒),剩余游戏时间显示在屏幕右上角,游戏时间实时更新
5)游戏时间到或玩家成功连接小球,游戏结束
6)游戏结束,记录总得分,并显示在界面上
7)保存用户的成绩:单击“保存成绩”可记录当前玩家的用户名和游戏得分,并将其存入文件中(同一个用户名可有多个成绩)
1.1.2拓展功能:
①增加暂停按钮:点击暂停按钮后,游戏和游戏时间暂停,可选择继续游戏或者回到主菜单,
②显示排行榜:主菜单中单击“显示排行榜”按钮,读取文件中的信息并进行排序,排行榜输出前10名的玩家信息显示在新界面中。
③增加音乐:在登入游戏时和进行游戏时增加两段背景音乐
④游戏分级:在主菜单界面增加“游戏难度”按钮,点击后可进入新界面选择游戏的等级,并在此界面左上角增加“返回”键,供玩家直接返回主菜单。
⑤主菜单增加“退出游戏”:可供玩家直接中断程序,增加了界面的交互性
⑥本游戏小球增加“魔性”运动功能,提高了游戏的难度和趣味性
⑦在每次游戏结束后自动弹出一个显示玩家得分和是否成功的界面,界面上增加有“保存成绩”按钮和“返回主菜单”按钮,提升了交互性。
⑧增加游戏帮助:帮助玩家更好地理解游戏
⑨优化界面成3 个区域:游戏区、控制区、信息显示区。增加游戏的控制和显示信息。
②显示排行榜:主菜单中单击“显示排行榜”按钮,读取文件中的信息并进行排序,排行榜输出前10名的玩家信息显示在新界面中。
③增加音乐:在登入游戏时和进行游戏时增加两段背景音乐
④游戏分级:在主菜单界面增加“游戏难度”按钮,点击后可进入新界面选择游戏的等级,并在此界面左上角增加“返回”键,供玩家直接返回主菜单。
⑤主菜单增加“退出游戏”:可供玩家直接中断程序,增加了界面的交互性
⑥本游戏小球增加“魔性”运动功能,提高了游戏的难度和趣味性
⑦在每次游戏结束后自动弹出一个显示玩家得分和是否成功的界面,界面上增加有“保存成绩”按钮和“返回主菜单”按钮,提升了交互性。
⑧增加游戏帮助:帮助玩家更好地理解游戏
⑨优化界面成3 个区域:游戏区、控制区、信息显示区。增加游戏的控制和显示信息。
1.2 数据需求
输入数据:用户的ID
中间结果:排行榜中的用户名ID、排名和得分,游戏中不断更新的时间和当前得分
输出结果:用户的游戏得分
中间结果:排行榜中的用户名ID、排名和得分,游戏中不断更新的时间和当前得分
输出结果:用户的游戏得分
1.3 界面需求
①游戏登入界面:
图1 游戏登入界面
②游戏主菜单界面:
图2 游戏运行界面(上述的功能已全部实现)
③游戏运行界面:
图3 游戏运行界面
④游戏成功与失败界面:
图4 游戏成功界面
图5 游戏失败界面
⑤游戏暂停界面:
图6 游戏暂停界面
1.4 开发与运行环境需求
①开发环境:
Microsoft Visual Studio 2017
②运行环境:
Windows 10 Family Chinese Version 64-bit (10.0, version 17134)
①开发环境:
Microsoft Visual Studio 2017
②运行环境:
Windows 10 Family Chinese Version 64-bit (10.0, version 17134)
1.5 其他方面需求
①为了获取对话框中的用户名,使用TcharToChar函数将Tchar类型的字符串转成char类型的字符串,从而将用户信息保存到文件中。
②运行环境在创建项目时选择了SDL安全检查,具有较好的安全性,如在outtextxy函数的中的字符串使用了_T(“”)形式,fprintf改成更为安全的fprintf_s形式,用_getch()代替了不具有移植性的getch()等。
③在构建文件来保存成绩、销毁玩家成绩等功能中使用了链表。
②运行环境在创建项目时选择了SDL安全检查,具有较好的安全性,如在outtextxy函数的中的字符串使用了_T(“”)形式,fprintf改成更为安全的fprintf_s形式,用_getch()代替了不具有移植性的getch()等。
③在构建文件来保存成绩、销毁玩家成绩等功能中使用了链表。
需要源代码和相关资料可以联系我。