DEV--C++小游戏(吃星星(1.2))

目录

吃星星(1.2)

该版本简介+更新说明

分部代码

头文件+命名空间+变量

结构体

角色结构体

星星结构体

打印地图结构体

函数

函数声明

单人模式游戏函数

双人模式游戏函数

开始游戏函数

清屏函数

定点输出函数

隐藏光标函数

输入函数

单人初始化函数

双人初始化函数

主函数

总结

byebye


吃星星(1.2)

该版本是优化好的第一个正式版本


该版本简介+更新说明

我呕心沥血

亿天

亿周更两次

累喜了

经过

DEV--C++小游戏(吃星星(0.1))-CSDN博客

DEV--C++小游戏(吃星星(0.2))-CSDN博客

塑造了

DEV--C++小游戏(吃星星(0.5))-CSDN博客

接着

又推出了

https://blog.csdn.net/lizhaoran22/article/details/138988758

(该版本)

看看:

主界面

单人模式简介界面

单人模式游戏界面

双人模式简介界面

双人模式游戏界面

规则简介界面

该版本对比以前版本的改变:

  1. 增加双人模式
  2. 增加了许多界面
  3. 增加了规则介绍

虽然看着少

但代码从113飞到281

整整多了168行

废话不多说,

代码他来喽!


分部代码

头文件+命名空间+变量

#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
int n,m,wx,wy,cc=-1,fen,fen1,fen2,p1x,p1y,p2x,p2y,pc[2]={},f[4]={cc/16*16+9,cc/16*16+10,cc/16*16+12,cc/16*16+14},x=0;
char a[100][200],w='*',c,ch='I';

不万能的万能头

按键式输入头文件

颜色窗口等头文件

命名空间

c,n:地图大小

wx,wy:星星坐标

cc:颜色

fen:单人得分

fen1:双人得分1

fen2:双人得分2

p1x,p1y:玩家1的x,y坐标

p2x,p2y:玩家2的x,y坐标

pc:角色颜色

f:角色可选颜色

x:对于pc的'i'(循环变量)

a:地图

c:输入变量

w:星星

ch:'I'的变量


结构体

角色结构体
struct people
{
	void Ise()
	{
		for(int i=0;i<4;i++)if((f[i]/17*17==f[i])||(f[i]==cc))f[i]=-1;
		for(int i=0;i<4;i++)if((f[i]!=-1)&&(pc[x]==0))pc[x++]=f[i];
	}
	void yd1()
	{
		(c=='a'&&p1y>0)?a[p1x][--p1y]='I',a[p1x][p1y+1]='x':0;
		(c=='d'&&p1y<m-1)?a[p1x][++p1y]='I',a[p1x][p1y-1]='x':0;
		(c=='w'&&p1x>0)?a[--p1x][p1y]='I',a[p1x+1][p1y]='x':0;
		(c=='s'&&p1x<n-1)?a[++p1x][p1y]='I',a[p1x-1][p1y]='x':0;
		if(int(c)==27)exit(0);
	}
	void yd2()
	{
		(c=='a'&&p1y>0&&a[p1x][p1y-1]!='I')?a[p1x][--p1y]='I',a[p1x][p1y+1]='x':0;
		(c=='d'&&p1y<m-1&&a[p1x][p1y+1]!='I')?a[p1x][++p1y]='I',a[p1x][p1y-1]='x':0;
		(c=='w'&&p1x>0&&a[p1x-1][p1y]!='I')?a[--p1x][p1y]='I',a[p1x+1][p1y]='x':0;
		(c=='s'&&p1x<n-1&&a[p1x+1][p1y]!='I')?a[++p1x][p1y]='I',a[p1x-1][p1y]='x':0;
		(c=='j'&&p2y>0&&a[p2x][p2y-1]!='I')?a[p2x][--p2y]='I',a[p2x][p2y+1]='x':0;
		(c=='l'&&p2y<m-1&&a[p2x][p2y+1]!='I')?a[p2x][++p2y]='I',a[p2x][p2y-1]='x':0;
		(c=='i'&&p2x>0&&a[p2x-1][p2y]!='I')?a[--p2x][p2y]='I',a[p2x+1][p2y]='x':0;
		(c=='k'&&p2x<n-1&&a[p2x+1][p2y]!='I')?a[++p2x][p2y]='I',a[p2x-1][p2y]='x':0;
		if(int(c)==27)exit(0);
	}
	void p1p()
	{
		colorchoose(pc[0]);
		printf("%c",ch);
		colorchoose(cc);
	}
	void p2p()
	{
		colorchoose(pc[1]);
		printf("%c",ch);
		colorchoose(cc);
	}
}p;

