​​​​​​​C语言贪吃蛇——“聪明的小蛇”课程设计报告书

本设计报告详述了聪明的小蛇游戏的开发过程,包括需求分析、系统设计、界面设计及实现细节。游戏使用C语言编程,融入了蛇的运动、食物摄取、障碍物躲避等特色功能,通过文本界面进行交互。
摘要由CSDN通过智能技术生成

“聪明的小蛇”课程设计报告书

一、选题

聪明的小蛇

二、需求分析

用C语言编写“聪明的小蛇”,实现蛇的运动、吃食物、吃毒草、地雷、关卡等基本功能和360度转动、智慧草、毒草闪烁        、游戏场景保存、图形界面等附加功能。蛇在运动过程中撞到墙壁或咬到自己或吃到炸弹使蛇身长度小于2节时,游戏结束。

三、系统设计

1、数据结构设计

蛇身、墙壁、智慧草、食物、炸弹、毒草均使用以下数据结构:

struct snake

{

        char x;

        char y;

        struct snake *next;

        struct snake *previous;

}

2、算法和程序流程:

3、模块间接口描述

(1)全局变量

整数型:score、stage、status、sleeptime、flag_create_poison、flag_color、flag_read_wall、flag_wisdom_eat、flag_next_created、flag_wisdom_created、flag_graph

长整型:game_time_1

(2) 子模块返回的信息

调用自定义函数check_bite : return 1代表能咬到蛇身,return 0代表不能咬到蛇身;调用自定义函数check_coincidence : return 1代表生成的坐标与已有坐标重复,return 0代表生成的坐标不与已有坐标重复。

(3)实参为形参传值

自定义函数end_game接受传值后显示不同的结束状态;自定义函数set_pos接受传值后把光标移至指定位置;自定义函数sort接受数组地址后对数组内容进行修改。

(4)使用指针

自定义函数sort接受传入地址后修改地址对应的数据。

四、界面设计

    开始和结束界面采用图形界面,通过按钮交互;游戏界面采用文本界面,通过按键交互。

五、系统实现

核心代码:

/

// 程序名称:聪明的小蛇

// 编译环境:VS2013+EasyX(20170919)

// 作  者:CDSN——哆啦一泓

// 最后修改:2018-1-11

/

struct snake

{

        char x;

        char y;

        struct snake *next;

        struct snake *previous;

}



void snake_move()//蛇前进

{

        struct snake * next_head;

        next_head = (struct snake*)malloc(sizeof(struct snake));

        change_status();

        p = next_head;

        if (flag_wisdom_eat == 0)check_wall();

        if (flag_wisdom_eat == 0 && check_bite(next_head) == 1)end_game(3);    

if (next_head->x == food->x && next_head->y == food->y)eat_food();

        else if (flag_wisdom_eat == 0 && next_head->x == bomb->x && next_head->y == bomb->y)eat_bomb();

        else if (flag_wisdom_eat == 0 && next_head->x == poison->x && next_head->y == poison->y)eat_bomb();

        else if (flag_wisdom_eat == 0 && next_head->x == wise->x && next_head->y == wise->y)eat_wisdom();

        else 继续前进

}



void game_begin()

{

        create_wall();

        initialize();

        wall = (struct snake*)malloc(sizeof(struct snake));

        q = (struct snake*)malloc(sizeof(struct snake));

        wall->x = -1 * 2;

        wall->y = -1;

        wall->next = NULL;

        snake_initialize();

        create_food();

        create_bomb();

        create_added_wall();

}



void game_control()//游戏控制

{

        int flag = 0;

        long game_time_10;

        while (1)

        {

                 if (flag_wisdom_eat == 1)eat_wisdom();

                 show_progress();

                 if (score >= 100)go_to_next_stage();

                 get_key_state();

                 Sleep(sleeptime);

                snake_move();

        }

}



int main()

{

        system("title 聪明的小蛇 By 数媒1701班 李一泓");

welcome();

}

六、测试与调试

七、心得与体会

此次课程设计,我深刻体会到了编程知识积累的重要性。在课设中我遇到了不少难题,但是经过仔细研究,得到解决。一个月的课设结束了,我的收获颇丰,同时也更深刻地认识到要做一个合格的程序员最重要的是严谨。贪吃蛇的设计使我学到了很多东西,为我以后的学习做了引导,点明了方向。

这次课设,我更多学到的是不懂就要问和尽全力尝试,哪怕失败,也要竭尽全力,最后在自己的努力下,取得成功,这种感觉美不可言,成就感十足。相信在不久的将来,我会开创自己的一片天空。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值