贪吃蛇小游戏程序(c语言)(代码片段)

跋扈洋 跋扈洋     2022-12-06     269

关键词:

这次来分享一个我写的贪吃蛇小游戏程序(C语言)

最近暑假无事开始用C语言写一些小游戏小游戏程序,这个贪吃蛇当然是经典中的经典,所以先开始写。

文件引用

#include<redio.h>//输入输出
#include<time.h>//用于获取随机数
#include<windows.h>//控制DOS界面
#include<stdlib.h>//定义了一些宏和通用工具函数
#include<conio.h>  //     接收键盘输入输出

函数声明

    /**************************函数声明***************************/
    
  void gotoxy(int x,int y);			//设置光标位置
int  color(int c);					//更改文字颜色
void printsnake();					//字符画--蛇
void welcome();						//开始界面
void createMap();					//绘制地图
void scoreandtips();				//游戏界面右侧的积分和小提示
void initsnake();					//初始化蛇身,花蛇身
void createfood();					//创建并随机出现食物
int  biteself();					//判断是否咬到自己
void cantcrosswall();				//设置蛇撞到墙的情况
void speedup();						//加速
void speeddown();					//减速
void snakemove();					//控制蛇前进方向
void keyjianpan();					//控制键盘按键
void Lostdraw();						//游戏结束界面
void endgame();					    //游戏结束
void choose();						//游戏失败之后的选择
void File_out();					//在文件中读取最高分
void File_in();						//储存最高分文件
void explation();					//游戏说明

游戏欢迎界面

/********************游戏欢迎界面***********************/
int color(int c)      //颜色函数

	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);//更改文字颜色
	return 0;


void gotoxy(int x,int y)    //设置光标位置

	COORD c;
	c.X=x;
	c.Y=y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);

void printsnake()

	int i,j=10;
    gotoxy(37,21);
	color(14);
	printf("	张	洋	贪	吃	蛇\\n						欢	迎	你!");
	gotoxy(19-1,9);
	color(12);
	printf("张洋");
	gotoxy(23-1,9);
	color(12);
	printf("张洋");	
	gotoxy(27-1,9);
	color(12);
	printf("张洋");	
	gotoxy(27-1,11);
	color(12);
	printf("张洋");
	gotoxy(19-1,13);
	color(12);
	printf("张洋");
	gotoxy(23-1,13);
	color(12);
	printf("张洋");	
	gotoxy(27-1,13);
	color(12);
	printf("张洋");	
	for(i=20;i<28;i++)
	
	gotoxy(i+10,j);
	color(j-10);
	printf("张洋");
    j++;	
	
	for(i=30;i<38;i++)
	
	gotoxy(i+10,j);
	color(j-10);
	printf("张洋");
    j--;
	
	for(i=40;i<48;i++)
	
	gotoxy(i+10,j);
	color(j-10);
	printf("张洋");
    j++;	
	
	for(i=50;i<58;i++)
	
	gotoxy(i+10,j);
	color(j-10);
	printf("张洋");
    j--;
	
	for(i=60;i<68;i++)
	
	gotoxy(i+10,j);
	color(j-10);
	printf("张洋");
    j++;	
	
	for(i=70;i<77;i++)
	
	gotoxy(i+10,j);
	color(j-10);
	printf("张洋");
    j--;
	
	gotoxy(87,11);
	color(11);
	printf("张洋");
    gotoxy(91,11);
	color(11);
	printf("张洋");
	gotoxy(95,11);
	color(11);
	printf("张洋");
	gotoxy(99,11);
	color(11);
	printf("张洋");
   	

    /*************************主函数******************************************/
    int main()

	system("mode con cols=140 lines=40");//设置控制台的宽高
	printsnake();//绘制字符蛇
	return 0;

欢迎界面

/************************* 每个人可根据自己的创意,设计不同的欢迎界面。 **********************/

/************************************************ 开始界面 ********************************************/

