C语言项目案例(一):实现贪吃蛇+双向链表+详细注释

实现贪吃蛇+双向链表+详细注释

在这里插入图片描述
代码如下:

main.c

#include "snake.h"

int main()
{
   
   
    initSnake();
    initMap();
    HideCursor();
    gameRun();
    return 0;
}

snake.h

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <conio.h>

#define N 30
#define TRUE 1
#define FALSE 0
#define TIME 200

#define LEFT 37
#define UP 38
#define RIGHT 39
#define DOWN 40


typedef struct SnakeNode {
   
     // 定义蛇的节点的双向链表结构体并将其重命名为snakeNode
    int pos_x;
    int pos_y;
    struct SnakeNode* pre;
    struct SnakeNode* next;
}snakeNode;

typedef struct FoodNode {
   
      // 定义food的结构体,并将其命名为foodNode
    int pos_x;
    int pos_y;
}foodNode;

typedef enum{
   
    false = 0, true = 1 }bool;

void initSnake();
void initMap();
void gameRun();

void showGame();
void Move(int key);
void addSnakeNode(int cur_tail_x, int cur_tail_y);
void createFood();                      //  产生食物
bool crashTest(int head_x, int head_y); // 判断是否撞墙或撞到自己
bool foodinsnake();                     // 判断新产生的食物是否在蛇身上

void gotoxy(int x, int y);              //光标控制
void HideCursor();                      //隐藏光标
void gameover();

snake.c

#include "snake.h"


int map[N][N];
int Score = 2;

snakeNode* snake_head;
snakeNode* snake_tail;
foodNode* food;


void initSnake()
{
   
   
    snake_head = (snakeNode*)malloc(sizeof(snakeNode));
    snake_tail = (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值