选择角色的颜色

单个角色的移动

用到w,a,s,d,Esc

两个角色的移动

用到w,a,s,d,i,j,k,l,Esc

打印角色1

打印角色2


星星结构体
struct xing
{
	void q1()
	{
		int color=rand()%255+0;
		colorchoose(color);
		printf("%c",w);
		colorchoose(cc);
	}
	void q21()
	{
		if((wx==p1x&&wy==p1y))
		{
			while(wx==p1x&&wy==p1y)
			{
				wx=rand()%n+0;
				wy=rand()%m+0;
			}
			fen++;
		}
	}
	void q22()
	{
	    if(wx==p1x&&wy==p1y)
		{
			while((wx==p1x&&wy==p1y)||(wx==p2x&&wy==p2y))
			{
				wx=rand()%n+0;
				wy=rand()%m+0;
			}
			fen1++;
		}
		if(wx==p2x&&wy==p2y)
		{
			while((wx==p1x&&wy==p1y)||(wx==p2x&&wy==p2y))
			{
				wx=rand()%n+0;
				wy=rand()%m+0;
			}
			fen2++;
		}
	}

}xing;

q1:随机颜色的星星

q21:单人模式下星星被吃后移到随机位置

q22:双人模式下星星被吃后移到随机位置


打印地图结构体
struct print
{
	void p1()
	{
		printf("该版本为:吃星星(1.2)\n");
		printf("单人模式\n");
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				if(i==wx&&j==wy)xing.q1();
				if(i==p1x&&j==p1y)p.p1p();
				if(!(((i==wx&&j==wy)||(i==p1x&&j==p1y))))printf("%c",a[i][j]);
			}
			printf("\n");
		}
	}
	void p2()
	{
		printf("该版本为:吃星星(1.2)\n");
		printf("双人模式\n");
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				if(i==wx&&j==wy)xing.q1();
				if(i==p1x&&j==p1y)p.p1p();
				if(i==p2x&&j==p2y)p.p2p();
				if(!(((i==wx&&j==wy)||(i==p1x&&j==p1y)||(i==p2x&&j==p2y))))printf("%c",a[i][j]);
			}
			printf("\n");
		}
	}
}pr;

p1:单人模式地图打印,遇到星星、‘I’就去到相应结构体打印

p2:双人模式地图打印,遇到星星、‘I’就去到相应结构体打印


函数

函数声明
void ks();
void cls();
void gotoxy(int x,int y);
void yc();
void colorchoose(int color);
void game1();
void game2();
void in();
void chu1();
void chu2();

提前声明所有函数

防止在函数嵌套式出现错误


单人模式游戏函数
void game1()
{
	while(1)
	{
		yc();
		xing.q21();
		pr.p1();
		printf("得分:%d",fen);
		c=getch();
		cls();
		p.yd1();
	}
}

一直执行

隐藏光标

判断星星是否被吃

打印地图

打印得分

按键输入

清屏

移动


双人模式游戏函数
void game2()
{
	while(1)
	{
		yc();
		xing.q22();
		pr.p2();
		printf("得分1:%d\n",fen1);
		printf("得分2:%d",fen2);
		c=getch();
		cls();
		p.yd2();
	}
}

一直执行

隐藏光标

判断星星是否被吃

打印地图

打印得分

按键输入

清屏

移动


