c++ 小游戏(2种)
目录
介绍
游戏1
游戏2
介绍
因为DEV C++的编译环境较小,所以大部分的游戏代码都无法在此上运行,我收集了一部分摸鱼小游戏的源码,在此呈现,如果有能在DEV C++上运行的我会先作声明:
游戏1
扫雷
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<queue>
#include<ctype.h>
#define A 17 //地图的高
#define B 17 //地图的宽
#define C 30 //雷的总数
using namespace std;//全局变量
DWORD a,b;
char map[A][B],news,spare;
int BoomTotalNum,floatx,floaty,flag[A][B],flagnum,mode,slect[A][B],game;//颜色属性
const WORD FORE_BLUE = FOREGROUND_BLUE; //蓝色文本属性
const WORD FORE_GREEN = FOREGROUND_GREEN; //绿色文本属性
const WORD FORE_RED = FOREGROUND_RED; //红色文本属性//开垦地图结构体
struct node {int x;int y;
};
queue <node> dui;//打印位置
void position(int x,int y) {COORD pos= {x,y};HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(Out,pos);
}//隐藏光标
void Hide() {HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFO CursorInfo;GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息CursorInfo.bVisible = false; //隐藏控制台光标SetConsoleCursorInfo(handle, &CursorInfo);//设置控制台光标状态
}//初始化
void Beginning() {while(!dui.empty()) {dui.pop();}game=1;
//BoomTotalNum=C;floatx=A/2;floaty=B/2;flagnum=0;BoomTotalNum=C;mode=0;HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄CONSOLE_SCREEN_BUFFER_INFO csbi; //定义窗口缓冲区信息结构体GetConsoleScreenBufferInfo(handle_out, &csbi); //获得窗口缓冲区信息int x,y;srand((unsigned)time(0));for(int i=0; i<A; i++) for(int j=0; j<B; j++) {map[i][j]=' ';flag[i][j]=0;slect[i][j]=0;}while(BoomTotalNum) {x=rand()%A;y=rand()%B;if(map[x][y]==' ') {map[x][y]='@';BoomTotalNum--;}}SetConsoleTextAttribute(handle_out, FORE_GREEN);for(int i=0; i<A; i++) {for(int j=0; j<B; j++) printf("█");printf("\n");}position(floaty*2,floatx);SetConsoleTextAttribute(handle_out, FORE_RED);printf(""); //光标位置position(44,9);printf("扫雷模式");position(44,5);printf("剩余雷数:%d ",C-flagnum);SetConsoleTextAttribute(handle_out, FORE_GREEN);position(5,22);printf("按“空格”切换模式");position(5,23);printf("按“Enter”确认");position(5,24);printf("按“方向键”选择方块");}//打印地图的一块儿
void Lump(int xx,int yy) {switch(map[xx][yy]) {case '1' :printf("①");break; //周围雷的数量(下同)case '2' :printf("②");break;case '3' :printf("③");break;case '4' :printf("④");break;case '5' :printf("⑤");break;case '6' :printf("⑥");break;case '7' :printf("⑦");break;case '8' :printf("⑧");break;case ' ' :if(xx==floatx&&yy==floaty) {if(flag[xx][yy]==0) {if(mode%2==0) printf("");else printf("");} else printf("");} else {if(flag[xx][yy]==0) printf("█");else printf("");}break;case '@' :if(xx==floatx&&yy==floaty) {if(flag[xx][yy]==0) {if(mode%2==0) printf("");else printf("");} else printf("");} else {if(flag[xx][yy]==0) printf("█");else printf("");}break;case 'x' :if(floatx==xx&&floaty==yy) printf("");else printf(" ");break; //已经挖开的空白}
}//移动光标
void Move() {HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄CONSOLE_SCREEN_BUFFER_INFO csbi; //定义窗口缓冲区信息结构体GetConsoleScreenBufferInfo(handle_out, &csbi); //获得窗口缓冲区信息int xxx,yyy;xxx=floatx;yyy=floaty;switch(news) {case 72 :floatx--;break; //上case 80 :floatx++;break; //下case 75 :floaty--;break; //左case 77 :floaty++;break; //右}if(floatx==-1) floatx=A-1;floatx%=A; //两端穿模处理if(floaty==-1) floaty=B-1;floaty%=B;position(yyy*2,xxx);SetConsoleTextAttribute(handle_out, FORE_GREEN);Lump(xxx,yyy); //删除原位置if(map[floatx][floaty]=='x') {position(floaty*2,floatx);printf(" ");}position(floaty*2,floatx);SetConsoleTextAttribute(handle_out, FORE_BLUE);Lump(floatx,floaty); //更新新位置
}//插旗和排雷模式切换
void Mode() {HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄CONSOLE_SCREEN_BUFFER_INFO csbi; //定义窗口缓冲区信息结构体GetConsoleScreenBufferInfo(handle_out, &csbi); //获得窗口缓冲区信息mode++;SetConsoleTextAttribute(handle_out, FORE_BLUE);position(floaty*2,floatx);if(mode%2==0) printf("");else printf("");position(44,9);if(mode%2==0) {SetConsoleTextAttribute(handle_out, FORE_BLUE);printf("扫雷模式");} else {SetConsoleTextAttribute(handle_out, FORE_RED);printf("插旗模式");}
}//该点周围地雷数
int Boomnum(int xx,int yy) {int num=0;if((xx-1>=0)&&(yy-1>=0)&&(map[xx-1][yy-1]=='@')) num++;if((xx-1>=0)&&(yy+0>=0)&&(map[xx-1][yy]=='@')) num++;if((xx-1>=0)&&(yy+1<B) &&(map[xx-1][yy+1]=='@')) num++;if((xx+0>=0)&&(yy-1>=0)&&(map[xx][yy-1]=='@')) num++;if((xx+0>=0)&&(yy+1<B) &&(map[xx][yy+1]=='@')) num++;if((xx+1<A)&&(yy-1>=0) &&(map[xx+1][yy-1]=='@')) num++;if((xx+1<A)&&(yy+0>=0) &&(map[xx+1][yy]=='@')) num++;if((xx+1<A)&&(yy+1<B) &&(map[xx+1][yy+1]=='@')) num++;return num;
}//更新地图
void Open() {node c;node d;while(!dui.empty()) {dui.pop();}c.x=floatx;c.y=floaty;dui.push(c);slect[c.x][c.y]=1;while(!dui.empty()) {c=dui.front();dui.pop();if(Boomnum(c.x,c.y)!=0) {map[c.x][c.y]=(Boomnum(c.x,c.y)+48);continue;} else {map[c.x][c.y]='x';if((c.x-1>=0)&&(c.y-1>=0)&&(map[c.x-1][c.y-1]==' ')&&(slect[c.x-1][c.y-1]==0)) {d.x=c.x-1;d.y=c.y-1;dui.push(d);slect[d.x][d.y]=1;}if((c.x-1>=0)&&(c.y-0>=0)&&(map[c.x-1][c.y]==' ')&&(slect[c.x-1][c.y]==0)) {d.x=c.x-1;d.y=c.y-0;dui.push(d);slect[d.x][d.y]=1;}if((c.x-1>=0)&&(c.y+1<B)&&(map[c.x-1][c.y+1]==' ')&&(slect[c.x-1][c.y+1]==0)) {d.x=c.x-1;d.y=c.y+1;dui.push(d);slect[d.x][d.y]=1;}if((c.x-0>=0)&&(c.y-1>=0)&&(map[c.x][c.y-1]==' ')&&(slect[c.x][c.y-1]==0)) {d.x=c.x-0;d.y=c.y-1;dui.push(d);slect[d.x][d.y]=1;}if((c.x-0>=0)&&(c.y+1<B)&&(map[c.x][c.y+1]==' ')&&(slect[c.x][c.y+1]==0)) {d.x=c.x-0;d.y=c.y+1;dui.push(d);slect[d.x][d.y]=1;}if((c.x+1<A)&&(c.y-1>=0)&&(map[c.x+1][c.y-1]==' ')&&(slect[c.x+1][c.y-1]==0)) {d.x=c.x+1;d.y=c.y-1;dui.push(d);slect[d.x][d.y]=1;}if((c.x+1<A)&&(c.y-0>=0)&&(map[c.x+1][c.y]==' ')&&(slect[c.x+1][c.y]==0)) {d.x=c.x+1;d.y=c.y-0;dui.push(d);slect[d.x][d.y]=1;}if((c.x+1<A)&&(c.y+1<B)&&(map[c.x+1][c.y+1]==' ')&&(slect[c.x+1][c.y+1]==0)) {d.x=c.x+1;d.y=c.y+1;dui.push(d);slect[d.x][d.y]=1;}}}
}int main() {freopen("排名.txt","r",stdin);
Relife: //重玩处HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄CONSOLE_SCREEN_BUFFER_INFO csbi; //定义窗口缓冲区信息结构体GetConsoleScreenBufferInfo(handle_out, &csbi); //获得窗口缓冲区信息Hide();Beginning();a=GetTickCount();while(1) {if(kbhit()!=0) {spare=getch();if((spare!=(-32))&&(spare!=13)&&(spare!=' ')) continue;if(spare==13) {;if(mode%2==0) {if(map[floatx][floaty]=='@'&&flag[floatx][floaty]==0) {break;game=0;}if(flag[floatx][floaty]==1) continue;Open();position(0,0);SetConsoleTextAttribute(handle_out, FORE_GREEN);for(int i=0; i<A; i++) {for(int j=0; j<B; j++) Lump(i,j);printf("\n");}position(floaty*2,floatx);SetConsoleTextAttribute(handle_out, FORE_BLUE);Lump(floatx,floaty);}else {if(map[floatx][floaty]=='x'||(map[floatx][floaty]>'0'&&map[floatx][floaty]<'9'))continue;if(flag[floatx][floaty]==0) {flagnum++;flag[floatx][floaty]=1;position(floaty*2,floatx);SetConsoleTextAttribute(handle_out, FORE_BLUE);Lump(floatx,floaty);}else {flagnum--;flag[floatx][floaty]=0;position(floaty*2,floatx);SetConsoleTextAttribute(handle_out, FORE_BLUE);Lump(floatx,floaty);}}}if(spare==' ') Mode();//按方向键if(spare==-32) {news=getch();Move();}for(int i=0; i<A; i++) for(int j=0; j<B; j++) if(map[i][j]=='x'||(map[i][j]>'0'&&map[i][j]<'9')) game++;if(game==A*B-C+1) break;else game=1;SetConsoleTextAttribute(handle_out, FORE_RED);position(44,5);printf("剩余雷数:%d ",C-flagnum);} else Sleep(10);b=GetTickCount();SetConsoleTextAttribute(handle_out, FORE_RED);position(44,7);printf("用时:");if((b-a)/60000<10) printf("0");printf("%d:",(b-a)/60000);if(((b-a)/1000)%60<10) printf("0");printf("%d:",((b-a)/1000)%60);if(((b-a)/10)%100<10) printf("0");printf("%d",((b-a)/10)%100);}SetConsoleTextAttribute(handle_out, FORE_RED);position(5,5);if(game==1) printf("游戏结束!");else printf("恭喜通关!");position(5,8);printf("任意键重玩");scanf("%c%c",&spare,&spare);system("cls");position(0,0);goto Relife;
}
游戏2
狼人杀
#include <iostream>//C++输入输出流库
#include <cstdlib>//使用srand函数要用到这个库
#include <ctime>//使用time函数要用到这个库
#include <Windows.h>
#include <conio.h>
long long sr=0;
using namespace std;
void brc()
{system("cls");long long jy=1,wd=3;long long sy=3,wj=3;srand((int)time(0));long long n=rand()%15+1;cout<<" 你是"<<n<<"号"<<endl;cout<<" 正在分配身份"<<endl;Sleep(1500);long long m[20];for(long long i=1;i<=15;i++)m[i]=1;long long s[20]={0};long long yy[20]={0};long long l=0,w=0,j=0,p=0;for(long long i=1;i<=15;i++){do{long long a=rand()%4+1;if(a==1&&l<1){l++;s[i]=1;sr=i;}else if(a==2&&w<2){w++;s[i]=2;}else if(a==4&&p<3){p++;s[i]=4;}else if(a==3&&j<9){j++;s[i]=3;}}while(s[i]==0);}if(s[n]==1)cout<<" 你是>>杀手<<"<<endl;else if(s[n]==2)cout<<" 你是>>预言家<<"<<endl;else if(s[n]==3)cout<<" 你是>>平民<<"<<endl;elsecout<<" 你是>>法师<<"<<endl;cout<<" 游戏将在5秒后开始"<<endl; Sleep(5000);long long c=15;long long f=0,flag=0;long long day=1;long long lr;long long tp[20]={0};do{lr=0;system("cls");cout<<" 第"<<day<<"晚开始"<<endl;cout<<"你是"<<n<<"号"<<endl;long long x;for(long long i=1;i<=15;i++) {if(i==n&&m[n]==1){if(s[n]==1){cout<<" 你是杀手"<<endl;for(long long j=1;j<=15;j++)if(m[j]==1&&s[j]!=1)cout<<j<<" ";cout<<endl;cout<<" 你选择杀掉"<<endl; long long a;cin>>a;m[a]=0;cout<<endl;cout<<" 杀手杀了"<<a<<"号"; if(s[a]==1)cout<<"(杀手)"<<endl;else if(s[a]==2)cout<<"(预言家)"<<endl;else if(s[a]==3)cout<<"(平民)"<<endl;elsecout<<"(法师)"<<endl;c--;} elseif(s[n]==2){cout<<" 你是预言家"<<endl;cout<<" ";for(long long j=1;j<=15;j++)if(m[j]==1)cout<<j<<" ";cout<<endl<<" 你选择预言谁的身份"<<endl;long long a;cin>>a;if(s[a]==1){cout<<" "<<a<<"号是杀手,请注意"<<endl;Sleep(1000);}elsecout<<" "<<a<<"号是好人"<<endl; }}else if(s[i]==1&&m[i]==1){long long a;do{a=rand()%15+1;}while(a==i||m[a]==0||s[a]==1);cout<<" 杀手杀掉了"<<a<<"号"; if(s[a]==1)cout<<"(杀手)"<<endl;else if(s[a]==2)cout<<"(预言家)"<<endl;else if(s[a]==3)cout<<"(平民)"<<endl;elsecout<<"(法师)"<<endl;m[a]=0;c--;break;//}else if(s[i]==2){if(flag==0||m[flag]==0){long long a;do{a=rand()%15+1;}while(a==i||m[a]==0);if(s[a]==1)yy[a]=1; else if(s[a]==3)yy[a]=3;} }else if(s[i]==4){f=0;while(f==0){long long a;a=rand()%3+1;if(a==3)break;if(a==1){if(sy>0){sy--;f=1; long long b;do{b=rand()%15+1;b=rand()%15+1;}while(b==i||m[b]==0);m[b]=0;cout<<" 法师毒死了"<<b<<"号"; if(s[b]==1)cout<<"(杀手)"<<endl;else if(s[b]==2)cout<<"(预言家)"<<endl;else if(s[b]==3)cout<<"(平民)"<<endl;c--;if(s[b]==1&&n!=sr){cout<<endl<<" "<<sr<<"号是杀手!"; cout<<endl<<" 杀手已死亡!"<<endl;cout<<" 游戏结束"<<endl;return ;}break;//}}else if(a==2&&day>1){if(jy>0){jy--;f=1; long long b;do{b=rand()%15+1;}while(b==i||m[b]==1);c++;cout<<" 法师复活了"<<b<<"号"<<endl;m[b]=1;if(m[sr]==0&&n!=sr){cout<<endl<<" "<<sr<<"号是杀手!"; cout<<endl<<" 杀手已死亡!"<<endl;cout<<" 游戏结束"<<endl;return ;}break;//}}}}}if(s[n]==4){cout<<" 你是法师"<<endl;cout<<"存活状况:"<<endl; for(long long j=1;j<=15;j++)if(m[j]==1)cout<<j<<" ";cout<<endl;cout<<" 你选择 1.* 杀 *还是 2.* 救 * 3.* 啥都不做 *"<<endl;long long a,f=0;while(f==0){cin>>a;if(a==3) break;if(a==1){if(wd>0){wd--;f=1; cout<<" 你选择了杀人"<<endl;for(long long i=1;i<=15;i++)if(m[i]==1)cout<<i<<" ";cout<<endl; long long b;cin>>b;if(s[b]==1)cout<<"(杀手)"<<endl;else if(s[b]==2)cout<<"(预言家)"<<endl;else if(s[b]==3)cout<<"(平民)"<<endl;elsecout<<"(法师)"<<endl;m[b]=0;c--; if(m[sr]==0&&n!=sr){cout<<endl<<" "<<sr<<"号是杀手!"; cout<<endl<<" 杀手已死亡!"<<endl;cout<<" 游戏结束"<<endl;return ;}}else{cout<<">>毒药<<不足"<<endl; }}else if(a==2){if(wj>0){wj--;f=1; cout<<"你选择了复活"<<endl;cout<<"阵亡名单:"<<endl;for(long long i=1;i<=15;i++)if(m[i]==0)cout<<i<<"号,身份:"<<s[i]<<" "<<endl;;long long b;cin>>b;m[b]=1;c++;}else{cout<<">>复活药水<<不足"<<endl; }}}}Sleep(1000);long double p[20]={0};cout<<" 第"<<day<<"晚结束"<<endl;cout<<endl;if(m[n]==0){cout<<" 你已经>>死<<了"; break;}cout<<" 存活:"<<endl;cout<<" ";for(long long i=1;i<=15;i++)if(m[i]==1)cout<<i<<" ";cout<<endl;cout<<" 请投票...."<<endl;for(long long i=1;i<=15;i++){if(i==n&&m[n]==1){cout<<endl;cout<<" 你选择投几号"<<endl; long long a=99;while(a==99) {cin>>a;if(a==99)for(long long i=1;i<=15;i++)if(m[i]==1)cout<<" "<<i<<"."<<s[i]<<endl;}if(s[i]==3&&day>4)p[a]+=1.5;elsep[a]++; cout<<endl;cout<<" "<<i<<"->"<<a<<endl;if(s[a]==3){tp[a]=i;}}else if(s[i]==1&&m[i]==1){long long a;do{a=rand()%15+1; }while(m[a]==0||a==i||s[a]==1);p[a]++;cout<<" "<<i<<"->"<<a<<endl;if(s[a]==3){tp[a]=i;}}else if(s[i]==2&&m[i]==1){if(flag!=0){p[f]++;cout<<" "<<i<<"->"<<flag<<endl;}else{long long a;do{a=rand()%15+1; }while(m[a]==0||a==i||yy[a]==3);p[a]++;if(s[a]==3) {tp[a]=i;}cout<<" "<<i<<"->"<<a<<endl;}} else if(s[i]==3&&m[i]==1){if(tp[i]==0){long long a;do{a=rand()%15+1; }while(m[a]==0||a==i);p[a]++;cout<<" "<<i<<"->"<<a<<endl;}else{if(m[tp[i]]==1){p[tp[i]]++;cout<<" "<<i<<"->"<<tp[i]<<endl;}else{long long a;do{a=rand()%15+1; }while(m[a]==0||a==i);p[a]++;cout<<" "<<i<<"->"<<a<<endl;}}}else if(s[i]==4&&m[i]==1){long long a;do{a=rand()%15+1; }while(m[a]==0||a==i);p[a]++;cout<<" "<<i<<"->"<<a<<endl;}}system("cls");cout<<" 投票情况:"<<endl;for(long long i=1;i<=15;i++)if(m[i]==1)cout<<" "<<i<<"号"<<" 票数:"<<p[i]<<endl; long long sw,max=-100; for(long long i=1;i<=15;i++){if(p[i]>max){sw=i;max=p[i];}}m[sw]=0;cout<<" "<<sw<<"死了"<<endl;c--;cout<<" "<<sw<<"号的身份是"; if(s[sw]==1)cout<<"杀手"<<endl;else if(s[sw]==2)cout<<"预言家"<<endl;else if(s[sw]==3)cout<<"平民"<<endl;else cout<<"法师"<<endl; if(s[sw]==1&&n!=sr){cout<<endl<<" "<<sr<<"号是杀手!"; cout<<endl<<" 杀手已死亡!"<<endl;cout<<" 游戏结束"<<endl;return ;}day++; if(s[n]!=1) {for(long long i=1;i<=15;i++)if(s[i]==1&&m[i]==1)lr=1;}else{if(s[n]==1&&c==2)lr=0;}system("pause"); cout<<endl;if(m[sr]==0&&n!=sr){cout<<endl<<" "<<sr<<"号是杀手!"<<endl; cout<<endl<<" 杀手已死亡!"<<endl;cout<<" 游戏结束"<<endl;return ;}}while(m[n]==1&&c>1);if(sr==n&&m[n]==1){cout<<" 你杀掉了所有人!!!"<<endl;}cout<<" 游戏结束"<<endl;return ;
}
int main()
{srand((int)time(0)); char a='1';while(1){system("cls");cout<<" 杀手游戏"<<endl;cout<<"------------------------------------------------------------------------------------------------------------------------";cout<<" 1.开始游戏"<<endl;cout<<" 2.查看游戏规则"<<endl;a=getch();if(a=='1'){cout<<" 1. 15人场"<<endl;cout<<" 2. 30人娱乐战(10猎人)<敬请期待>"<<endl;a='2';while(a=='2'){a=getch();switch(a){case '1':brc();break;}if(a=='1')break;}if(a=='1')break;}else if(a=='2'){cout<<"杀手:每当晚上的时候可使用杀人权杀掉一人"<<endl;//1cout<<"预言家:每天晚上可以知道一个人的身份"<<endl;//2 cout<<"平民:无技能,当玩家是平民时,在第5天拥有1.5票的投票权"<<endl;//3cout<<"猎人:此身份仅限于30人娱乐局中,死亡后可带走一人"<<endl; cout<<"投票细则:\n(游戏中除了你以外全是由超级AI人工代替)"<<endl;cout<<"预言家如果预言到杀手将一直对他投票,如果预言到好人将永远不会对他投票"<<endl;cout<<"平民将投上一个晚上对他投票他的人"<<endl;cout<<"********利用好超级AI游戏规则找出杀手**********"<<endl;system("pause");}}return 0;
}
在这里给大家一个编译器(直接下载)(很多人都有了):DEV-C++
dev-c++ 下载
相关文章:
c++ 小游戏(2种)
目录 介绍 游戏1 游戏2 介绍 因为DEV C的编译环境较小,所以大部分的游戏代码都无法在此上运行,我收集了一部分摸鱼小游戏的源码,在此呈现,如果有能在DEV C上运行的我会先作声明: 游戏1 扫雷 #include<stdio.…...
电阻详解:定义、公式、影响因素及电阻器类型解析
电阻定义 电阻是指当电流通过导体时,导体对电流流动所呈现的阻碍作用的物理量。它是电路元件的一个基本参数,用于量化导体阻止电荷定向移动的能力。#电阻#的大小决定了通过导体的电流与两端电压之间的关系,遵循欧姆定律,即在恒定…...
LabVIEW动车组谐波分析与检测系统
LabVIEW动车组谐波分析与检测系统 随着中国高速铁路网络的快速发展,动车组数量和运行速度的不断提升,其产生的谐波问题对电网产生了不小的影响。基于图形化编程语言LabVIEW,开发了一套动车组谐波分析与检测系统,旨在实时监控与分…...
H5移动端 Vue3 + vue-virtual-scroller 实现长列表性能优化
文章目录 安装 vue-virtual-scroller引入📢注意事项使用基础使用上拉加载下拉刷新 移动端在渲染长列表时 大量dom节点的渲染和重绘重排会导致页面卡顿、滚动不流畅、设备耗电加快、影响移动设备电池寿命等性能问题 这里分享使用【虚拟滚动】方案进行长列表优化&…...
第20章-IP路由原理
目录 1. 概述 2. 路由表 3. 查表规则 4. 路由来源类型 5. 路由优先级 6. 路由的度量值 7. 路由器写表规则 1. 概述 1. 定义 路由器:异构网络互联机制; 路由:指导路由器如何进行数据发送的路径信息; 路由表:目的地址、下一跳、出接口等; 2. IP连通的条件 沿途的每…...
SBCFormer:能够在单板计算机上以每秒1帧的速度进行全尺寸ImageNet分类的轻量级网络
文章目录 摘要1、引言2、 相关工作2.1、用于移动设备的卷积网络2.2、移动设备上的ViT和CNN-ViT混合模型2.3、评估指标 3、CNN-ViT 混合模型在低端CPU上的应用3.1、设计原则3.2、SBCFormer的整体设计3.3、SBCFormer块3.4、改进的注意力机制 4、实验结果4.1、实验设置4.2、ImageN…...
【opencv】教程代码 —features2D(8)AKAZE 特征点匹配和图像拼接
graf1.png graf3.png <?xml version"1.0"?> <opencv_storage> <H13 type_id"opencv-matrix"><rows>3</rows><cols>3</cols><dt>d</dt><data>7.6285898e-01 -2.9922929e-01 2.2567123e02…...
ssm基于springboot的数字家庭亲子视频分享网站java+vue
本网站的模块主要分为前台展示模块和后台管理模块。 前台展示模块功能如下: 1)家庭照片模块 主要功能是对家庭照片的分类显示,如旅游、运动、生活、工作、学习等,每一类中的照片按时间轴展示出来。 2)家庭亲子视频模块…...
产品经理功法修炼(1)之自我管理
点击下载《产品经理功法修炼(1)之自我管理》 1. 前言 产品经理的能力修炼并非局限于某一技能的速成,而是需要全面参与到产品的整个生命周期中,通过不断的实践来逐步提升自己的各项能力。尽管在企业的日常运作中,我们不可能身兼数职去扮演每一个角色,但作为产品的核心负…...
2024年04月IDE流行度最新排名
点击查看最新IDE流行度最新排名(每月更新) 2024年04月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多,这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…...
17.应用负载压力测试
早些点,下午题考,最近几年出现的少; 备考较为简单;历年真题相似度高; 主要议题: 1.负载压力测试概述 注意这些测试细微的差别; 负载测试和压力测试的方法比较相似,但是目的不同&a…...
Gauss到底是不是国产数据库
华为GaussDB数据库深度解析 引言 在数字化转型的浪潮中,数据成为企业最宝贵的资产之一。如何高效地管理和利用这些数据,成为企业面临的一大挑战。数据库作为数据存储和管理的核心系统,其性能、安全性、可用性和扩展性等特性直接影响到企业的…...
spark sql执行引擎原理及配置
如果我们想要给上层开发人员配置好一个统一的sql开发界面,让他们统一通过sql开发即可,可通过spark中的thriftserver服务实现,与hive中的thriftserver类似,配置好该服务后,上层通过db client或者代码中通过jdbc连接即可…...
【C语言基础】:自定义类型(二) -->联合和枚举
文章目录 一、联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员的结构体和联合体对比1.4 联合体大小的计算1.5 联合体练习 二、枚举类型2.1 枚举类型的声明2.2 枚举的优点 书山有路勤为径,学海无涯苦作舟。 创作不易,宝子们!如果这篇…...
【授时防火墙】GPS北斗卫星授时信号安全防护装置系统
【授时防火墙】GPS北斗卫星授时信号安全防护装置系统 【授时防火墙】GPS北斗卫星授时信号安全防护装置系统 1、装置概述 卫星信号安全防护装置(以下简称“防护装置”)是一款专门针对卫星导航授时安全的设备。该设备能接收 BD 系统和 GPS 系统卫星信号&am…...
关于 MySQL 优化(详解)
文章目录 关于 MySQL 优化一、硬件方面的优化1、关于 CPU2、关于内存3、关于磁盘 二、MySQL 配置文件1、 default-time-zone8:002、interactive_timeout 1203、wait_timeout 1204、open_files_limit 102405、group_concat_max_len 1024006、usermysql7、character-set-serv…...
Hive详解(5)
Hive 窗口函数 案例 需求:连续三天登陆的用户数据 步骤: -- 建表 create table logins (username string,log_date string ) row format delimited fields terminated by ; -- 加载数据 load data local inpath /opt/hive_data/login into table log…...
阿里云效codeup如何执行github flow工作流
在阿里云效中执行 GitHub 工作流,实质上是在使用 Git 进行版本控制的过程中遵循 GitHub Flow 的原则。GitHub Flow 是一种简洁高效的工作流程,特别适用于追求快速迭代的团队。下面是在阿里云效中执行 GitHub 工作流的基本步骤: 1. 准备工作 …...
node.js的模块化 与 CommonJS规范
一、node.js的模块化 (1)什么是模块化? 将一个复杂的程序文件依据一定的规则拆分成为多个文件的过程就是模块化 在node.js中,模块化是指把一个大文件拆分成独立并且相互依赖的多个小模块,将每个js文件被认为单独的一个模块;模块…...
RK3588平台开发系列讲解(PWM开发篇)
目录 前⾔ 驱动文件 DTS 节点配置 PWM 流程 PWM 使⽤ 常⻅问题 PWM 在 U-Boot 与 kernel 之间的衔接问题 PWM Regulator 时 PWM pin 脚上下拉配置问题 前⾔ 脉宽调制( PWM , Pulse Width Modulation )功能在嵌⼊式系统中是⾮常常⻅的…...
宝塔面板操作一个服务器域名部署多个网站
此处记录IP一样,端口不一样的操作方式: 宝塔面板操作: 1、创建第一个网站: 网站名用IP地址,默认80端口。 创建好后,直接IP访问就可以了。看到自带的默认首页 2、接下来部署第二个网站: 仍然是…...
surfer绘制等值线图
surfer介绍 Surfer软件,是美国Golden Software公司编制的一款以画三维图的软件。该软件具有强大的插值功能和绘制图件能力,可用来处理XYZ数据,是地质工作者常用的专业成图软件(来源于百度百科)。 surfer可以用来绘制…...
免费开源的 AI 绘图工具 ImgPilot
免费开源的 AI 绘图工具 ImgPilot 分类 开源分享 项目名: ImgPilot -- 通过提示词及涂鸦生成图片 Github 开源地址: GitHub - leptonai/imgpilot: Turn the draft into amazing artwork with the power of Real-Time Latent Consistency Model 在线地址ÿ…...
Java系统架构设计:构建稳定高效的软件基石
在当今数字化时代,软件系统的稳定性、可扩展性和性能至关重要。Java作为一种广泛应用的编程语言,其系统架构设计对于软件的成功实施具有决定性的影响。本文将探讨Java系统架构设计的重要性以及设计过程中的关键要素。 首先,Java系统架构设计…...
【IntermLM2】学习笔记
微调方式 在大模型的下游应用中,可以有两种微调方式 增量续训 即无监督的方式,让模型学习一些新知识,比如某些垂直领域的新知识 使用的数据有:书籍,文章,代码等有监督微调 为了让模型学会理解指令进行对话…...
【二叉树】Leetcode 230. 二叉搜索树中第K小的元素【中等】
二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例1: 输入:root [3,1,4,null,2], k 1 输出:1 解…...
JS中常用的几种事件
在js中分为多种事件,比如点击事件,焦点事件,加载事件,鼠标事件等等... ... 点击事件 onclick点击事件,ondblclick双击事件 焦点事件 onblur元素失去焦点,onfocus元素获取焦点 加载事件 onload一个页面…...
Android WebView的使用与后退键处理
目录 前言首先,我们需要在布局文件中添加webView组件在Activity中获取webView实例,并加载网页内容 前言 webView是Android中常用的组件之一,用于展示网页内容。它可以加载HTML文件、URL链接等网页内容,并提供交互功能。在使用webV…...
【备忘录】Docker 2375远程端口安全漏洞解决
最近为了项目需要,把docker 的远程端口2375 给开放了。不出意外出意外了。没多久,网站报流量告警,第一反应就是开放2375这个端口问题导致,毫不迟疑直接切换服务器。关闭该台服务器的docker服务,并逐步清理掉挖矿进程&a…...
343. 整数拆分(力扣LeetCode)
文章目录 343. 整数拆分题目描述动态规划 343. 整数拆分 题目描述 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释:…...
外包公司做网站图片哪里整的/站长统计
本文介绍了车载通信系统的安全要求,以及HSM硬件安全模块和软件安全结构的相关内容。 本文来自本实验室龚思陈的学习笔记。 车载通信系统的安全要求 攻击的种类: 对安全的攻击 (1) 未授权的突然刹车 (2) 袭击主动制动功能 (3) 篡改危险警告信息 对…...
网站定位授权开启权限怎么做/网络广告营销
1. Dubbo是什么? 只是一个框架 Hibernate是持久层框架,SpringMVC是MVC的框架,而Dubbo是分布式服务框架。 是框架而不是服务 所以不是像Tomcat或Memcached可以单独启动,它必须依附于应用才有意义。引入dubbo.jar的应用,…...
网站建设需要的语言/北京seo网络推广
一.什么是代码片段(code snippets) 代码片段:指用来存放程序执行代码的一块内存区域。 诸如很多开发工具基本都集成了这一功能,可以说你在coding的时候经常都在使用它,或许你不知道你在使用的正是snippet的…...
怎样做网站的背景图片/推广引流话术
使用的apache的httpclient的jar包,做的http图片上传,上传时,服务器总返文件格式不对。后来发现,是由于在创建FileBody时,使用了默认的ContentType引起的。所以服务器有判断文件类型的要求的时候,创建FlieBo…...
wordpress 文章列表目录颜色/seo关键词布局
模板介绍 校园毕业答辩汇报PPT模板。一套论文答辩幻灯片模板,内含蓝色多种配色,风格设计,动态播放效果,精美实用。 希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT或PPTX等格式&#x…...
wordpress cn/百度直播
这里给大家介绍我在实际工作中用的两种切图方法,一种是“图层切图”,这种切图方式比较适合切形状不规则的png格式的小图标,如企业logo等等,而另外一种是“切片切图”,这种切图方式比较适合形状规则的jpg格式的大图。 一…...