void welcome()

	int n;
	int i,j=1;
	color(14);
	for (i=24;i<=30;i++)
	
		for (j=35;j<=82;j++)
		
			gotoxy(j,i);
			if(i==24||i==30)
			
				printf("-");
			
			else if(j==35||j==82)
			
				printf("|");
			
		
	
	color(12);
	gotoxy(45,26);
	printf("1.开始游戏");
	gotoxy(65,26);
	printf("2.游戏说明");
	gotoxy(45,28);
	printf("3.退出游戏");
	gotoxy(48,32);
	color(3);
	printf("请选择[1 2 3]:[ ]\\b\\b");
	color(14);
	scanf("%d",&n);
	switch(n)
	
	case 1 :
		system("cls");//清屏 
		break;
	case 2:

		break;
	case 3:
		exit(0);
		break;
	default:
		color(12);
		gotoxy(40,38);
		printf("请输入1-3之间的数!");
		getch();  //输入任意键
		system("cls");  //清屏
		printsnake();
		welcome();
	

int main()

	system("mode con cols=140 lines=40");//设置控制台的宽高
	printsnake();//绘制字符蛇
	welcome();
	return 0;


两个结合在一起,就构成了开始的主界面

游戏主窗体设计

/****************************游戏主窗体设计*********************************/
void createMap()           //创建地图

	int i,j;
	for (i=0;i<58;i+=2)
	
		gotoxy(i,0);
		color(5);
		printf("□");
		gotoxy(i,26);
		printf("□");
	
	for (i=1;i<26;i++)
	
		gotoxy(0,i);
		printf("□");
		gotoxy(56,i);
		printf("□");
	
	for (i=2;i<56;i+=2)
	
		for (j=1;j<26;j++)
		
			gotoxy(i,j);
			color(3);
			printf("■\\n\\n");
		
	

/*********************游戏右侧的得分和小提示******************/
void scoreandtips()

	int i;
	File_out();							 //调用File_out(),读取文件中的内容
	gotoxy(74,4);
	color(11);
	printf("▂▄▅最高纪录▄▃▂:%d",HighScore);//打印游戏最高分
	gotoxy(74,8);
	color(14);
	printf("得分: %d  ",score);
	color(13);
	gotoxy(83,11);
	printf("小 提 示");
	gotoxy(70,13);
	color(6);
	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓");
	for (i=15;i<25;i=i+2)
	
		gotoxy(70,i);
		printf("┃");
	
	for (i=15;i<25;i=i+2)
	
		gotoxy(103,i);
		printf("┃");
	
	gotoxy(70,25);
	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
	color(3);
	gotoxy(74,14);
	printf("每个事物得分:%d 分",add);
	gotoxy(74,16);
	printf("不能穿墙,不能咬到自己");
	gotoxy(74,18);
	printf("用↑↓←→分别控制蛇的移动");
	gotoxy(74,20);
	printf("F1加速,F2减速");
	gotoxy(74,22);
	printf("space:暂停游戏");
	gotoxy(74,24);
	printf("ESC:退出游戏");

/***************在文件中读取最高分*******************/
void File_out()

	FALSE *fp;
	fp=fopen("save.txt","a+");		//打开文件save.txt
	fscanf(fp,"%d",&HighScore);
	fclose(fp);

/*****************主函数****************************/
int main()

	system("mode con cols=120 lines=40");//设置控制台的宽高
	printsnake();//绘制字符蛇
	welcome();//欢迎界面
	File_out();
	return 0;


在C语言中的文件调用,保存一定要学好,才能在这里灵活运用。

绘制蛇身和蛇食物

/******************* 绘制蛇身************************/
    void initsnake()
    
    	snake *tail;
    	int i;
    	tail=(snake*)malloc(sizeof(snake));  //从蛇尾开始,头插法,以X,Y设定开始的位置
    	tail->x=24;                          //蛇的初始位置(24,5)
    	tail->y=5;
    	tail->next=NULL;
    	for (i=1;i<=4;i++)                     //初始长度为5
    	
    		head=(snake*)malloc(sizeof(snake));//初始化蛇头
    		head->next=tail;                   //蛇头的下一位为蛇尾
    		head->x=24+2*i;                    //设置蛇头位置
    		head->y=5;
    		tail=head;                         //蛇头变成蛇尾,然后重复循环
    	
    	while (tail!=NULL)                     //从头到尾,输出蛇身
    	
    		gotoxy(tail->x,tail->y);
    		color(14);
    		printf("⊕");               //输出蛇身
    		tail=tail->next;           //蛇头输出完毕,输出蛇头的下一位,一直输出到蛇尾
    	
    
 
