贪吃蛇

2023-05-16

C尝试写的贪吃蛇项目(数组实现)

以后会更新用链表实现贪吃蛇

#define  _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <string.h>
using namespace std;


//PlaySound()函数所需的头文件
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")


#define DEF_SNAKE_LENGTH 20
char c_arrBackground[20][48] =      //一个■占据两个字符的位置。
{

"■■■■■■■■■■■■■■■■■■■■■■■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■                                          ■\n",
"■■■■■■■■■■■■■■■■■■■■■■■\n"

};

//蛇数组
int g_arrSnake[DEF_SNAKE_LENGTH][3] = { 0 };

//方向
enum {to_east=2,to_west=-2,to_north=-1,to_south=1};
//蛇的方向
int g_Snakedir = to_west;
//食物产生的位置
int food_Line;
int food_Lie;
//蛇长度
int g_lengthSnake = 2;
//食物是否存在
bool isfood = true;
int g_score = 0;





//显示首页☆
void firstPage();
//播放音乐
void MyplaySound();
//检测空格
void TestPace();
//游戏画面  边界
void ShowWallGame();
void ShowWallGame2();
//为蛇产生一个随机的位置
void SetSnakepose();
//画蛇
void DrawSnake();
//蛇动
void SnakeMove();
//销毁蛇
void desary();
//改变蛇反向
void Changedir();
void Changedir1();
//s蛇死亡判断
bool isSnakedie();
//产生食物
void food();
//蛇长大
void groupSnake();
//分数
void grade();


int main()
{

	//显示首页
	firstPage();
	//播放音乐  需要加入<mmsystem.h>  #pragma comment(lib,"winmm.lib"); #<windows.h>
	MyplaySound();
	//检测空格
	TestPace();
	//停止播放音乐
	//PlaySound(NULL, 0, 0);
	//游戏界面 清屏
	system("cls"); 
	//游戏界面 边框
	//ShowWallGame();
    ShowWallGame2();
	//随机显示蛇
	SetSnakepose();
	//产生新食物


	
	while(1)
	{
		system("cls");
		
		//改变方向
		Changedir();
		//产生食物
		food();
		//蛇长大
		groupSnake();
		

		//判断蛇是否死亡
		if (false == isSnakedie())
		{
			
			printf("蛇死亡\n");
			break;
		}
		//蛇动
		SnakeMove();
		
		//显示背景
        ShowWallGame2();
		//分数
		grade();
		Sleep(500);
	}
	
	
	
	
	system("pause");
	return 0;

}

//显示首页
void firstPage()
{
	printf("\n\n\n\n\n");
	printf("              《《欢迎进入贪吃蛇的界面》》\n");
	printf("                      按空格开始游戏\n");
	printf("                    按w s a d控制蛇\n");

}
//播放音乐
void MyplaySound()
{
	//PlaySound("E:/aa.wav", NULL, SND_FILENAME | SND_ASYNC);
}

//检测空格
void TestPace()
{
	char chinput;
	while (1)//按空格键停止播放音乐
	{
		chinput = _getch(); //_getch和getcar();有区别  不会显示在控制台上 需要加入头文件<conio.h>
		if (' ' == chinput)
		{
			break;
		}
	}
}

