基于C语言的双人贪吃蛇游戏程序设计

基于C语言的双人贪吃蛇游戏程序设计

实现目标

制作一个两个两个人一起同时玩的双人贪吃蛇游戏,有比分并记录历史成绩
(1) 打开游戏时能够自动播放背景音乐
(2) 开始菜单,显示历史用户名及其对应的成绩
(3) 开始菜单可以输入两人的用户名
(4) P1 可以通过w,s,a,d来控制蛇1的移动
(5) P2 可以通过小键盘的“上,下,左,右”来控制蛇2的移动
(6) 食物在每次被吃后都会随机出现在地图
(7) 贪吃蛇吃到食物后长度会增加1
(8) 撞墙和撞到自己就会结束游戏,下一界面能够输出死因
(9) 随着分数增加,蛇移动会越来越快
(10) 每一场的两人的分数及用户名都会被记录

系统三大界面功能示意图

系统三大界面功能示意图

函数功能设计

函数名 函数功能
welcome 打印开始界面
Finish 打印结束界面,清空贪吃蛇结构占用的内存
creatgraph 打印围墙
gotoxy 移动光标
color 设置颜色
gotoprintboundary 跳转打印边界
gotoprintsnake 打印贪吃蛇结构
gotodelete 跳转删除
creatsnake 初始化蛇
creatfood 产生食物
ClickControl 获取键盘信号
Judge 判断蛇是否死亡
MovingBody 控制蛇的移动
Eating 蛇吃到食物后的操作
ChangeBody1 蛇1的坐标变换
ChangeBody2 蛇2的坐标变换
record 文件操作记录成绩
printrecord 读取文件,输出成绩

各函数调用关系如图所示:
各函数调用关系

该程序中的数据结构与算法

  • 数据结构

  1. 结构体:
struct Food
{
   
    int x;
    int y;
} food;
//这是产生食物的结构体
  1. 结构体数组:
typedef struct
{
   
    char name[10];
    int score;
} Rank;

Rank rank[2];
//这是保存用户名及其对应分数的结构体数组
  1. 链表:
typedef struct Snakes
{
   
    int x;
    int y;
    struct Snakes* next;
} snake;

snake* head;
snake* head2;
//本程序中两条蛇的产生及控制均使用链表存储
  • 算法

  1. 文件输入操作:
void record()
{
   
    FILE *fp;
    fp = fopen("data.txt", "a");
    for (int i = 0; i < 2; i++)
 
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deconx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值