c网站源码-C语言项目实战:《自动贪吃蛇》零基础项目!源码+注释

本文主要为大家详细介绍C语言实现——“进化蛇项目”c网站源码,即基于我们上次发表的文章的项目分享,来实现Snake的手动动作,你可以使用键盘,也可以不用键盘无需按下按钮,让蛇自己寻找食物! 还是很好玩的c网站源码,一起来看看吧!

本文的示例代码非常详细,具有一定的参考价值。 有兴趣的朋友可以参考一下!

项目实施要求:

1.学过C语言

2.熟悉C语言领域

3.熟悉结构

4.按钮交互程序: 1.按钮交互 2.鼠标交互

5. 创建图形窗口

6. 基础绘图

但是我们项目的源码会有注释。 以后学习的时候不要忽视评论。 注释可以帮助你更好地理解代码,特别是对于C语言初学者。

本项目编译环境:VS2019/VS2013;

插件:图形库插件easyX;

效果图演示:

源代码示例:

#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
#include 
#include 		//报错:安装图形库插件
#include 
#define MAX 100				//蛇最大节数
/*
	1.学过C语言
	2.熟悉C语言数组
	3.熟悉结构体
	4.按键交互  程序:1.按键交互   2.鼠标交互
	5.创建图形窗口
	6.基本绘图
*/
//1.把程序所要用的数据抽象出来
typedef struct pointXY
{
	int x;
	int y;
}MYPOINT;
HWND hwnd = NULL;
//蛇
struct mySnake
{
	int num;
	MYPOINT xy[MAX];
	char postion;		//表示方向,标记
}snake;
//食物
struct myFood
{
	MYPOINT foodxy;
	int flag;
	int eatGrade;
}food;
//把方向枚举出来
enum movPostion{right=1,left=2,down=3,up=4};
//整个项目划分
//1.初始化蛇
void initSnake()
{
	snake.xy[2].x = 0;
	snake.xy[2].y = 0;
	snake.xy[1].x = 10;
	snake.xy[1].y = 0;
	snake.xy[0].x = 20;
	snake.xy[0].y = 0;
	snake.num = 3;
	snake.postion = right;
	food.flag = 0;
}
//2.绘制蛇
void drawSnake()
{
	for (int i = 0; i  0; i--)
	{
		snake.xy[i].x = snake.xy[i - 1].x;
		snake.xy[i].y = snake.xy[i - 1].y;
	}
	//蛇头怎么走,要根据方向标志去做移动
	switch (snake.postion)
	{
	case right:
		snake.xy[0].x += 10;
		break;
	case left:
		snake.xy[0].x -= 10;
		break;
	case down:
		snake.xy[0].y += 10;
		break;
	case up:
		snake.xy[0].y -= 10;
		break;
	}
}
//4.按键用户:人玩蛇
void keyDown()
{
	static char userkey = '';    //VC  getch不需要加下划线
	//userkey=_getch();		//不可见输入
	//自己生成按键
	switch (snake.postion)
	{
	case right:
	case left:
		if (food.foodxy.y >= snake.xy[0].y)
		{
			userkey = 80;
		}
		else  if (food.foodxy.y= snake.xy[0].x)
		{
			userkey = 77;
		}
		else  if (food.foodxy.x < snake.xy[0].x)
		{
			userkey = 75;
		}
		break;
	}
	switch (userkey)
	{
	case 'w':
	case 'W':
	case 72:	//上
		if (snake.postion != down)
		{
			//蛇往上走,你要排除掉蛇本来是朝下
			snake.postion = up;
		}
		break;
	case 's':
	case 'S':
	case 80:	//下
		if (snake.postion != up)
		{
			snake.postion = down;
		}
		break;
	case 'a':
	case 'A':
	case 75:	//左
		if (snake.postion != right)
		{
			snake.postion = left;
		}
		break;
	case 'd':
	case 'D':
	case 77:	//右
		if (snake.postion != left)
		{
			snake.postion = right;
		}
	}
}
//初始化食物
void  initFood()
{
	//0,63    630   640  
	//0,47    470   480
	food.foodxy.x = rand() % 64 * 10;  //只能是10的整数倍,蛇头才能对齐食物
	food.foodxy.y = rand() % 48 * 10;
	food.flag = 1;
	//食物不能出现在蛇身上
	for (int i = 0; i  640 || snake.xy[0].x480 || snake.xy[0].y < 0)
	{
		MessageBox(hwnd, "游戏结束!", "撞墙死亡!", 0);
		return 1;
	}
	//撞自己
	for (int i = 1; i < snake.num; i++)
	{
		if (snake.xy[0].x == snake.xy[i].x&&snake.xy[0].y == snake.xy[i].y)
		{
			MessageBox(hwnd, "游戏结束!", "撞自己!", 0);
			return 1;
		}
	}
	return 0;
}
int main()
{
	srand((unsigned int)time(NULL));
	hwnd=initgraph(640, 480);
	setbkcolor(WHITE);
	cleardevice();
	initSnake();
	while (1)
	{
		cleardevice();		//刷掉路径
		if (food.flag == 0)
		{
			initFood();
		}
		drawFood();
		drawSnake();
		if (snakeDie())
		{
			break;
		}
		eatFood();
		moveSnake();
		Sleep(100);			//控制速度
		//while (_kbhit())	//kbhit() 存在按键操作,返回非零
		//{
		//	keyDown();
		//}
		keyDown();
	}
	closegraph();
	printf("GameOver!!!");
	system("pause");
	return 0;
}

写在最后:对于打算学习C/C++编程的人来说,如果你想更好地提高自己的编程核心能力(内功),不妨现在就开始吧!

大家好,我是评测君,欢迎来到网络评测。

本期为大家带来一套laravel开发的OneDrive多云盘挂载程序源码。 有兴趣的同学可以自行下载学习。

下载技术框架文本搭建教程源码php个人网站源码,在宝塔中添加站点,选择PHP版本7.2。 新建一个数据库,直接将根目录下的默认数据库文件install.sql导出到数据库中。 压缩源代码目录,上传到宝塔网站根目录,解压,关闭防跨站,运行目录指向public。 伪静态设置如下:

 location / {
    try_files $uri $uri/ /index.php?$query_string;
}

修改根目录下的数据库连接.env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1 数据库地址
DB_PORT=3306 数据库端口
DB_DATABASE=cuteonep 数据库名
DB_USERNAME=root 数据库账号
DB_PASSWORD=root 数据库密码

php命令版本要与站点的命令版本对应,点击根目录下的终端,依次运行以下命令:

php artisan key:generate
php artisan cache:clear

现在直接访问域名会报错php个人网站源码,所以必须先登录后台地址:域名/admin/login,默认账户密码是admin,然后连接到自己的云盘,添加类别和菜单,然后就可以访问后台了。 由于使用本地域名进行测试,没有ssl证书,所以只能给大家说一下大概的流程。系统介绍

支持多盘加载、在线查看、在线上传、下载、多云盘同步、主从同步、在线共享、文件夹权限管理、会员功能、层次结构、支付查看、密码查看、支付模块、主题切换等。

关于CuteOneP:CuteOneP是CuteOne的PHP版本,遵循一贯的UI风格,保持代码精简和可扩展。

系统截图

视频教程

PHP宝塔搭建实战laravel源码OneDrive多云盘挂载程序

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站源码 c网站源码-C语言项目实战:《自动贪吃蛇》零基础项目!源码+注释 https://www.wkzy.net/game/127139.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务