首页技术c++贪吃蛇代码(简易版)?简单的js贪吃蛇源代码

c++贪吃蛇代码(简易版)?简单的js贪吃蛇源代码

编程之家2026-07-02986次浏览

其实c++贪吃蛇代码(简易版)的问题并不复杂,但是又很多的朋友都不太了解简单的js贪吃蛇源代码,因此呢,今天小编就来为大家分享c++贪吃蛇代码(简易版)的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

c++贪吃蛇代码(简易版)?简单的js贪吃蛇源代码

基于C++的贪吃蛇游戏能运行出来的完整代码有哪些

一个参考实例,在VC++6.0中可以运行成功(可能还有问题)\x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include//使用当前时间做种子;\x0d\x0aenum dir{up,down,left,right};//枚举类型enum dir;\x0d\x0a//围墙;\x0d\x0aclass Fence{\x0d\x0apublic:\x0d\x0a void InitFence();\x0d\x0a void OutputF();\x0d\x0apublic:\x0d\x0a char game[20][20];\x0d\x0a}f;//定义对象;\x0d\x0a//画框框;\x0d\x0avoid Fence::InitFence(){\x0d\x0a for(int i=0; ix=x; q->y=y;\x0d\x0a q->next=head;\x0d\x0a q->prior=NULL;\x0d\x0a if(head) head->prior=q;\x0d\x0a head=q;\x0d\x0a if(!tail) tail=head;\x0d\x0a f.game[x][y]='*';//f对象可以在定义Fence类时定义;且Fence类在SnakeNode类前定义;\x0d\x0a}\x0d\x0aint SnakeNode::get_x(){\x0d\x0a return x;\x0d\x0a}\x0d\x0aint SnakeNode::get_y(){\x0d\x0a return y;\x0d\x0a}\x0d\x0a//删除尾结点;\x0d\x0avoid SnakeNode::delete_tail(){\x0d\x0a SnakeNode*p=tail;\x0d\x0a f.game[tail->get_x()][tail->get_y()]='';//把尾结点的坐标表示的'*'置为空格;\x0d\x0a if(tail==head)\x0d\x0a tail= head= NULL;\x0d\x0a else{\x0d\x0a tail= tail->prior;\x0d\x0a tail->next= NULL;\x0d\x0a}\x0d\x0a delete p;\x0d\x0a}\x0d\x0a//move移动;\x0d\x0aclass move{\x0d\x0apublic:\x0d\x0a dir point;//枚举变量point:控制方向;\x0d\x0a int food_x;\x0d\x0a int food_y;\x0d\x0apublic:\x0d\x0a void moving();\x0d\x0a void change_point(char);//改变方向;\x0d\x0a void get_food();\x0d\x0a};\x0d\x0avoid move::moving(){\x0d\x0a int a,b;\x0d\x0a a= head->get_x();//取得头结点横坐标\x0d\x0a b= head->get_y();//头结点纵坐标\x0d\x0a switch(point){\x0d\x0a case up:--a; break;\x0d\x0a case down:++a; break;\x0d\x0a case left:--b; break;\x0d\x0a case right:++b; break;\x0d\x0a}\x0d\x0a if(a==19||b==19||a==0||b==0){//判断是否撞墙; \x0d\x0a coutadd_head(a,b);\x0d\x0a get_food();\x0d\x0a}\x0d\x0a else{\x0d\x0a head->add_head(a,b);//插入头结点;\x0d\x0a head->delete_tail();//删除尾结点;\x0d\x0a}\x0d\x0a}\x0d\x0avoid move::change_point(char keydown){\x0d\x0a switch(keydown){\x0d\x0a case'w': point= up; break;\x0d\x0a case's': point= down; break;\x0d\x0a case'a': point= left; break;\x0d\x0a case'd': point= right; break;\x0d\x0a}\x0d\x0a}\x0d\x0avoid move::get_food(){\x0d\x0a srand((unsigned int) time(NULL));//做种子(程序运行时间); \x0d\x0a food_x= rand()%18+1; \x0d\x0a food_y= rand()%18+1;\x0d\x0a f.game[food_x][food_y]='*';\x0d\x0a}\x0d\x0a//main();\x0d\x0aint main()\x0d\x0a{\x0d\x0a coutadd_head(4,3);\x0d\x0a head->add_head(4,4);\x0d\x0a head->add_head(4,5);\x0d\x0a m.get_food();\x0d\x0a f.OutputF();\x0d\x0a while(true){\x0d\x0a char keydown= getch();//getch()返回键盘上读取的字符;包含头文件\x0d\x0a m.change_point(keydown);\x0d\x0a while(!kbhit()){//判断有没有按键落下;\x0d\x0a system("cls");//清屏函数;\x0d\x0a m.moving();\x0d\x0a f.OutputF();\x0d\x0a Sleep(200);\x0d\x0a}\x0d\x0a}\x0d\x0a return 0;\x0d\x0a}

谁有用c++写的贪吃蛇源代码分享一个给我吧, 好人一生平安!

游戏描述如下:

1.贪吃蛇可以自动直线前进,或者玩家可以通过方向键操纵贪吃蛇上下左右前进,每次前进一格。

2.贪吃蛇在规定的区域内活动,当:

①贪吃蛇触碰到墙壁时;

②贪吃蛇的蛇头触碰到蛇身或者蛇尾时;

c++贪吃蛇代码(简易版)?简单的js贪吃蛇源代码