/*************绘制食物******************************/
void createfood()

	snake *food_1;
	srand((unsigned)time(NULL));				//初始化随机数
	food_1=(snake*)malloc(sizeof(snake));       //初始化food_1
	//保证其为偶数,使得食物能与蛇头对齐,然后食物会出现在网格线上
	while ((food_1->x%2)!=0)
	
		food_1->x=rand()%52+2;           //设置食物的X坐标随机出现,食物的x坐标在2-53
	
	food_1->y=rand()%24+1;             //食物的Y坐标在1-24
	q=head;
	while (q->next==NULL)
	
		if (q->x==food_1->x&&q->y==food_1->y)  //判断蛇身是否与食物重合
		
			free(food_1);           //如果食物与蛇身重合,那么释放食物指针
			createfood ();          //重新创建食物
		
		q=q->next;
	
	gotoxy(food_1->x,food_1->y);    //设置食物位置
	food=food_1;
	color(12);
	printf("▼");             //输出食物

 


此时贪吃蛇的游戏界面就已经大致做好,剩下的是进行游戏需要的逻辑等;

游戏逻辑

 /**********************************游戏逻辑**********************************/
    
    /*********************判断是否咬到自己*****************/
    int biteself()
    
    	snake *self;								//定义self为蛇身上的一个节点
    	self=head->next;							//self是蛇头之外的蛇身上的节点
    	while(self!=NULL)
    	
    		if (self->x==head->x&&self->y==head->y)   //如果self和蛇头上的节点重合
    		
    			return 1;    						  //返回1
    		
    		self=self->next;    					 //循环蛇上的每一个节点
    	
    	return 0;
    
    /************判断蛇是否撞到墙******************/
    void cantcrosswall()
    
    	if (head->x==0||head->x==56||head->y==0||head->y==26)//如果蛇头碰到了墙壁
    	
    		endgamestatus=1;    					  //返回第一种情况
    	
    
    /*******************设置蛇加速前进**********/
    void speedup()
    
    	if (sleeptime>=50)  						 //如果时间间隔大于等于50
    	
    		sleeptime=sleeptime-10;  				 //时间间隔减10
		     add=add+2;                               //每吃一次食物的得分加2
    		if(sleeptime==320)
    		
    			add=2;                                //防止减到1之后再加回来有错
    		
    	
    
    /*******************设置蛇减速前进************/
    void speeddown()
    
    	if (sleeptime<350)              		 	//如果时间间隔小于350
    	
    		sleeptime=sleeptime+30;     		 	 //时间间隔加上30
    		add=add-2;                				 //没吃一次食物的得分减2
    		if (sleeptime==350)
    		
    			add=1;               				  //保证最低分为1
    		
    	
    
    /******************控制方向*************************/