开始游戏函数
void ks()
{
	yc();
	srand(time(0));
	system("mode con cols=90 lines=30");
	colorchoose(11);
	for(int i=1;i<=89;i++)printf("_");
	cout<<"\n";
	for(int i=1;i<=28;i++)printf("|                                                                                       |\n");
	printf("|_");
	for(int i=1;i<=85;i++)printf("_");
	printf("_|");
	colorchoose(12);
	gotoxy(40,14);
	printf("单人模式(a)");
	gotoxy(40,15);
	printf("双人模式(b)");
	gotoxy(40,16);
	printf("游戏规则(c)");
	c=getch();
	switch(c)
	{
		case 'a':
		{
			cls();
			printf("你是I,你在书桌上N天没吃饭了,突然,桌子上出现了一个星星,你不管不顾的冲上前去,直接吃掉,但你看到另一处还有,就拼命的吃......");
			Sleep(5000);
			in();
			chu1();
			break;
		};
		case 'b':
		{
			cls();
			printf("你是I,你和你的朋友在书桌上N天没吃饭了,突然,桌子上出现了一个星星,你们不管不顾的冲上前去,直接吃掉,但你们看到另一处还有,就拼命的吃,最后,两人因为星星而争抢起来....");
			Sleep(5000);
			in();
			chu2();
			break;
		}
		case 'c':
		{
			cls();
			printf("游戏规则:\n单人模式:\n使用wasd进行移动、吃星星,Esc键退出游戏。\n双人模式:\n玩家1使用wasd进行移动、吃星星,玩家2使用ijkl进行移动、吃星星,Esc键退出游戏。");
			Sleep(5000);
		}
		default:ks();
	}
}

隐藏

设置随机种子

调整窗口大小

选择颜色

打印框架

选择颜色

打印主界面

判断按下哪个键

按下a:

清屏

游戏简介

等待5s

输入

初始化

按下b:

清屏

游戏简介

等待5s

输入

初始化

按下c:

清屏

游戏规则简介

等待5s

其他:继续执行开始游戏函数


清屏函数
void cls()
{
	system("cls");
}

清除屏幕上所有东西


定点输出函数
void gotoxy(int x,int y)
{
	HANDLE hOutput;
	COORD loc;
	loc.X=x;
	loc.Y=y;
	hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOutput,loc);
}

到坐标为(x,y)的地方……


隐藏光标函数
void yc()
{
	CONSOLE_CURSOR_INFO cursor_info={1,0};
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}

将光标隐藏


输入函数
void in()
{
	while(!((n>=5&&n<=20&&m>=5&&m<=20&&cc>=0&&cc<=255)))
	{
		cls();
		printf("行数(5~20):");
		scanf("%d",&n);
		printf("列数(5~20):");
		scanf("%d",&m);
		printf("颜色(0~255):"); 
		scanf("%d",&cc);
	}
}

进行行、列、颜色的输入


单人初始化函数
void chu1()
{
	f[0]=cc/16*16+9;
	f[1]=cc/16*16+10;
	f[2]=cc/16*16+12;
	f[3]=cc/16*16+14;
	p.Ise();
	memset(a,'x',sizeof(a));
	p1x=0;
	p1y=0;
	wx=n/2;
	wy=m/2;
	a[0][0]='I';
	game1();
}

四个颜色

选择颜色

a里全为'x'

角色1坐标

星星坐标

设置‘I’的初始位置

单人游戏函数


双人初始化函数
void chu2()
{
	f[0]=cc/16*16+9;
	f[1]=cc/16*16+10;
	f[2]=cc/16*16+12;
	f[3]=cc/16*16+14;
	p.Ise();
	memset(a,'x',sizeof(a));
	p1x=0;
	p1y=0;
	p2x=n-1;
	p2y=m-1;
	a[0][0]=a[n-1][m-1]='I';
	wx=n/2;
	wy=m/2;
	game2();
}

四个颜色

选择颜色

a里全为'x'

角色1坐标

角色2坐标

星星坐标

设置‘I’的初始位置

双人游戏函数


主函数

int main()
{
	ks();
}

开始函数


1.2版完整代码

