用C语言写个最简单的贪吃蛇

一、思路

  1. 定义二维数组window表示窗口;
  2. 定义BLANK、BORDER、SNAKE、FOOD 分别表示:空白、边框、蛇身、食物;
  3. 定义并初始化: 蛇头,蛇尾,食物;
  4. 显示初始窗口;
  5. 循环getchar,确定move方向,并使用fifo保存move方向,用于移动蛇尾;
  6. 计算新的蛇头,判断新蛇头为空白则移动蛇尾;为食物则不移动蛇尾,并重新生成食物;其他情况则直接结束游戏;
  7. 显示蛇头;
  8. 显示窗口。

二、最终效果

lim@TIM:~/code/game$ ./main 
OOOOOOOOOOOOOOOO
O          *   O
O    DDD       O
O      D       O
O      D       O
O      D  D    O
O      DDDD    O
O              O
O              O
O              O
O              O
O              O
O              O
O              O
O              O
OOOOOOOOOOOOOOOO

三、代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <memory.h>

#define XLEN 16
#define YLEN 16

enum {
   
    BLANK = ' ',    // 空白
    BORDER = 'O',   // 边框
    SNAKE = 'D',    // 蛇身
    FOOD = '*',     // 食物
};

typedef struct point {
   
    int x;
    int y;
}point;

typedef struct queue
{
   
    char buf[256];
    char in;
    char out;
}queue;

void queue_init(queue *q)
{
   
    q->in = 0;
    q->out = 0;
}

void queue_push(queue *q
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值