③玩家的键盘输入不是方向键时;

命令行显示“Game Over!”并且退出游戏。

3.贪吃蛇活动的区域内每次随机产生一颗“豆豆”,当贪吃蛇吃到“豆豆”后蛇身增长一格,自动前进时间缩

短100ms(默认是1000ms,且不能少于100ms)。贪吃蛇长度每为8的倍数Improve a Level。

C++代码如下:

#include<bios.h>

c++贪吃蛇代码(简易版)?简单的js贪吃蛇源代码

#include<conio.h>

#include<dos.h>

#include<graphics.h>

#include<stdlib.h>

#include<time.h>

usingnamespacestd;

inlinevoiddisplay(chargsDomain[][22],intlevel,intmoveSpeed)

{

system("cls");//清屏

cout<<endl<<endl;

for(inti=0;i<22;i++)

{

cout<<"\t";

for(intj=0;j<22;j++)

cout<<gsDomain[i][j]<<"";

if(i==0)

{

cout<<"\tLevel:"<<level;

}

elseif(i==3)

{

cout<<"\t自动前进时间";

}

elseif(i==5)

{

cout<<"\t间隔:"<<moveSpeed<<"ms";

}

cout<<endl;

}

}

intmain()

{

chargsDomain[22][22];//贪吃蛇活动区域(包括墙壁)

//初始化贪吃蛇活动区域(不包括墙壁)

for(inti=1;i<=21;i++)

{

for(intj=1;j<=21;j++)

gsDomain[i][j]='';

}

//初始化贪吃蛇活动区域的上下墙壁

for(inti=0;i<22;i++)

gsDomain[0][i]=gsDomain[21][i]='-';

//初始化贪吃蛇活动区域的左右墙壁

for(inti=1;i<21;i++)

gsDomain[i][0]=gsDomain[i][21]='|';

//初始化蛇身

for(inti=1;i<=3;i++)

gsDomain[1][i]='*';

//初始化蛇头

gsDomain[1][4]='#';

intsnake[2][100];//记录贪吃蛇每次出现的位置的坐标

for(inti=0;i<4;i++)

{

snake[0][i]=1;//记录贪吃蛇所在位置的x坐标

snake[1][i]=i+1;//记录贪吃蛇所在位置的y坐标

}

inthead=3,tail=0,length=4;

intbeanX,beanY;//豆豆出现的位置

srand(time(0));

do

{

beanX=rand()%20+1;

beanY=rand()%20+1;

}while(gsDomain[beanX][beanY]!='');

gsDomain[beanX][beanY]='*';//豆豆

cout<<"

\t\t贪吃蛇游戏即将开始!

";

longstart;

intlevel=1,moveSpeed=1000;

for(inti=3;i>=0;i--)

{

start=clock();

while(clock()-start<=1000){}

system("cls");

if(i)

{

cout<<"

\t\t进入游戏倒计时:"<<i<<endl;

}

else

display(gsDomain,level,moveSpeed);

}

chardirection=77;//贪吃蛇默认自动向右直线前进

while(true)

{

booltimeFlag=true;

intx,y;

start=clock();

//若时间超过自动前进时间或者键盘上有键按下则终止循环

while((timeFlag=(clock()-start<=moveSpeed))&&!kbhit()){}

if(timeFlag)

{

//键盘上有键按下时读取键盘输入

getch();

direction=getch();

}

switch(direction)

{

//向上

case72:x=snake[0][head]-1,y=snake[1][head];

break;

//向下

case80:x=snake[0][head]+1,y=snake[1][head];

break;

//向左

case75:x=snake[0][head],y=snake[1][head]-1;

break;

//向右

case77:x=snake[0][head],y=snake[1][head]+1;

break;

default:cout<<"\tGameOver!

";

return0;

}

if(x==0||x==21||y==0||y==21)

{

//贪吃蛇触碰到墙壁

cout<<"\tGameOver!

";

return0;

}

if(gsDomain[x][y]!=''&&!(x==beanX&&y==beanY))

{

//贪吃蛇的蛇头触碰到蛇身或者蛇尾

cout<<"\tGameOver!

";

return0;

}

if(x==beanX&&y==beanY)

{

//吃豆豆

length++;//长度加1

if(length>=8)

{

//游戏升级处理

length-=8;

level++;

if(moveSpeed>100)

moveSpeed-=100;

}

gsDomain[snake[0][head]][snake[1][head]]='*';

gsDomain[x][y]='#';

head=(head+1)%100;

snake[0][head]=x;

snake[1][head]=y;

do

{

beanX=rand()%20+1;

beanY=rand()%20+1;

}while(gsDomain[beanX][beanY]!='');

gsDomain[beanX][beanY]='*';

display(gsDomain,level,moveSpeed);//屏幕上显示

}

else

{

//不吃豆豆

gsDomain[snake[0][tail]][snake[1][tail]]='';//蛇尾前移一格

tail=(tail+1)%100;

gsDomain[snake[0][head]][snake[1][head]]='*';

head=(head+1)%100;

snake[0][head]=x;

snake[1][head]=y;

gsDomain[x][y]='#';//蛇头前移一格

display(gsDomain,level,moveSpeed);//屏幕上显示

}

}

return0;

}

OK,本文到此结束,希望对大家有所帮助。

css动画属性,CSS动画程序设计教程(程序设计基础是学什么)