#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
int n,m,wx,wy,cc=-1,fen,fen1,fen2,p1x,p1y,p2x,p2y,pc[2]={},f[4]={cc/16*16+9,cc/16*16+10,cc/16*16+12,cc/16*16+14},x=0;
char a[100][200],w='*',c,ch='I';
void ks();
void cls();
void gotoxy(int x,int y);
void yc();
void colorchoose(int color);
void game1();
void game2();
void in();
void chu1();
void chu2();
struct people
{
	void Ise()
	{
		for(int i=0;i<4;i++)if((f[i]/17*17==f[i])||(f[i]==cc))f[i]=-1;
		for(int i=0;i<4;i++)if((f[i]!=-1)&&(pc[x]==0))pc[x++]=f[i];
	}
	void yd1()
	{
		(c=='a'&&p1y>0)?a[p1x][--p1y]='I',a[p1x][p1y+1]='x':0;
		(c=='d'&&p1y<m-1)?a[p1x][++p1y]='I',a[p1x][p1y-1]='x':0;
		(c=='w'&&p1x>0)?a[--p1x][p1y]='I',a[p1x+1][p1y]='x':0;
		(c=='s'&&p1x<n-1)?a[++p1x][p1y]='I',a[p1x-1][p1y]='x':0;
		if(int(c)==27)exit(0);
	}
	void yd2()
	{
		(c=='a'&&p1y>0&&a[p1x][p1y-1]!='I')?a[p1x][--p1y]='I',a[p1x][p1y+1]='x':0;
		(c=='d'&&p1y<m-1&&a[p1x][p1y+1]!='I')?a[p1x][++p1y]='I',a[p1x][p1y-1]='x':0;
		(c=='w'&&p1x>0&&a[p1x-1][p1y]!='I')?a[--p1x][p1y]='I',a[p1x+1][p1y]='x':0;
		(c=='s'&&p1x<n-1&&a[p1x+1][p1y]!='I')?a[++p1x][p1y]='I',a[p1x-1][p1y]='x':0;
		(c=='j'&&p2y>0&&a[p2x][p2y-1]!='I')?a[p2x][--p2y]='I',a[p2x][p2y+1]='x':0;
		(c=='l'&&p2y<m-1&&a[p2x][p2y+1]!='I')?a[p2x][++p2y]='I',a[p2x][p2y-1]='x':0;
		(c=='i'&&p2x>0&&a[p2x-1][p2y]!='I')?a[--p2x][p2y]='I',a[p2x+1][p2y]='x':0;
		(c=='k'&&p2x<n-1&&a[p2x+1][p2y]!='I')?a[++p2x][p2y]='I',a[p2x-1][p2y]='x':0;
		if(int(c)==27)exit(0);
	}
	void p1p()
	{
		colorchoose(pc[0]);
		printf("%c",ch);
		colorchoose(cc);
	}
	void p2p()
	{
		colorchoose(pc[1]);
		printf("%c",ch);
		colorchoose(cc);
	}
}p;
struct xing
{
	void q1()
	{
		int color=rand()%255+0;
		colorchoose(color);
		printf("%c",w);
		colorchoose(cc);
	}
	void q21()
	{
		if((wx==p1x&&wy==p1y))
		{
			while(wx==p1x&&wy==p1y)
			{
				wx=rand()%n+0;
				wy=rand()%m+0;
			}
			fen++;
		}
	}
	void q22()
	{
		if(wx==p1x&&wy==p1y)
		{
			while((wx==p1x&&wy==p1y)||(wx==p2x&&wy==p2y))
			{
				wx=rand()%n+0;
				wy=rand()%m+0;
			}
			fen1++;
		}
		if(wx==p2x&&wy==p2y)
		{
			while((wx==p1x&&wy==p1y)||(wx==p2x&&wy==p2y))
			{
				wx=rand()%n+0;
				wy=rand()%m+0;
			}
			fen2++;
		}
	}

}xing;
struct print
{
	void p1()
	{
		printf("该版本为:吃星星(1.2)\n");
		printf("单人模式\n");
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				if(i==wx&&j==wy)xing.q1();
				if(i==p1x&&j==p1y)p.p1p();
				if(!(((i==wx&&j==wy)||(i==p1x&&j==p1y))))printf("%c",a[i][j]);
			}
			printf("\n");
		}
	}
	void p2()
	{
		printf("该版本为:吃星星(1.2)\n");
		printf("双人模式\n");
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				if(i==wx&&j==wy)xing.q1();
				if(i==p1x&&j==p1y)p.p1p();
				if(i==p2x&&j==p2y)p.p2p();
				if(!(((i==wx&&j==wy)||(i==p1x&&j==p1y)||(i==p2x&&j==p2y))))printf("%c",a[i][j]);
			}
			printf("\n");
		}
	}
}pr;
int main()
{
	ks();
}
void game1()
{
	while(1)
	{
		yc();
		xing.q21();
		pr.p1();
		printf("得分:%d",fen);
		c=getch();
		cls();
		p.yd1();
	}
}
void game2()
{
	while(1)
	{
		yc();
		xing.q22();
		pr.p2();
		printf("得分1:%d\n",fen1);
		printf("得分2:%d",fen2);
		c=getch();
		cls();
		p.yd2();
	}
}
void ks()
{
	yc();
	srand(time(0));
	system("mode con cols=90 lines=30");
	colorchoose(11);
	for(int i=1;i<=89;i++)printf("_");
	cout<<"\n";
	for(int i=1;i<=28;i++)printf("|                                                                                       |\n");
	printf("|_");
	for(int i=1;i<=85;i++)printf("_");
	printf("_|");
	colorchoose(12);
	gotoxy(40,14);
	printf("单人模式(a)");
	gotoxy(40,15);
	printf("双人模式(b)");
	gotoxy(40,16);
	printf("游戏规则(c)");
	c=getch();
	switch(c)
	{
		case 'a':
		{
			cls();
			printf("你是I,你在书桌上N天没吃饭了,突然,桌子上出现了一个星星,你不管不顾的冲上前去,直接吃掉,但你看到另一处还有,就拼命的吃......");
			Sleep(5000);
			in();
			chu1();
			break;
		};
		case 'b':
		{
			cls();
			printf("你是I,你和你的朋友在书桌上N天没吃饭了,突然,桌子上出现了一个星星,你们不管不顾的冲上前去,直接吃掉,但你们看到另一处还有,就拼命的吃,最后,两人因为星星而争抢起来....");
			Sleep(5000);
			in();
			chu2();
			break;
		}
		case 'c':
		{
			cls();
			printf("游戏规则:\n单人模式:\n使用wasd进行移动、吃星星,Esc键退出游戏。\n双人模式:\n玩家1使用wasd进行移动、吃星星,玩家2使用ijkl进行移动、吃星星,Esc键退出游戏。");
			Sleep(5000);
		}
		default:ks();
	}
}
void cls()
{
	system("cls");
}
void gotoxy(int x,int y)
{
	HANDLE hOutput;
	COORD loc;
	loc.X=x;
	loc.Y=y;
	hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOutput,loc);
}
void yc()
{
	CONSOLE_CURSOR_INFO cursor_info={1,0};
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
void colorchoose(int color)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color);
}
void in()
{
	while(!((n>=5&&n<=20&&m>=5&&m<=20&&cc>=0&&cc<=255)))
	{
		cls();
		printf("行数(5~20):");
		scanf("%d",&n);
		printf("列数(5~20):");
		scanf("%d",&m);
		printf("颜色(0~255):"); 
		scanf("%d",&cc);
	}
}
void chu1()
{
	f[0]=cc/16*16+9;
	f[1]=cc/16*16+10;
	f[2]=cc/16*16+12;
	f[3]=cc/16*16+14;
	p.Ise();
	memset(a,'x',sizeof(a));
	p1x=0;
	p1y=0;
	wx=n/2;
	wy=m/2;
	a[0][0]='I';
	game1();
}
void chu2()
{
	f[0]=cc/16*16+9;
	f[1]=cc/16*16+10;
	f[2]=cc/16*16+12;
	f[3]=cc/16*16+14;
	p.Ise();
	memset(a,'x',sizeof(a));
	p1x=0;
	p1y=0;
	p2x=n-1;
	p2y=m-1;
	a[0][0]=a[n-1][m-1]='I';
	wx=n/2;
	wy=m/2;
	game2();
}

