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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过Web网管切换到命令行界面【华为路由器】

一、注意事项 1.当前操作系统用户需要具有管理权限 2.设备仅呼出telnet客户端&#xff0c;设备仅发起telnet连接&#xff0c;不包括管理 3.不支持通过url地址或地址、端口的映射环境访问CLI控制台 二、准备条件 1.浏览器切换 CLI控制台只能使用IE浏览器&#xff0c;先把浏…

STM32自己从零开始实操02:输入部分原理图

一、触摸按键 1.1指路 项目需求&#xff1a; 4个触摸按键&#xff0c;主控芯片 TTP224N-BSBN&#xff08;嘉立创&#xff0c;封装 TSSOP-16&#xff09;&#xff0c;接入到 STM32 的 PE0&#xff0c;PE1&#xff0c;PE2&#xff0c;PE3。 1.2走路 1.2.1数据手册重要信息提…

K8s之ku-be admin部署安装

目录 一、环境配置 1、机器部署 2、部署大致流程 二、实验环境配置 1、所有节点关闭防火墙核心防护以及关闭swap交换 2、所有节点安装docker 3、所有节点安装kubeadm&#xff0c;kubelet和kubectl 4、部署K8s集群 5、设定kubectl 6、所有节点部署网络插件flannel 7、…

使用TensorFlow Lite Micro流程记录(带源码)

文章目录 0 关于tflite micro1 克隆仓库2 编译静态库3 模型转换4 编写工程5 编写demo5.1 进行算子注册 5.2 推理过程6 debug记录6.1 缺少算子 6.2 注册表太小6.3 段错误6.4 进一步减小库体积 7 实际部署 0 关于tflite micro 关于tflite micro在这里接不做过多介绍了&#xff0c…

javaSwing仓库商品管理系统(文档+视频+源码)

摘要 Java swing实现的一款简单的仓库商品管理系统&#xff0c;数据库采用的是mysql&#xff0c;本系统实现了两个角色层面的功能&#xff0c;管理员可以管理用户、仓库、商品信息等。普通用户登录后可以查看商品、仓库信息及个人信息。 系统实现 登录界面&#xff1a; 我们…

分布式音乐播放器适配了Stage模型

OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;应用开发自API 8及其更早版本一直使用的是FA模型进行开发。FA模型是Feature Ability的缩写&#xff0c;它和PA&#xff08;Particle Ability&#xff09;两种类型是过往长期推广的术语&#xff0c;深入人心…

stm32常用编写C语言基础知识,条件编译,结构体等

位操作 宏定义#define 带参数的宏定义 条件编译 下面是头文件中常见的编译语句&#xff0c;其中_LED_H可以认为是一个编译段的名字。 下面代码表示满足某个条件&#xff0c;进行包含头文件的编译&#xff0c;SYSTEM_SUPPORT_OS可能是条件&#xff0c;当非0时&#xff0c;可以…

C++设计模式|结构型 适配器模式

1.什么是适配器模式&#xff1f; 可以将⼀个类的接⼝转换成客户希望的另⼀个接⼝&#xff0c;主要⽬的是 充当两个不同接⼝之间的桥梁&#xff0c;使得原本接⼝不兼容的类能够⼀起⼯作。 2. 适配器模式的组成 &#xff08;1&#xff09;接口类&#xff0c;给客户端调用&…

vue的异步操作,钩子函数,和Element组件

使用vue进行异步操作 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </…

XV4001KD汽车级应用的数字输出陀螺传感器

XV4001KD是一款专为汽车导航系统和远程信息处理而设计的数字输出陀螺传感器。采用SPI/I2C串行接口&#xff0c;具有高精度的16位的角速率输出和11位的温度输出功能&#xff0c;能够准确地测量车辆的运动状态和环境温度&#xff0c;为导航系统和信息处理提供可靠的数据支持。以及…

《二》MP3在线搜索所歌曲的实现

上一期我们大致实现了布局等操作 那么这一期我们来实现如何去搜索歌曲&#xff1a; 首先呢&#xff0c;我们是设计多媒体&#xff0c;要包含多媒体类头文件&#xff0c;还要能在线搜索&#xff0c;那就要包含网络上的头文件&#xff0c;还要实现打开文件操作&#xff0c;处理…

Pytorch DDP分布式细节分享

自动微分和autograde 自动微分 机器学习/深度学习关键部分之一&#xff1a;反向传播&#xff0c;通过计算微分更新参数值。 自动微分的精髓在于它发现了微分计算的本质&#xff1a;微分计算就是一系列有限的可微算子的组合。 自动微分以链式法则为基础&#xff0c;依据运算逻…

kubeadm部署k8s v1.28

一、主机准备 主机硬件配置说明 作用IP地址操作系统配置k8s-master01192.168.136.55openEuler-22.03-LTS-SP12颗CPU 4G内存 50G硬盘k8s-node01192.168.136.56openEuler-22.03-LTS-SP12颗CPU 4G内存 50G硬盘k8s-node02192.168.136.57openEuler-22.03-LTS-SP12颗CPU 4G内存 50G…

安全生产月答题pk小程序怎么做

在当今信息化时代&#xff0c;小程序已成为人们日常生活和工作中不可或缺的一部分。特别是在安全生产领域&#xff0c;通过小程序进行答题PK活动&#xff0c;不仅可以提高员工的安全意识&#xff0c;还能促进团队间的协作与交流。本文将详细介绍如何制作一款安全生产月答题PK小…

初识DataX3.0

目前接到任务&#xff0c;让同步表数据。市面很多同步工具不一一尝试了&#xff0c;信赖阿里&#xff0c;所以调研了一下阿里的dataX,一点点来吧&#xff0c;学习为主 环境准备&#xff1a;linux6.8 python自带的2.7 MySQL 5.7.1 1.先下载&#xff1a; wget http://datax-o…

油猴脚本使用cookie一般是某请求返回的setcookie,一般不是js生成的,直接请求拼接

写完hook脚本 删除页面cooike&#xff0c;打开开发者模式&#xff0c;刷新页面 cookie一般是某请求返回的setcookie,一般不是js生成的&#xff0c;直接请求拼接带cookie请求 看网络里的cookie httponly打钩的是服务器返回的&#xff0c;但不一定对&#xff0c;还是要看保存日…

MPLS VPN

不是公司的产品&#xff0c;是运营商对外提供的一种服务 没咋懂&#xff0c;oh my god

安防监控视频平台EasyNVR级联视频上云系统EasyNVS出现“Login error”报错的原因排查

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…

Milvus的执行引擎Knowhere

前言 本文将会介绍Knowhere这个概念&#xff0c;它是milvus向量执行引擎的核心。 概览 Knowhere是milvus向量咨询引擎的核心&#xff0c;它将好几个向量相似搜索库聚集在一起&#xff08;包括faiss、hnswlib、annoy&#xff09;。Knowhere也被设计支持异构计算。它控制在什么…

电商平台api接口:采购比价可用的比价工具推荐

电商平台api接口 目前&#xff0c;许多企业在进行内部采购时都有比价的需求。企业利用比价采购这一方式&#xff0c;能通过对比不同平台上、不同供应商的报价&#xff0c;进而选择最符合其需求和预算的产品或服务。 在比价采购的流程中&#xff0c;最重要的步骤就是企业在明确…