//画背景
void ShowWallGame()
{
	int i = 0, j = 0;
	int g_arrBackground[20][23] =      //一个■占据两个字符的位置。
	{
	{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
	{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
	};

	while (1)
	{
		system("cls");
		for (i = 0; i < 20; i++)
		{
			for (j = 0; j < 23; j++)
			{
				if (1 == g_arrBackground[i][j])
				{
					printf("■");
				}
				else
					printf("  ");
			}
			printf("\n");
		}
		Sleep(1000);  //需要一个头文件<windows.h>
	}


}

//画背景 重点
void ShowWallGame2()
{
	    int i;
		for (i = 0; i < 20; i++)
		{

			printf(c_arrBackground[i]);
		}
}

//随机产生蛇的位置
void SetSnakepose()
{
	int nx=-1;
	int ny=-1;

	
	//产生随机数
	srand((unsigned int)time(NULL)); //time  需要头文件<time.h>
	nx = rand() % 18 + 1;  //1-19范围
	ny = rand() % 17 + 1;  //1-18范围


	//初始化蛇的节点
	g_arrSnake[0][0]=ny;   //行
	g_arrSnake[0][1]=nx*2; //列
	g_arrSnake[0][2]= to_west;

	g_arrSnake[1][0] = ny;   //行
	g_arrSnake[1][1] = nx * 2+2; //列
	g_arrSnake[1][2] = to_west;

	g_arrSnake[2][0] = ny;   //行
	g_arrSnake[2][1] = nx * 2+4; //列
	g_arrSnake[2][2] = to_west;

	//画到背景上
	DrawSnake();

}



void DrawSnake()
{
	int i;
	
	for (i = 0; g_arrSnake[i][0] != 0; i++)
	{
		strncpy(&c_arrBackground[g_arrSnake[i][0]][g_arrSnake[i][1]], "■", 2);
	}
}


//蛇动
void SnakeMove()
{
	int i = DEF_SNAKE_LENGTH - 1;

	//销毁蛇
	desary();

	for (i; i >= 1; i--)
	{
		if (0 == g_arrSnake[i][0])
		{
			continue;
		}
		g_arrSnake[i][0] = g_arrSnake[i - 1][0];
		g_arrSnake[i][1] = g_arrSnake[i - 1][1];
		g_arrSnake[i][2] = g_arrSnake[i - 1][2];
	}
	//处理蛇头
	g_arrSnake[0][2] = g_Snakedir;

	if (to_west == g_arrSnake[0][2] || to_east == g_arrSnake[0][2])
	{
		g_arrSnake[0][1] += g_arrSnake[0][2];
	}
	else
	{
		g_arrSnake[0][0] += g_arrSnake[0][2];
	}


	//画蛇
	DrawSnake();
}

//销毁蛇
void desary()
{
	int i;
	for ( i = 0; g_arrSnake[i][0] != 0; i++)
	{
		strncpy(&c_arrBackground[g_arrSnake[i][0]][g_arrSnake[i][1]], "  ", 2);
	}
}


void Changedir()
{
	if (GetAsyncKeyState('W'))
	{
		if (g_arrSnake[0][2] != to_south)
		{
            g_Snakedir = to_north;
		}	
	}
	else if (GetAsyncKeyState('S'))
	{
		
		if (g_arrSnake[0][2] != to_north)
		{
			g_Snakedir = to_south;
		}
	}
	else if (GetAsyncKeyState('A'))
	{
		if (g_arrSnake[0][2] != to_east)
		{
			g_Snakedir = to_west;
		}
		
	}
	else if (GetAsyncKeyState('D'))
	{
		if (g_arrSnake[0][2] != to_west)
		{
			g_Snakedir = to_east;
		}
		
	}
}

void Changedir1()
{
	_getch();
}

//蛇死亡判断
bool isSnakedie()
{
	if (to_west == g_arrSnake[0][2] || to_east == g_arrSnake[0][2])
	{
		//比较蛇头的下一个
		if (0==strncmp(&c_arrBackground[g_arrSnake[0][0]][g_arrSnake[0][1] + g_arrSnake[0][2]],"■",2))
		{
			return false;
		}		
	}
	else if (0 == strncmp(&c_arrBackground[g_arrSnake[0][0] + g_arrSnake[0][2]][g_arrSnake[0][1] ], "■", 2))
		{
			return false;
		}		

	return true;

}


//产生食物
void food()
{
	srand((unsigned int)time(NULL));

	int i = 0;
	if (isfood == false)
	{
		return;
	}
	

	while (1)
	{
	bool flog = true;
	food_Line = rand() % 17 + 1;
	food_Lie = rand() % 20 + 1;

	for (i = 0; g_arrSnake[i][0] != 0; i++)
	{
		if (food_Line == g_arrSnake[i][0] && food_Lie == g_arrSnake[i][1])
		{
			flog = false;
			break;
		}
	}
	if (flog == true)
	{
		break;
	}
	}
	strncpy(&c_arrBackground[food_Line][food_Lie*2], "☆", 2);
	isfood = false;
}

//蛇长大
void groupSnake()
{
	if (food_Line == g_arrSnake[0][0] && food_Lie * 2 == g_arrSnake[0][1])
	{
		if (g_arrSnake[g_lengthSnake][2] == to_east)
		{
			g_arrSnake[g_lengthSnake + 1][0] = g_arrSnake[g_lengthSnake][0];
			g_arrSnake[g_lengthSnake + 1][1] = g_arrSnake[g_lengthSnake][1]-2;
			g_arrSnake[g_lengthSnake + 1][2] = g_arrSnake[g_lengthSnake][2];
		}
		else if (g_arrSnake[g_lengthSnake][2] == to_west)
		{
			g_arrSnake[g_lengthSnake + 1][0] = g_arrSnake[g_lengthSnake][0];
			g_arrSnake[g_lengthSnake + 1][1] = g_arrSnake[g_lengthSnake][1] + 2;
			g_arrSnake[g_lengthSnake + 1][2] = g_arrSnake[g_lengthSnake][2];
		}
		else if (g_arrSnake[g_lengthSnake][2] == to_north)
		{
			g_arrSnake[g_lengthSnake + 1][0] = g_arrSnake[g_lengthSnake][0]+1;
			g_arrSnake[g_lengthSnake + 1][1] = g_arrSnake[g_lengthSnake][1];
			g_arrSnake[g_lengthSnake + 1][2] = g_arrSnake[g_lengthSnake][2];
		}
		else if (g_arrSnake[g_lengthSnake][2] == to_south)
		{
			g_arrSnake[g_lengthSnake + 1][0] = g_arrSnake[g_lengthSnake][0]-1;
			g_arrSnake[g_lengthSnake + 1][1] = g_arrSnake[g_lengthSnake][1];
			g_arrSnake[g_lengthSnake + 1][2] = g_arrSnake[g_lengthSnake][2];
		}
		g_lengthSnake++;
		isfood = true;
		g_score++;
	}
}
//分数
void grade()
{
	COORD rd;
	rd.X = 55;
	rd.Y = 8;
	//设置光标位置
//	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), rd);
	printf("分数:");

	rd.X = 56;
	rd.Y = 9;
	//设置光标位置
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), rd);
	printf("%d",g_score);

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

贪吃蛇 的相关文章

  • MySQL生成随机姓名

    CREATE DEFINER 61 96 root 96 64 96 localhost 96 FUNCTION 96 rand name 96 n int RETURNS varchar 16 CHARSET utf8 begin 初始化
  • RabbitMQ的安装教程

    本文介绍RabbitMQ在Linxu上的安装教程 一 下载相关安装包 相应的安装包可以从官网上 xff08 https www rabbitmq com xff09 进行下载 xff0c 也可以从我的网盘上下载 蓝奏云地址 xff1a ht
  • SpringBoot实现广州健康通疫苗预约提醒

    一 前言 终于轮到了打第二针疫苗的时候 xff0c 无奈每次打开 广州健康通 或 粤康通 小程序 xff0c 每次都是被预约完的状态 xff0c 广州人口众多 xff0c 说不定有很多人一直守在小程序前等着放号 xff0c 所以这篇文章就诞
  • 搭建SFTP服务器实现文件上传

    1 前言 最近一直在做数据迁移接口的开发 xff0c 涉及到大文件的远程下载与上传 xff0c 其实倒没有什么原理可言 xff0c 无非就是两台机器互连之后 xff0c 获得文件流然后进行传输 xff0c 不过在这过程也遇到过一些小坑 xf
  • SpringBoot整合RabbitMQ实现五种消息模型

    一 什么是消息队列 xff1f 消息 xff0c 可以理解为两个应用之间传递的数据 xff0c 数据可以是基本数据类型 xff0c 也可以是对象等 消息队列 xff0c 则是容器 xff0c 生产者产生的消息存放在这个容器里面 MQ的整个过
  • SpringBoot整合CXF框架实现Webservice服务端

    1 前言 近期接手一个10多年的老项目 xff0c 敲重点 xff0c 10多年 xff01 xff01 xff01 就是最纯粹的servlet技术 xff0c 貌似是从2008年运维到现在 xff0c 老项目终究会有被淘汰的这一天 xff
  • Windows下切换不同版本JDK

    1 前言 从四月份重新入职新公司以来 xff0c 主要负责两个项目的开发 xff0c 一个是10多年前的项目 xff0c 一个是2019年开始开发的项目 xff0c 这两个项目依赖于不同版本的JDK xff0c 一个是JDK6 xff0c
  • css实现圆形div旋转,如“已预约”效果

    lt DOCTYPE html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt lt title gt lt head gt lt style g
  • c++---类和对象(六大默认成员函数)

    类中默认的六个成员函数构造函数析构函数拷贝构造函数赋值操作符重载取地址和const取地址操作符重载const成员函数 1 类中默认的六个成员函数 首先看看下面代码 class A int main A a return 0 这个代码并没有报
  • 微服务系列--nacos注册中心与服务发现

    1 前言 终究还是到了更新关于微服务相关博客的时候了 xff0c 经过挺长一段时间微服务的自主学习 xff0c 现在不敢说自己熟悉微服务 xff0c 但我也能略知一二 微服务嘛 xff0c 其实入门之后便会发现 xff0c 其实关于微服务相
  • 微服务系列--Ribbon负载均衡

    1 前言 这篇文章接上一篇文章进行开发 xff0c 上一篇整合完了Nacos xff0c 这篇来整合Ribbon Ribbon不属于SpringCloud Alibaba的东西 xff0c 而是基于Netflix Ribbon实现的 可以让
  • Centos7安装Jenkins

    将Jenkins存储库添加到yum repos xff0c 并安装Jenkins sudo wget O etc yum repos d jenkins repo http pkg jenkins ci org redhat jenkins
  • Jenkins自动化部署SpringBoot项目

    首先需要安装所需的两个插件 xff0c Maven Integration plugin 和 Publish Over SSH 在 系统配置 xff0c 将服务器信息配置到jenkins xff0c 我用的是腾讯云服务器 xff0c 所以将
  • 优雅关闭SpringBoot项目-接口方式

    前言 一般在服务器重新部署SpringBoot项目 xff0c 无非就是用kill 9暴力停止进程 xff0c 但会造成很多数据问题 xff0c 如果遇到一些耗时或者正在处理交易类的业务时 xff0c 直接导致数据异常 xff0c 严重会导
  • Linux安装Jenkins

    前言 现在Jenkins的最新版本都需要基于JDK11以上才能够正常使用 xff0c 不然会出现各种插件安装不上的问题 又不想安装JDK11 xff0c 想继续用JDK8 xff0c 只能通过指定安装符合JDK8的Jenkins版本 PS
  • rosdep update出错解决办法(2021)

    ROS安装方法 xff1a ros安装后 xff0c 初始化时rosdep update出错解决办法 2021 06 30 初始化时rosdep update出错解决办法 2021年以前 xff0c 通过科学上网 手机开热点等方式 xff0
  • 0x0FA23729 (vcruntime140d.dll)处(位于 类和对象-封装.exe 中)引发的异常(已解决)

    运行程序的时候第42行 抛出异常 xff0c 但是我将该cpp文件放到别的解决方案下就不会出异常 include lt iostream gt include lt string gt using namespace std class P
  • Win10 摄像头:由于其配置信息(注册表中的)不完整或已损坏,Windows无法启动这个硬件设备.【未解决完全】

    问题描述 xff1a 刚刚重装完win10系统之后 xff0c 出现无法打开摄像头的问题 xff0c 解决方法 xff1a 通过修改注册表中得相关信息进行解决 首先打开设备管理器 xff0c 找到设备的类Guid记录下Guid 的值 如此处
  • 2021年总结与2022年展望

    一 工作和学习 通过调剂 xff0c 正式成为了一名研究生 xff0c 结束了自己两年的考研备考 xff0c 不知道是好还是坏 xff0c 看到周围朋友考的时候心里还是会有点失落感 在一家通信设备公司实习软件测试 xff0c 收获很多 xf
  • 计算机网络---网络基础(TCP/IP五层模型,数据的封装和分用)

    认识网络中常用的名词以及基本的概念熟悉OSI七层模型和TCP IP五层模型理解网络通信的数据传输流程 认识网络中常用的名词 ip地址 ip地址就是表示我们一台主机的因为数字不好记忆 xff0c 通常使用点分十进制表示IP xff0c 每条数

随机推荐

  • C语言简易TCP服务端程序

    C语言TCP服务端程序 文章目录 C语言TCP服务端程序项目介绍关键技术代码实现一请求一线程方式epoll方式实现多个客户端连接的TCP服务端程序epoll的水平触发和边缘触发 完整代码编译和启动使用NetAssist测试 项目介绍 本项目
  • C++使用gRPC实例

    什么是gRPC RPC 即远程过程调用协议 xff08 Remote Procedure Call Protocol xff09 xff0c 可以让我们像调用本地对象一样发起 远程调用 RPC 凭借其强大的治理功能 xff0c 成为解决分布
  • 复睿智行CC++开发实习面试

    线上面试 xff0c HR和一位技术的面试官 自我介绍 现在研究生学习的方向是什么 xff1f 我还去答区块链 xff0c 本来就半桶水 xff0c 还不如直接回答C C 43 43 后端这个方向 大数据分析这一块有做过吗 xff1f 我
  • 经纬恒润LinuxC++日常实习面经

    自我介绍 在学校成绩如何 xff0c 有没有获得奖学金 xff0c 考研的时间等等相关问题 能实习多久 xff0c 研究生研究的方向 你这个LinuxC 43 43 开发的学习是自学的吗 xff0c 怎样的自学途径 我 xff1a 看书 看
  • 集群聊天服务器项目(三)——负载均衡模块与跨服务器聊天

    负载均衡模块 为什么要加入负载均衡模块 原因是 xff1a 单台服务器并发量最多两三万 xff0c 不够大 负载均衡器 Nginx的用处或意义 xff08 面试题 xff09 把client请求按负载算法分发到具体业务服务器Chatserv
  • C++校招面试题

    C 43 43 static关键字的作用 xff08 从elf结构 链接的过程 xff09 答 xff1a static可以修饰全局变量 函数 局部变量 xff0c 这些符号在加了staitc后就只能在当前文件可见 xff0c 其他文件不可
  • make_shared知识点

    背景 普通创建shared ptr的方法如 xff1a shared ptr span class token operator lt span span class token keyword int span span class to
  • emplace方法原理剖析

    emplace back 和 push back 的差别 有一个类Test定义如下 span class token keyword class span span class token class name Test span span
  • 【 rbx1翻译 第七章、控制移动基座】第八节、使用里程计进行往返运动

    7 8 Out and Back Using Odometry 使用里程计进行往返运动 现在 xff0c 我们了解了里程表信息是如何在ROS中表示的 xff0c 我们可以更精确地在往返过程中移动机器人 下一个脚本将监视 odom和 base
  • 项目总结一:串口通信 || 串口接收数据和写入的数据不一致

    在做项目串口通信时遇到一个奇怪的bug xff0c 我写入的一个两个字节short类型数据3 xff0c 接受到的数据很奇怪有时是一个很大的数 xff0c 有时又是300多 xff0c 为了找到原因也是废了一些时间 xff0c 这里给分享一
  • linux---套接字编程

    一 Socket是什么 1 socket套接字 xff1a socket起源于Unix xff0c 而Unix Linux基本哲学之一就是 一切皆文件 xff0c 都可以用 打开open gt 读写write read gt 关闭close
  • ROS订阅者只订阅一次消息

    include lt ros ros h gt include lt opencv2 core core hpp gt include lt opencv2 imgproc imgproc hpp gt include lt opencv2
  • 【FPGA练习】(一): UART串口通信实验

    由于之前学习FPGA的过程中 xff0c 没有做一个良好的记录 xff0c 以及已学知识的扩展 xff0c 所以从今天开始每一个实验例程和扩展应用 xff0c 都要做文档记录 本实验 xff0c 是基于正点原子达芬奇xc7a35tfgg48
  • Ubuntu配置GStreamer实现python推流

    想用python实现一个推流服务 xff0c 下面记录一下配置过程 系统是ubuntu18 04 xff0c python3 6和3 8中都试过 1 安装gstreamer sudo apt get install libgstreamer
  • CMake 引用第三方库

    一 cmake简介 cmake 是gnu工具链中构建项目重要的一环 xff0c 而且在windows linux OS X中都可以使用 xff0c 特别是linux C C 43 43 程序员必备基本功 二 基本命令 xff1a 命名变量
  • C/C++:struct和class区别

    C和C 43 43 中的Struct区别 CC 43 43 不能将函数放在结构体声明能将函数放在结构体声明在C结构体声明中不能使用C 43 43 访问修饰符 public protected private 在C 43 43 中可以使用 在
  • 四旋翼无人机学习之准备篇(一)

    最近我哥要给我邮递个四旋翼无人机 xff0c 再加上本人对蓝天从小就很感兴趣 所以在学习完四驱小车后打算上手下无人机 刚开始学习根本不知道要看哪些 xff0c 在几天漫无头绪的学习 xff0c 终于有点气色了 xff0c 就把学习经验分享给
  • 更改Ubuntu默认python版本的方法

    可以按照以下方法使用 ls 命令来查看你的系统中都有那些 Python 的二进制文件可供使用 1 2 ls usr bin python usr bin python usr bin python2 usr bin python2 7 us
  • c++求素数

    C 43 43 练习第一课 C 43 43 输入一个n 求n以内的素数 xff1a C 43 43 输入一个n 求n以内的素数 xff1a include span class token operator lt span iostream
  • 贪吃蛇

    C尝试写的贪吃蛇项目 xff08 数组实现 xff09 以后会更新用链表实现贪吃蛇 span class token macro property span class token directive keyword define span