总结

吃星星小游戏擦不多久更到这了

以后可能就更新时间就会很久

因为已经做好了

没什么可更得了

如果大佬们觉得有可以改进的地方

请在评论区发言

我尽快修改

希望多给我意见建议

我也会再看看

对比一下别的游戏

看看还有什么可以改进

希望大佬给我提供宝贵的意见!!!!!

byebye

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/641649.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】<知识点> 标准和文件的输入输出

目录 一、输入输出操作 1. 相关的类 2. 标准流对象 3. istream类的成员函数 二、流操纵算子 1. 整数流的基数 2. 浮点数精度的流操纵算子 3. 域宽的流操纵算子 4. 其他的流操纵算子 5. 用户自定义流操纵算子 三、文件读写 1. 文本文件的读写 2. 二进制文件的读写 3. 文件读写…

编一个自己的万年历

编一个自己的万年历 前阶段突然想查一下某一天是星期几&#xff0c;于是自己编了一个[小程序][https://blog.csdn.net/weixin_41905135/article/details/138972055?spm1001.2014.3001.5501]&#xff0c;但是功能很单一&#xff0c;就是单纯的查是星期几。&#xff08;虽然用网…

Deep Residual Learning for Image Recognition--论文笔记

论文笔记 论文来源&#xff1a; Deep Residual Learning for Image Recognition 代码来源 还没上传 1论文摘要的翻译 深度神经网络更难训练。我们提出了一个残差学习框架&#xff0c;以简化比以前使用的网络深度大得多的网络的训练。我们明确地将层重新表述为参考层输入的…

