贪吃蛇c语言逻辑思路,贪吃蛇编写思路及C语言源码

本文介绍了使用C语言编写贪吃蛇游戏的思路和关键步骤,包括画方块、移动、消失、相对坐标、随机点、链表运用以及游戏规则。通过理解这些要点,初学者可以尝试自己动手实现。文章提供了完整的游戏源代码,适合编程初学者练习。
摘要由CSDN通过智能技术生成

规则:每吃上一个点,就长大一点,不能撞墙或者撞上自己身体。

教训:在有限的空间里,可以贪吃,但是要注意安全哦。

这个游戏是我刚工作一年的时候写的,当时对C语言有了些了解,想做点东西,刚好看到同事的手机上有这个

游戏(那时我还没有手机呢,呵呵),觉得挺好玩,要实现的话也还比较简单,就在电脑上用TC上做出来了

。刚做出来的时候,那种喜悦,确实不是玩别人的游戏所能带来的。

这个程序是入门级别的,适合编程刚入门的朋友们试一试。高手达人们请跳过。

下面我简单说一下我的思路,理解下面几点会比较清楚一些。

1,基础:你首先要能画出一个带颜色的方块。举一反三:可以画一个就可以画很多个了。(TC中画方块用到了EGAVGA.BGI这个文件)

2,移动:一个方块消失,相邻地方一个方块出现,在视觉上就是移动了。

3,消失:用背景颜色在同样的地方画同样大小的方块。

4,相对坐标:视觉上像素这个单位太小,用方块的大小作为相对坐标的单位。

5,随机点:使用伪随机函数,参数一般用上系统当前时间,你再随意捏造个四则运算,就会产生出独一无二

的随机数了。

6,链表:这个是精髓啊,你看那蛇不是就像一个链表吗,这个可是我认为在这个游戏中使用的最高深的结构

了,呵呵。

7,长大:链表头遇上一个食物(随机产生的方块),链表上添加一个节点。

8,死亡:链表头撞上了自身或者撞墙。

也就这么多,理解了这几点,整个框架也就出来了。

下面就是源代码:

#include

#include

#include

#include

#define LEN sizeof(struct list)

#define uchar unsigned char

int n,sco,r,t,speed=8800;

uchar i,a,x1,y1,hit,long1=16,cycy=0,str1[200],xisu;

struct list

{ int x,y;

struct list * next,* last;

};

struct list * p1,* p2,* head,* eof1;

void

up(void); void down();

void

left(); void right();

void unit(uchar,uchar,uchar); void score();

void

dl(int); void save1();

void

load1(); void save(); main()

{ int driver=VGA,mode=VGAHI;

unsigned char ss[8];

initgraph(&driver,&mode,"c:\\tc");

setfillstyle(1,8);

setcolor(8);

bar(2,2,600,400);

setfillstyle(1,7); setcolor(7);

bar(117,117,170,140);

setfillstyle(1,8); setcolor(8);

bar(118,118,170,140);

setcolor(14);

sprintf(ss,"enter");

outtextxy(120,125,ss);

setcolor(0);

line(118,141,171,141);

line(118,142,172,142);

line(171,118,171,141);

line(172,118,172,142);

setfillstyle(1,14);

setcolor(14);

circle(15,15,10); sprintf(ss," fast"); outtextxy(30,15,ss);

circle(15,55,10); sprintf(ss," normol");

outtextxy(30,55,ss);

circle(15,95,10); sprintf(ss," slow");

outtextxy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值