c语言贪吃蛇,用C语言编写的小游戏代码是什么

伏羲号

c语言贪吃蛇,用C语言编写的小游戏代码是什么?

最基础的贪吃蛇的代码

c语言贪吃蛇,用C语言编写的小游戏代码是什么

#include<stdio.h>

#include<windows.h>//基本型态定义。支援型态定义函数。使用者界面函数图形装置界面函数。

#include<conio.h>

//用户通过按键盘产生的对应操作(控制台)

#include<stdlib.h>

#include<time.h>//日期和时间头文件

#defineLEN30

#defineWID25

intSnake[LEN][WID]={0};

//数组的元素代表蛇的各个部位

charSna_Hea_Dir='a';//记录蛇头的移动方向

intSna_Hea_X,Sna_Hea_Y;//记录蛇头的位置

intSnake_Len=3;//记录蛇的长度

clock_tNow_Time;//记录当前时间,以便自动移动

intWait_Time;//记录自动移动的时间间隔

intEat_Apple=1;//吃到苹果表示为1

intLevel;

intAll_Score=-1;

intApple_Num=-1;

HANDLEhConsole=GetStdHandle(STD_OUTPUT_HANDLE);

//获取标准输出的句柄<windows.h>

//句柄:标志应用程序中的不同对象和同类对象中的不同的实例方便操控,

voidgotoxy(intx,inty)//设置光标位置

{

COORDpos={x,y};

//定义一个字符在控制台屏幕上的坐标POS

SetConsoleCursorPosition(hConsole,pos);

//定位光标位置的函数<windows.h>

}

voidHide_Cursor()//隐藏光标固定函数

{

CONSOLE_CURSOR_INFOcursor_info={1,0};

SetConsoleCursorInfo(hConsole,&cursor_info);

}

voidSetColor(intcolor)//设置颜色

{

SetConsoleTextAttribute(hConsole,color);

//是API设置字体颜色和背景色的函数格式:SetConsoleTextAttribute(句柄,颜色);

}

voidPrint_Snake()//打印蛇头和蛇的脖子和蛇尾

{

intiy,ix,color;

for(iy=0;iy<WID;++iy)

for(ix=0;ix<LEN;++ix)

{

if(Snake[ix][iy]==1)//蛇头

{

SetColor(0xf);//oxf代表分配的内存地址setcolor:34行自定义设置颜色的函数

gotoxy(ix*2,iy);

printf("※");

}

if(Snake[ix][iy]==2)//蛇的脖子

{

color=rand()%15+1;

//rand()函数是产生随机数的一个随机函数。C语言里还有srand()函数等。

//头文件:stdlib.h

if(color==14)

color-=rand()%13+1;

//变色

SetColor(color);

gotoxy(ix*2,iy);

printf("■");

}

if(Snake[ix][iy]==Snake_Len)

{

gotoxy(ix*2,iy);

SetColor(0xe);

printf("≈");

}

}

}

voidClear_Snake()//擦除贪吃蛇

{

intiy,ix;

for(iy=0;iy<WID;++iy)

for(ix=0;ix<LEN;++ix)

{

gotoxy(ix*2,iy);

if(Snake[ix][iy]==Snake_Len)

printf("");

}

}

voidRand_Apple()//随机产生苹果

{

intix,iy;

do

{

ix=rand()%LEN;

iy=rand()%WID;

}while(Snake[ix][iy]);

Snake[ix][iy]=-1;

gotoxy(ix*2,iy);

printf("⊙");

Eat_Apple=0;

}

voidGame_Over()//蛇死掉了

{

gotoxy(30,10);

printf("GameOver");

Sleep(3000);

system("pause>nul");

exit(0);

}

voidMove_Snake()//让蛇动起来

{

intix,iy;

for(ix=0;ix<LEN;++ix)//先标记蛇头

for(iy=0;iy<WID;++iy)

if(Snake[ix][iy]==1)

{

switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头

{

case'w':

if(iy==0)

Game_Over();

else

Sna_Hea_Y=iy-1;

Sna_Hea_X=ix;

break;

case's':

if(iy==(WID-1))

Game_Over();

else

Sna_Hea_Y=iy+1;

Sna_Hea_X=ix;

break;

case'a':

if(ix==0)

Game_Over();

else

Sna_Hea_X=ix-1;

Sna_Hea_Y=iy;

break;

case'd':

if(ix==(LEN-1))

Game_Over();

else

Sna_Hea_X=ix+1;

Sna_Hea_Y=iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1&&Snake[Sna_Hea_X][Sna_Hea_Y]!=0&&Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y]<0)//吃到苹果

{

++Snake_Len;

Eat_Apple=1;

}

for(ix=0;ix<LEN;++ix)//处理蛇尾

for(iy=0;iy<WID;++iy)

{

if(Snake[ix][iy]>0)

{

if(Snake[ix][iy]!=Snake_Len)

Snake[ix][iy]+=1;

else

Snake[ix][iy]=0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y]=1;//处理蛇头

}

voidGet_Input()//控制蛇的移动方向

{

if(kbhit())

{

switch(getch())

{

case87:

Sna_Hea_Dir='w';

break;

case83:

Sna_Hea_Dir='s';

break;

case65:

Sna_Hea_Dir='a';

break;

case68:

Sna_Hea_Dir='d';

break;

default:

break;

}

}

if(clock()-Now_Time>=Wait_Time)//蛇到时间自动行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time=clock();

}

}