十五、Python模块 1、(入门一定看!!!)「长期更新Python简单入门到适用」

首先什么是模块&#xff1f; 小伙伴们经常看我写的教程不难发现&#xff0c;前面我们用过几次模块就是sys的那个&#xff0c;其实python不仅标准库中包含了大量的模块&#xff08;也被称之为准模块&#xff09;&#xff0c;还有大量的第三方模块&#xff0c;开发者也可以自己发…

Python学习---基于HTTP的服务端基础框架搭建案例

整体功能&#xff1a; 1 创建框架构建相关的文件夹 2 创建app,模块文件 3 在 app模块文件中创建application函数(用于处理请求) 4 将request_handler()中的处理逻辑交由app模块的application函数完成 5 app模块的 application函数返回响应报文 6 在application 文件夹中创建一个…

零基础HTML教程(34)--HTML综合实例

文章目录 1. 背景2. 开发流程2.1 网站功能设计2.2 建立网站目录结构2.3 开发首页2.2 生平简介页2.3 经典诗词页2.4 苏轼图集页2.5 留言板 3. 小结 1. 背景 通过前面33篇文章的学习&#xff0c;我们对HTML有了一个比较全面的了解。 本篇&#xff0c;我们编写一个网站实例&…

C++ RBTree封装mapset

