基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏

基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏

本文主要详细介绍了用C语言编写的简单贪吃蛇游戏。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

本文分享C语言实现简单贪吃蛇游戏的具体代码,供大家参考。具体内容如下

用指针数组表示蛇,p[0]表示蛇头。

控制方向:W、S、A、D-上、下、左、右

j,k-加速和减速

键盘控制需要线程。

编译后需要添加-lpthread。

代码:

#包含stdio.h

#include pthread.h

#包含stdlib.h

#包含时间. h

#包括unistd.h

#定义X 20

#定义Y 40

char head=' @//蛇头的形状

char body=' O//蛇身的形状

char a[X][Y]={'O ',' O ',' @ ' };

char *p[X*Y]={a[0][3],a[0][2],a[0][1],a[0][0]};//p[0]表示蛇头。

int n=3;//蛇身的长度(不包括蛇头)

int i,j;

int f=1;//标志位:1。对;2.去;3.左;4.向下;-1.出口

int us=200000//用于usleep,延时0.2秒

右侧无效()

{

* p[n]=0;

for(I=n;i0;我-)

{

p[I]=p[I-1];

}

* p[0]=body;

p[0]=p[0]1;//蛇头向右移动

* p[0]=头;

}

向左无效()

{

* p[n]=0;

for(I=n;i0;我-)

{

p[I]=p[I-1];

}

* p[0]=body;

p[0]=p[0]-1;

* p[0]=头;

}

向下无效()

{

* p[n]=0;

for(I=n;i0;我-)

{

p[I]=p[I-1];

}

* p[0]=body;

p[0]=p[0]Y;

* p[0]=头;

}

向上清空()

{

* p[n]=0;

for(I=n;i0;我-)

{

p[I]=p[I-1];

}

* p[0]=body;

p[0]=p[0]-Y;

* p[0]=头;

}

无效显示()

{

系统(“clear”);

for(I=0;iY;我)

printf('-');

printf(' \ n ');

for(I=0;九;我)

{

for(j=0;jY;j)

{

if(a[i][j]==0)

printf(“”);

其他

printf('%c ',a[I][j]);

}

printf(' \ n ');

}

for(I=0;iY;我)

printf('-');

Printf('\nw,s,a,d-上,下,左,右;j,k-加速和减速;ESC \ n ');

}

int()//随机数生成*

{

srand(time(NULL));

磅:

I=rand()% X;

j=rand()% Y;

//如果随机位置的值为0,则生成一个*;否则,继续寻找随机地点。

if(a[i][j]==0)

a[I][j]=' * ';

其他

转到lb;

}

void eat()

{

If(f==1)//right

{

if(*(p[0] 1)=='* ')

{

n;//长度增加

p[n]=p[n-1];

冉();//随机数生成*

}

}

On if(f==2)//

{

if(*(p[0]-Y)=='* ')

{

n;//长度增加

p[n]=p[n-1];

冉();//随机数生成*

}

}

If(f==3)//left

{

if(*(p[0]-1)=='* ')

{

n;//长度增加

p[n]=p[n-1];

冉();//随机数生成*

}

}

在if(f==4)//下

{

if(*(p[0] Y)=='* ')

{

n;//长度增加

p[n]=p[n-1];

冉();//随机数生成*

}

}

}

无效失败()

{

if(p[0]a[0][0]| | p[0]a[x-1][y-1])//蛇头不在矩阵中

{

printf('失败!\ n’);

f=-1;

}

If(f==1)//right

{

for(I=n;i0;我-)

{

If((p[0] 1)==p[i])//右边是自己的身体

{

printf('失败!\ n’);

f=-1;

}

}

}

On if(f==2)//

{

for(I=n;i0;我-)

{

If((p[0]-Y)==p[i])//上面是自己的身体

{

printf('失败!\ n’);

f=-1;

}

}

}

If(f==3)//left

{

for(I=n;i0;我-)

{

If((p[0]-1)==p[i])//左边是自己的身体。

{

printf('失败!\ n’);

f=-1;

}

}

}

在if(f==4)//下

{

for(I=n;i0;我-)

{

If((p[0] Y)==p[i])//下面是自己的身体

{

printf('失败!\ n’);

f=-1;

}

}

}

}

Void *key(void *arg)//控制方向:W,S,A,D-上下左右

{

char k;

while(1)

{

k=getchar();

On if(k=='w')//

f=2;

Under if(k=='s')//

f=4;

If(k=='a')//left

f=3;

If(k=='d')//right

f=1;

If(k=='j')//加速

us=us * 4/5;

If(k=='k')//减速

us=us * 5/4;

if(k==27)//ESC

{

printf(‘退出!\ n’);

f=-1;

}

us LEEP(100);

}

}

int main()

{

system(' stty-icanon ');//关闭缓冲区,输入的字符可以直接接受,不需要按回车键。

pthread _ t pid

pthread_create(pid,NULL,key,NULL);//创建一个线程,键盘控件

冉();

while(1)

{

show();//显示

usleep(美国);

fail();//确定自己会不会咬自己

吃();//判断能不能吃*

If(f==1)//right

right();

On if(f==2)//

up();

If(f==3)//left

left();

在if(f==4)//下

down();

If(f==-1)//退出

{

pthread _ cancel(PID);//关闭线程

return-1;

}

}

返回0;

}

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 利用c语言实现三子棋游戏的目标,c语言三子棋程序,利用C语言实现三子棋游戏
  • 留言与评论(共有 条评论)
       
    验证码: