登陆
|
注册
首页
搜索
·酷图
清纯
|
性感
|
明星
|
美腿
明星
|
街拍
|
美胸
|
美胸
RSS
编程开发
c#
|
C
|
java
|
.net
|
移动开发
|
GO语言
|
Perl
|
Python
|
操作系统
Linux
|
Windows
|
虚拟机
|
WEB
ASP
|
PHP
|
JSP
|
JavaScript
|
网页设计
|
DIVCSS
|
Ajax技术
|
HTML5
|
英语
英语文摘
|
英语口语
|
英语小说
|
英语考试
|
短文学
唯美句子
|
短信摘抄
|
对联谜语
|
励志好语
|
格言物语
|
幽默风趣
|
经典语录
|
范文
实践报告
|
党团范文
|
求职简历
|
竞赛演讲
|
汇报总结
|
自我介绍
|
人事合同
|
其他范文
|
论文
计算机论文
|
英语论文
|
法律论文
|
数学论文
|
会计论文
|
经济论文
|
医学论文
|
历史论文
|
文章
英语学习
|
考研备战
|
范文大全
|
论文大全
|
基础学科
|
学习
英语学习
|
考研备战
|
范文大全
|
论文大全
|
基础学科
|
下载
应用软件
|
学习资料
|
教程书籍
|
应用素材
|
影视音乐
|
网站源码
|
您现在的位置:
计算机技术学习网
>
技术中心
>
编程开发
>
C
>
C语言课程设计_贪吃蛇
来源:不详 责任编辑:栏目编辑 发表时间:2013-07-01 20:59 点击:次
c#
C
java
.net
移动开发
GO语言
Perl
Python
#include "graphics.h"
#include "stdio.h"
#define MAX 200
#define MAXX 30
#define MAXY 30
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
#define ESC 283
#define ENTER 7181
#define PAGEUP 18688
#define PAGEDOWN 20736
#define KEY_U 5749
#define KEY_K 9579
#define CTRL_P 6512
#define TRUE 1
#define FALSE 0
#define GAMEINIT 1
#define GAMESTART 2
#define GAMEHAPPY 3
#define GAMEOVER 4
struct SPlace
{
int x;
int y;
int st;
} place[MAX];
int speed;
int count;
int score;
int control;
int head;
int tear;
int x,y;
int babyx,babyy;
int class;
int eat;
int game;
int gamedelay[]={5000,4000,3000,2000,1000,500,250,100};
int gamedelay2[]={1000,1};
static int hitme=TRUE,hit = TRUE;
void init(void);
void nextstatus(void);
void draw(void);
void init(void)
{
int i;
for(i=0;i<MAX;i++)
{
place[i].x = 0;
place[i].y = 0;
place[i].st = FALSE;
}
place[0].st = TRUE;
place[1].st = TRUE;
place[1].x = 1;
speed = 9;
count = 0;
score = 0;
control = 4;
head = 1;
tear = 0;
x = 1;
y = 0;
babyx = rand()%MAXX;
babyy = rand()%MAXY;
eat = FALSE;
game = GAMESTART;
}
void nextstatus(void)
{
int i;
int exit;
int xx,yy;
xx = x;
yy = y;
switch(control)
{
case 1: y--; yy = y-1; break;
case 2: y++; yy = y+1; break;
case 3: x--; xx = x-1; break;
case 4: x++; xx = x+1; break;
}
hit = TRUE;
if ( ((control == 1) || (control ==2 )) && ( (y < 1) ||(y >= MAXY-1)) ||
(((control == 3) || (control == 4)) && ((x < 1) ||(x >= MAXX-1) ) ) )
{
hit = FALSE;
}
if ( (y < 0) ||(y >= MAXY) ||
(x < 0) ||(x >= MAXX) )
{
game = GAMEOVER;
control = 0;
return;
}
for (i = 0; i < MAX; i++)
{
if ((place[i].st) &&
(x == place[i].x) &&
(y == place[i].y) )
{
game = GAMEOVER;
control = 0;
return;
}
if ((place[i].st) &&
(xx == place[i].x) &&
(yy == place[i].y) )
{
hit = FALSE;
goto OUT;
}
}
OUT:
if ( (x == babyx) && (y == babyy) )
{
eat = TRUE;
count ++;
score += (1+class) * 10;
}
head ++;
if (head >= MAX) head = 0;
place[head].x = x;
place[head].y = y;
place[head].st= TRUE;
if (eat == FALSE)
{
place[tear].st = FALSE;
tear ++;
if (tear >= MAX) tear = 0;
}
else
{
eat = FALSE;
exit = TRUE;
while(exit)
{
babyx = rand()%MAXX;
babyy = rand()%MAXY;
exit = FALSE;
for( i = 0; i< MAX; i++ )
if( (place[i].st)&&( place[i].x == babyx) && (place[i].y == babyy))
exit ++;
}
}
if (head == tear) game = GAMEHAPPY;
}
void draw(void)
{
char temp[50];
int i,j;
for (i = 0; i < MAX; i++ )
{
setfillstyle(1,9);
if (place[i].st)
bar(place[i].x*15+1,place[i].y*10+1,place[i].x*15+14,place[i].y*10+9);
}
setfillstyle(1,4);
bar(babyx*15+1,babyy*10+1,babyx*15+14,babyy*10+9);
setcolor(8);
setfillstyle(1,8);
bar(place[head].x*15+1,place[head].y*10+1,place[head].x*15+14,place[head].y*10+9);
/* for( i = 0; i <= MAXX; i++ )
line( i*15,0, i*15, 10*MAXY);
for( j = 0; j <= MAXY; j++ )
line( 0, j*10, 15*MAXX, j*10);
*/
rectangle(0,0,15*MAXX,10*MAXY);
sprintf(temp,"Count: %d",count);
settextstyle(1,0,2);
setcolor(8);
outtextxy(512,142,temp);
setcolor(11);
outtextxy(510,140,temp);
sprintf(temp,"1P: %d",score);
settextstyle(1,0,2);
setcolor(8);
outtextxy(512,102,temp);
setcolor(12);
outtextxy(510,100,temp);
sprintf(temp,"Class: %d",class);
setcolor(8);
outtextxy(512,182,temp);
setcolo
RSS订阅
返回编程开发
返回到首页
相关新闻>>
c语言课程设计网_学生成绩管理系统4
C语言课程设计_贪吃蛇游戏
c语言课程设计_学生成绩管理系统6
数据结构课程数据_飞机订票系统
c语言课程设计_通讯录
c语言课程设计_飞机订票系统
C语言课程设计_贪吃蛇代码
c语言课程设计_五子棋双人对战程序
c语言课程设计_文本模式下的菜单演示
c语言课程设计_简单的图像演示
最新推荐
更多>>>
C++中实现Singlet
【编程好习惯】判断失败而不是成功
【编程好习惯】使用空格增加可读性
【编程好习惯】使用sizeof减少内存操作失误
【编程好习惯】屏蔽编程语言特性
【编程好习惯】合理运用静态全局或局部数组
【编程好习惯】恰当使用goto语句
【编程好习惯】以逆序方式释放分配获得的资源
热门新闻
进入编程开发频道>>
C
c语言课程设计网_学生成绩管理系统4
C
C语言课程设计报告_学生成绩简单管理程序
C
c语言课程设计_学生成绩管理系统1
C
学生成绩管理系统5_c语言课程设计
C
c语言课程设计_图书管理系统
C
c语言课程设计_学生成绩管理系统2
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
中立
好评
差评
用户名:
验证码:
匿名?
发表评论
最新评论
更多>>
今日头条
更多>>
Glib实例学习(2)双链表
[详细]
推荐热点
您可能感兴趣的文章
用Visual C++开发数据库应用程序(五)
[编程好习惯] 永远将头文件作为定义和引用的桥梁
【编程好习惯】青睐小粒度锁
C语言课程设计_贪吃蛇游戏
【编程好习惯】永远将头文件作为定义和引用的桥梁
【编程好习惯】只暴露必要的变量和函数
VC中的常用的20个方法
[编程好习惯] 只暴露必要的变量和函数
在消息框按钮上显示Yes与No
使用libevent编写linux服务
快速直达
c#
C
java
.net
移动开发
GO语言
Perl
Python
新闻点评
智问网络
Glib实例学习(2)双链表
新闻关注排行榜
热门推荐
最新推荐
Glib实例学习(2)双链表
[详细]
C程序员要学C++吗?
C++中实现Singleton的正确方法
编程思维训练(一)
【编程好习惯】引入中间变量使程序更易读
在C++中通过模板规避潜在错误
在C++中通过模板去除强制转换
【编程好习惯】减少搜索头文件的目录数
C++中实现Singleton的正确方法
如果某个类管理了系统中唯一的某种资源,那么我们只能创建该类的一个实例,此时用到si
[详细]
C程序员要学C++吗?
【编程好习惯】引入中间变量使程序更易读
在C++中通过模板规避潜在错误
在C++中通过模板去除强制转换
编程思维训练(一)
【编程好习惯】减少搜索头文件的目录数
Glib实例学习(2)双链表
编程开发导航
c#
C
java
.net
移动开发
GO语言
Perl
Python
网站首页
-
友情链接
-
网站地图
-
TAG标签
-
RSS订阅
-
内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有
豫ICP备11007008号-1