目录 RBTreeNode的声明 RBTree结构 map结构 set结构 改造红黑树 迭代器类 迭代器成员函数 默认成员函数 Insert set map RBTreeNode的声明 template<class T> struct RBTreeNode {RBTreeNode<T>* _left;RBTreeNode<T>* _right;RBTreeNode<T>*…

心理咨询系统|心理咨询系统开发|心理咨询软件开发

在快节奏的现代生活中&#xff0c;心理健康问题越来越受到人们的关注。为了有效应对这些问题&#xff0c;心理咨询系统应运而生&#xff0c;它为人们提供了一个安全、便捷的平台&#xff0c;以寻求心理帮助和支持。本文将详细介绍心理咨询系统的功能、优势以及未来发展趋势。 …

vue项目实战 - 如果高效的实现防抖和节流

在Vue项目中&#xff0c;处理高频事件的优化至关重要&#xff0c;直接影响用户体验和应用性能。防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;是两种常用且有效的方法&#xff0c;可以控制事件触发频率&#xff0c;减少不必要的资源消耗。如何在…

使用Word表格数据快速创建图表

实例需求&#xff1a;Word的表格如下所示&#xff0c;标题行有合并单元格。 现在需要根据上述表格数据&#xff0c;在Word中创建如下柱图。如果数据在Excel之中&#xff0c;那么创建这个图并不复杂&#xff0c;但是Word中就没用那么简单了&#xff0c;虽然Word中可以插入图表&a…

免费撸gpt-4o和各种大模型实用经验分享

项目 Github: https://github.com/MartialBE/one-api 先贴两张图&#xff1a; 说明 免费撸AI大模型,各位可以对照下面我给出的大模型记录表来填&#xff0c;key需要自己去拿&#xff0c;国内都需要手机号验证&#xff0c;如果你不介意。另外我在自己的博客放出免费API给大家…

自定义RedisTemplate序列化器

大纲 RedisSerializerFastJsonRedisSerializer自定义二进制序列化器总结代码 在《RedisTemplate保存二进制数据的方法》一文中&#xff0c;我们将Java对象通过《使用java.io库序列化Java对象》中介绍的方法转换为二进制数组&#xff0c;然后保存到Redis中。实际可以通过定制Red…

[emailprotected](2)核心概念-JSX

目录 1&#xff0c;什么是 jsx2&#xff0c;空标签3&#xff0c;通过大括号使用 js4&#xff0c;防止注入攻击5&#xff0c;元素的不可变性 官方文档 1&#xff0c;什么是 jsx Facebook 起草的 js 扩展语法。本质上是 js 对象&#xff0c;会被 babel 编译&#xff0c;最终转换…

根据多个坐标经纬度获取到中心点的经纬度,scala语言

文章目录 前言scala 代码 总结 前言 Scala 语言 通过多个经纬度坐标点, 计算出中心点, 这里使用的是 Scala 语言,其他的语言需要自行转换。求出来的并不是原有的点&#xff0c;而是原有点的中心位置的点。 scala 代码 package com.dw.process.midimport java.lang.Double.pa…

【test】Windows11下通过sshfs挂载远程服务器目录

下载安装下面三个软件&#xff1a; sshfs-win&#xff1a;https://github.com/billziss-gh/sshfs-win/releases winfsp&#xff1a;https://github.com/billziss-gh/winfsp/releases SSHFS-Win Manager&#xff1a;https://github.com/evsar3/sshfs-win-manager/releases 安装…

数据结构---优先级队列(堆)

博主主页: 码农派大星. 数据结构专栏:Java数据结构 关注博主带你了解更多数据结构知识 1. 优先级队列 1.1 概念 前面介绍过队列&#xff0c;队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队 列时&am…

python低阶基础100题(上册)

** python低阶基础100题&#xff08;上册&#xff09; ** 1. 请打印出字符串 Hello World print("Hello World")2. 请打印出字符串 爸爸妈妈&#xff0c;你们辛苦啦 print("爸爸妈妈&#xff0c;你们辛苦啦")3. 请打印出字符串 人生苦短&#xff0c;我…

如何使用Studio 3T导出MongoDB数据成excel?

导出MongoDB查询集合数据成excel 1. 新建查询页面&#xff0c;输入指定的查询语句&#xff0c;执行查询获取结果。 这里以查询集合accountbackLogger表中的reqTime字段日期是2024年5月的数据为列。 db.getCollection("accountbackLogger").find({reqTime:{$gte: IS…

UE4/UE5像素流送云推流:多人访问不稳定、画面糊、端口占用多等

UE4/UE5想要实现网页访问&#xff0c;很多工程师会选择guan方的像素流送。但这个技术要求在模型开发初期就接入。对于一些已有UE模型是无法进行流化的。虽然也可以解决新UE模型的网页访问问题&#xff0c;但在实际的应用中&#xff0c;点量云流也收到很多反馈说&#xff0c;使用…

LeetCode题练习与总结:从中序与后序遍历序列构造二叉树--106

一、题目描述 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出…