void  snakemove()

	snake *nexthead;
	cantcrosswall();
	nexthead=(snake*)malloc(sizeof(snake));  //为下一步开辟空间
	if (status==W)
	
		nexthead->x=head->x;    //向上前进时,x坐标不变,y坐标-1
		nexthead->y=head->y-1;
		nexthead->next=head;
		q=head;                //指针q指向蛇头
		//如果下一个有食物,下一个位置的坐标和食物的坐标相同
		if (nexthead->x==food->x&&nexthead->y==food->y)
		
			while (q!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //原来食物的位置,从▼变成⊕
				q=q->next;       //指针q指向的蛇身的下一位也执行循环里的操作
			
			score=score+add;      //吃了一个食物,在总分上加上食物的分
			speedup();
			createfood();         //创建食物
		
		else
		
			while (q->next->next!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //蛇正常往前走,输出当前位置的蛇身
				q=q->next;       //继续输出整个蛇身
				
			
			//经过上面的循环,q指向蛇尾,蛇尾的下一位,就是蛇走过去的位置
			gotoxy(q->next->x,q->next->y);
			color(3);
			printf("■");
			free(q->next);     //进行输出▼之后,释放指向下一位的指针
			q->next=NULL;     //指针下一位指向空
		
	
	///
	if (status==S)                 
	
		nexthead->x=head->x;    //向上前进时,x坐标不变,y坐标+1
		nexthead->y=head->y+1;
		nexthead->next=head;
		q=head;                //指针q指向蛇头
		//如果下一个有食物,下一个位置的坐标和食物的坐标相同
		if (nexthead->x==food->x&&nexthead->y==food->y)
		
			while (q!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //原来食物的位置,从▼变成⊕
				q=q->next;       //指针q指向的蛇身的下一位也执行循环里的操作
			
			score=score+add;      //吃了一个食物,在总分上加上食物的分
			speedup();
			createfood();         //创建食物
		
		else
		
			while (q->next->next!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //蛇正常往前走,输出当前位置的蛇身
				q=q->next;       //继续输出整个蛇身
				
			
			//经过上面的循环,q指向蛇尾,蛇尾的下一位,就是蛇走过去的位置
			gotoxy(q->next->x,q->next->y);
			color(3);
			printf("■");
			free(q->next);     //进行输出▼之后,释放指向下一位的指针
			q->next=NULL;     //指针下一位指向空
		
	
	/
	if (status==A)
	
		nexthead->x=head->x-2;    //向左前进时,x坐标向左移动-2,y坐标不变
		nexthead->y=head->y;
		nexthead->next=head;
		q=head;                //指针q指向蛇头
		//如果下一个有食物,下一个位置的坐标和食物的坐标相同
		if (nexthead->x==food->x&&nexthead->y==food->y)
		
			while (q!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //原来食物的位置,从▼变成⊕
				q=q->next;       //指针q指向的蛇身的下一位也执行循环里的操作
			
			score=score+add;      //吃了一个食物,在总分上加上食物的分
			speedup();
			createfood();         //创建食物
		
		else
		
			while (q->next->next!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //蛇正常往前走,输出当前位置的蛇身
				q=q->next;       //继续输出整个蛇身
				
			
			//经过上面的循环,q指向蛇尾,蛇尾的下一位,就是蛇走过去的位置
			gotoxy(q->next->x,q->next->y);
			color(3);
			printf("■");
			free(q->next);     //进行输出▼之后,释放指向下一位的指针
			q->next=NULL;     //指针下一位指向空
		
	
	/
	if (status==D)
	
		nexthead->x=head->x+2;    //向右前进时,x坐标向左移动+2,y坐标不变
		nexthead->y=head->y;
		nexthead->next=head;
		q=head;                //指针q指向蛇头
		//如果下一个有食物,下一个位置的坐标和食物的坐标相同
		if (nexthead->x==food->x&&nexthead->y==food->y)
		
			while (q!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //原来食物的位置,从▼变成⊕
				q=q->next;       //指针q指向的蛇身的下一位也执行循环里的操作
			
			score=score+add;      //吃了一个食物,在总分上加上食物的分
			speedup();
			createfood();         //创建食物
		
		else
		
			while (q->next->next!=NULL)
			
				gotoxy(q->x,q->y);
				color(14);
				printf("⊕");    //蛇正常往前走,输出当前位置的蛇身
				q=q->next;       //继续输出整个蛇身
				
			
			//经过上面的循环,q指向蛇尾,蛇尾的下一位,就是蛇走过去的位置
			gotoxy(q->next->x,q->next->y);
			color(3);
			printf("■");
			free(q->next);     //进行输出▼之后,释放指向下一位的指针
			q->next=NULL;     //指针下一位指向空
		
	
	if (biteself()==1)			//判断是否会咬到自己
	
		endgamestatus=2;
	

/******************************* 键盘 ************************************/
void key()

	status=R;					//初始蛇向右移动 
	while (1)
	
		scoreandtips();           //游戏界面右侧的得分和小提醒
//GetAsyncKeyState函数 用来判断函数调用时指定虚拟键的状态
		if (GetAsyncKeyState(VK_UP)&&status!=S)
		
			status=W;      //如果蛇不是向下前进的时候,按向上键,执行向上前进操作
		
		else if (GetAsyncKeyState(VK_DOWN)&&status!=W)
		
			status=S;      //如果蛇不是向上前进的时候,按向下键,执行向下前进操作
		
		else if (GetAsyncKeyState(VK_LEFT)&&status!=D)
		
			status=A;      //如果蛇不是向右前进的时候,按向左键,执行向左前进操作
		
		else if (GetAsyncKeyState(VK_RIGHT)&&status!=A)
		
			status=D;      //如果蛇不是向左前进的时候,按向右键,执行向右前进操作
		
		if (GetAsyncKeyState(VK_SPACE))     //按下暂停键,执行pause暂停函数
		
			while (1)
			
	//Sleep()函数,头文件#include <unistd.h>另进程暂停,直到达到里面设定参数的时间
				Sleep(300);
				if (GetAsyncKeyState(VK_SPACE))  //按下空格键暂停
				
					break;
				
			
		
		else if (GetAsyncKeyState(VK_ESCAPE))
		
			endgamestatus=3;   //按ESC,直接到结束界面
			break;
		
		else if (GetAsyncKeyState(VK_F1))   //按F1,加速
		
			speedup();
		
		else if (GetAsyncKeyState(VK_F2))   //按F2,减速
		
			if (sleeptime<350)            //如果时间间隔小于350
			
				sleeptime=sleeptime+30;  //时间间隔加上30
				add=add-2;                //没吃一次食物的得分减2
				if (sleeptime==350)
				
					add=1;                //保证最低分为1
				
			
		
		Sleep(sleeptime);                 //不按键时,蛇保持前行
		snakemove();
	

/*****************主函数****************************/
int main()

	system("mode con cols=120 lines=40");	//设置控制台的宽高
	printsnake();							//绘制字符蛇
	welcome();								//欢迎界面
	File_out();
	key();
	return 0;

游戏失败界面

/************************失败界面*********************/
void Lostdraw()
   
	int k;
	system("cls");
	gotoxy(50,2);
	printf("∑游戏结果");
	gotoxy(17,5);
	color(11);
	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓");
	for (k=7;k<=18;k++)  //竖边框
	
		gotoxy(17,k);
		printf("┃");
		gotoxy(82,k);
		printf("┃");
	
	gotoxy(17,20);
	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");

/****************************结束游戏*****************/
void endgame()

	system("cls");
	if (endgamestatus==1)   //如果蛇撞到了墙
	
		Lostdraw();
		gotoxy(35,9);
		color(12);
		printf("对不起,你头铁也撞不烂墙。游戏结束");
	
	else if (endgamestatus==2)  //如果蛇咬到了自己
	
		Lostdraw();
		gotoxy(35,9);
		color(12);
		printf("对不起,你咬到了自己,游戏结束!");
	
	else if (endgamestatus==3)  //如果按ESC键退出
	
		Lostdraw();
		gotoxy(40,9);
		color(12);
		printf("你已经结束了游戏!");
	
	gotoxy(43,12);
	color(13);
	printf("你的得分是 %d",score);
	if (score>=HighScore)
	
		color(10);
		gotoxy(40,16);
		printf("牛逼,创纪录了!!");
		File_in();     //把最高分写进文件
	
	else                  //如果低于最高分
	
		color(10);
		gotoxy(35,16);
		printf("继续努力啊,你离最高分还差:%d",HighScore-score);
	
	choose();    //边框下面的分支选项

/********************边框下面的分支选项************/
void choose()

	int m;
	gotoxy(25,23);
	color(12);
	printf("我要重新玩一把-------- 1");
	gotoxy(52,23);
	printf("不玩了,退出-------- 2");
	gotoxy(46,25);
	color(11);
	printf("选择: ");
	scanf("%d",&m);
	switch(m)
	
	case 1:
		system("cls");   //清屏
		score=0;        //分数归零
		sleeptime=200;   //设定初始速度
		add=10;         //使add设为初值,吃一个食物得十分,然后累加
		printsnake();   //返回欢迎界面
		welcome();
		break;
	case 2:
		exit(0);             //退出游戏
		break;
	default:           //输入1或2以外的数字
		gotoxy(35,27);
		color(12);
		printf("不要瞎输入,请重新输入");
		system("pause>nul");     //按任意键
		endgame();
		choose();  //边框下面的分支语句
		break;
	


/*****************主函数****************************/
int main()

	system("mode con cols=120 lines=40");	//设置控制台的宽高
	printsnake();							//绘制字符蛇
	welcome();								//欢迎界面
	File_out();                             //读取文件信息
	keyjianpan();                           //控制键盘按键
	endgame();                              //游戏结束
	return 0;	

注:此时还要记住在前面蛇不同的失败函数里加上endgame();

游戏说明

/*********************游戏说明************************/
void explation()

	int i,j=1;
	system("cls");
	color(13);
	gotoxy(52,3);
	printf("游戏说明");
	color(2);
	for (i=6;i<=22;i++)     //输出上下边框
	
		for (j=20;j<=75;j++)
		
			gotoxy(j+10,i);
			if (i==6||i==22)
			
				printf("||");
			
		
	
	color(3);
	gotoxy(40,8);
	printf("一:不能穿墙,不能咬到自己");
	color(10);
	gotoxy(40,11);
	printf("二:用↑↓←→分别控制蛇的移动");
	color(14);
	gotoxy(40,14);
	printf("三:F1加速,F2减速");
	color(11);
	gotoxy(40,17);
	printf("四:安空格键暂停,再按空格键继续");
	color(4);
	gotoxy(40,20);
	printf("五:ESC:退出游戏,space:暂停游戏");
	getch();//按任意键返回主界面
	system("cls");
	printsnake();
	welcome();

此时一个好玩的贪吃蛇游戏就做好了,大家可以自己试一试,有利于理解C语言的相关运用

可以关注一下再走。。。。。。

不想要自己费时学习的可以直接找我要完整代码

后续

源码地址
如果想了解更多物联网、智能家居项目知识,可以关注我的程序设计专栏
订阅专栏后,可以在微信公众号上私聊我,直接发给你源码。
或者关注公众号。

编写不易,感谢支持。

贪吃蛇(c语言实现)(代码片段)

...中没有打印相关的按键说明,这里先逐一列出,贪吃蛇游戏按键说明:按方向键上下左右,可以实现蛇移动方向的改变。短时间长按 查看详情

c语言实现经典贪吃蛇游戏(代码片段)

原文链接:C语言贪吃蛇游戏文章目录一、说明二、效果2.1欢迎界面2.2游戏规则2.3得分排行2.4退出游戏2.5游戏界面2.6游戏结束三、源码3.1cmd.h3.2cmd.c3.3io.h3.4io.c3.5model.h3.6service.h3.7service.c3.8ui.h3.9ui.c3.10utils.h3.11utils.c3.12main.c一、说... 查看详情

贪吃蛇二代——穿墙版(c语言实现)(代码片段)

文章目录游戏说明游戏效果展示游戏代码游戏代码详解游戏框架构建初始化界面隐藏光标光标跳转颜色设置初始化蛇随机生成食物打印蛇与覆盖蛇移动蛇游戏主体逻辑函数执行按键判断得分与结束从文件读取最高分更新最高分到... 查看详情

linux环境下,基于ncurse图形库贪吃蛇小游戏(上)(代码片段)

Linux环境下基于Ncurse图形库的贪吃蛇小游戏这个小游戏的意义?这个小游戏对C语言基础、数据结构链表基础、C变量、流程控制、函数、指针、结构体等有一个很好的知识汇总学习。也是对Linux基础操作的一个简单学习。linux环境下... 查看详情

linux环境下,基于ncurse图形库贪吃蛇小游戏(上)(代码片段)

Linux环境下基于Ncurse图形库的贪吃蛇小游戏这个小游戏的意义?这个小游戏对C语言基础、数据结构链表基础、C变量、流程控制、函数、指针、结构体等有一个很好的知识汇总学习。也是对Linux基础操作的一个简单学习。linux环境下... 查看详情

c语言之贪吃蛇(ncurses)(代码片段)

...于边想边写的那种,很混乱。推荐材料:NCURSESProgrammingHOWTO贪吃蛇应该是我们这代人都玩过的游戏。而如果我们要写一个贪吃蛇最需要考虑的就是贪吃蛇是如何移动的。其实贪吃蛇的移动就是尾部的减少和头部的增加。这篇文章:... 查看详情

c语言项目:贪吃蛇游戏(双人模式),详细思路+源码分享(代码片段)

每天一个C语言小项目,提升你的编程能力!贪吃蛇游戏大家都玩过,它的玩法也很简单:用游戏按键上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长&#x... 查看详情

c语言贪吃蛇(代码片段)

基于C语言编写的贪吃蛇开发环境:VS2019这是一个基于C语言链表开发的贪吃蛇游戏其实贪吃蛇游戏要解决的主要问题就是1、这个游戏的基本组成元素和架构2、如何初始化贪吃蛇并正常行走3、如何判断事件发生代码中运用到... 查看详情

c语言零基础项目:贪吃蛇!详细思路+源码分享(代码片段)

每天一个C语言小项目,提升你的编程能力!贪吃蛇游戏大家应该都不陌生了,要说没玩过的话,可能你是15后吧?贪吃蛇游戏最初为单机模式,后续又陆续推出团战模式、赏金模式、挑战模式等多种玩法。... 查看详情

c++入门——实现贪吃蛇游戏(代码片段)

参考《C和C++游戏趣味编程》贪吃蛇游戏键盘控制小蛇上、下、左、右移动,迟到食物后长度加1;蛇头碰到自身或窗口边缘,游戏失败程序框架#include<graphics.h>#include<conio.h>#include<stdio.h>//全局变量定... 查看详情

c语言手打贪吃蛇1.0版(含界面可开关音乐三种模式尽情玩耍)(代码片段)

...差不多学到尾端了,有了语法基础的我就想着做一个小游戏来将自己所学的展现出来。借鉴了一些博主的博客,最终我选择用C语言手打贪吃蛇。我的原始版本的贪吃蛇拥有界面化、可开关音乐、还有三种关卡模式。接下... 查看详情

javascript实现贪吃蛇小游戏(代码片段)

JavaScript实现贪吃蛇小游戏功能概述本程序实现了如下功能:贪吃蛇的基本功能统计得分开始与暂停选择难度等级设置快捷键5.1通过ijkl,wsad也能实现方向的切换5.2通过“P”表示暂停,“C”表示开始或继续,"R&#... 查看详情

c语言高仿贪吃蛇大作战,800行代码就能实现,结尾有源码~(代码片段)

这是一个贪吃蛇大作战类游戏,修改特性为AI不互杀;该程序有四个类:蛇基类SnakeBase,玩家类Player,AI类,Game类;SnakeBase和AI均继承自SnakeBase,SnakeBase提供基础接口,Game提供数据初始化以及游... 查看详情

c语言版贪吃蛇小游戏

编译环境:windows764位编译工具:codeblocks13.12备注:未使用graphics.h声明:个人原创,未经允许,禁止转载!!! 数据结构:双向链表1.程序未使用graphis.h中的函数,所以采用先清屏,再打印的方式显示图形,大约每秒刷新一... 查看详情

rust语言写的贪吃蛇游戏(代码片段)

首先新建工程,然后用vscode打开,命令如下:cargonewsnake--bin文件结构如下:Cargo.Toml文件内容如下:[package]name="snake"version="0.1.0"edition="2021"#Seemorekeysa 查看详情

c语言:如何在cmd命令窗口上玩贪吃蛇游戏

...过去很多没有学习到C语言知识,于是就做了这个游戏–贪吃蛇.运行结果如下:C语言:如何在cmd命令窗口上玩贪吃蛇游戏文章目录1.实现原理2.实现过程3.参考代码1.实现原理其实,就是利用了人的视觉错觉来实现动态效果的,如... 查看详情

c++实现贪吃蛇小游戏(代码片段)

...xff1a;Codeblocks17.12我的软件课程设计题目选取的就是贪吃蛇小游戏,我通过在网上找一些资料和博客学习后,进行了设计。下面给出注释版代码:#include<bits/stdc++.h>#include<windows.h>#include<ctime>#include<c 查看详情

用python写了一个贪吃蛇大冒险小游戏(代码片段)

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇来源丨blog.csdn.net/weixin_45087775一、游戏简介1.1游戏操作及游戏规则(1)游戏开始后,通过键盘上下左右键控制贪吃蛇移动寻找食物;... 查看详情