voidInit()//初始化

{

system("title贪吃毛毛蛇");

system("modecon:cols=80lines=25");

Hide_Cursor();

gotoxy(61,4);

printf("YouScore:");

gotoxy(61,6);

printf("YouLevel:");

gotoxy(61,8);

printf("TheLenght:");

gotoxy(61,10);

printf("TheSpeed:");

gotoxy(61,12);

printf("AppleNum:");

inti;

for(i=0;i<Snake_Len;++i)//生成蛇

Snake[10+i][15]=i+1;

intiy,ix;//打印蛇

for(iy=0;iy<WID;++iy)

for(ix=0;ix<LEN;++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2,iy);

printf("■");

}

}

}

voidPri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score+=Level;

printf("%3d",All_Score);

gotoxy(73,6);

printf("%3d",Level);

gotoxy(73,8);

printf("%3d",Snake_Len);

gotoxy(73,10);

printf("0.%3ds",Wait_Time/10);

gotoxy(73,12);

printf("%d",Apple_Num);

}

voidLev_Sys()//等级系统

{

if(((Apple_Num-1)/10)==Level)

{

++Level;

if(Wait_Time>50)

Wait_Time-=50;

else

if(Wait_Time>10)

Wait_Time-=10;

else

Wait_Time-=1;

}

}

intmain(void)

{

Init();

srand((unsigned)time(NULL));//设置随机数的种子

Now_Time=clock();

intspeed1=1000,speed2,a;

printf("\n");

printf("请输入你想要的速度\n");

scanf("%d",&speed2);

Level=1;

Wait_Time=speed1-speed2;

printf("请输入你想要的苹果数\n");

scanf("%d",&a);

while(a--)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return0;

}

贪吃蛇怎么用C语言编写?

C语言贪吃蛇源代码必须经过相应的C/C++编译器编译成exe文件后才能运行。 由于我们通常使用的操作系统是Windows系统,而在该系统下最长用的C/C++编译器是VC++编译器,目前在大专院校常用的版本还是VC++6.0 下面就以VC++6.0来说明编译过程:

1.在VC++6.0中通过“File”菜单下的 “Open”子菜单打开贪吃蛇代码

2.在VC++6.0中通过“Build”菜单下的 “Compile xxxx.xx”子菜单编译贪吃蛇代码

3.在VC++6.0中通过“Build”菜单下的 “Execute xxxx.exe”子菜单运行贪吃蛇程序 附:在VC++6环境下可运行的C/C++贪吃蛇源代码(无版权,自己编写,欢迎任意修改拷贝)

贪吃蛇c语言程序功能描述?

贪吃蛇C语言程序是经典的贪吃蛇游戏的实现,玩家通过键盘控制贪吃蛇的移动,吃到食物后贪吃蛇身体变长,避免撞到墙壁和自身。

游戏包括分数统计和游戏结束判定功能,当贪吃蛇长度达到一定程度或者撞到障碍物时游戏结束,显示最终分数并提供重新开始选项。

程序通过绘制字符和使用循环和条件语句实现游戏逻辑,提供了经典游戏的乐趣和挑战。

贪吃蛇c语言代码最短?

voidmenu();//菜单

voidselect(intchoice);//中转

voidstart(intchanllage);//启动游戏

intchange(intchanllage);//选择游戏难度

voidremember();//游戏记录

voidrecordnow();//记录结果

能在100行之内实现贪吃蛇吗?

回到2010年前后,百度贴吧尚未开始全面商业运作。那时候的c语言吧,可谓是人才济济,不要说贪吃蛇,就连俄罗斯方块也能被炮姐搞进100行以内。当然,炮姐代码OI风比较重,即便贴出来也未必几人能看明白[捂脸]。

鄙人曾有幸经历那个年代,并也曾任过一届大吧主,任期直到百度卖吧事件[我想静静]。看到这题主这个问题,着实让我勾起了对那个年代的深切怀念。于是今晚久违的用纯C写了一段98行可读版控制台贪吃蛇。虽然用了Windows Console API,不过编译却是mingw64+gcc9.2,不保证msvc能用[灵光一闪]。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,91人围观)

还没有评论,来说两句吧...