【c语言】飞机大战终

效果展示

效果演示

源码展示

#include<stdio.h>
#include <graphics.h>
#include <assert.h>
#include <stdlib.h>
#include<conio.h>//_getch();
#include <time.h>
#include <math.h>
#include<mmsystem.h>//包含多媒体设备接口头文件#pragma comment(lib,"winmm.lib")//加载静态库
#define PI 3.1415926
#define HEIGHT  503
#define WIDTH 700
int score = 0;
static int enemy = 0;
static int mode = 0;
IMAGE img_bk, img_plane, img_a, img_b, img_c, img_abullet, img_bbullet, img_cbullet, img_planebullet, img_tmp, img_start, img_sta, img_fail, img_history,img_hp,img_nam,img_score,img_select;
typedef struct bullet
{float x, y;float vx, vy;int  isexist;struct bullet* next;}list;
list* planebullet = NULL;
list* abullet = NULL;
list* bbullet = NULL;
void pushback2(list** pphead, float vx, float vy);
void pushback3(list** pphead, float vx, float vy);
void pushback1(list** pphead, list* newnode);//尾插;
struct aircraft
{int x, y;int width;int height;int speed;int bornflag;int hp;};
aircraft plane, a, b, c;
static int dir1 = 1;
bool Timer(int ms, int id)
{static DWORD t[10];if (clock() - t[id] > ms){t[id] = clock();return true;}return false;
}
void bgm()
{    //打开音乐mciSendString("open ./bgm.MP3", 0, 0, 0);//后面参数不用管//播放音乐mciSendString("play ./bgm.MP3", 0, 0, 0);//后面参数不用管
}
void bgm1()
{mciSendString("close ./shoot.MP3", 0, 0, 0);//后面参数不用管//打开音乐mciSendString("open ./shoot.MP3", 0, 0, 0);//后面参数不用管//播放音乐mciSendString("play ./shoot.MP3", 0, 0, 0);//后面参数不用管
}
void bgm2()
{    //打开音乐mciSendString("open ./boom.MP3", 0, 0, 0);//后面参数不用管//播放音乐mciSendString("play ./boom.MP3", 0, 0, 0);//后面参数不用管
}
void bgm3()
{mciSendString("close ./change.MP3", 0, 0, 0);//后面参数不用管//打开音乐mciSendString("open ./change.MP3", 0, 0, 0);//后面参数不用管//播放音乐mciSendString("play ./change.MP3", 0, 0, 0);//后面参数不用管
}
void bgm4()
{mciSendString("open ./win.MP3", 0, 0, 0);//后面参数不用管//播放音乐mciSendString("play ./win.MP3", 0, 0, 0);//后面参数不用管
}
void datainit()
{plane.x = 150;plane.y = 150;//a = { 0,0 };/*b = { 300,0 };*//*c = { 450,0 };*/a.speed = 1;a.bornflag = 1;b.bornflag = 1;c.bornflag = 1;a.width = 100;a.height = 100;b.speed = 1;b.width = 80;b.height = 100;c.height = 70;c.width = 70;c.speed = 3;plane.hp = 500;a.hp = 500;b.hp = 500;c.hp = 500;}
list* BuyabulletNode(float vx, float vy)
{list* newnode = (list*)malloc(sizeof(list));//空间申请assert(newnode);//断言,新结点是否申请到了newnode->vx = vx;//数据赋值newnode->vy = vy;//数据赋值newnode->x = a.x + a.width / 2-10;newnode->y = a.y+80;newnode->isexist = 1;newnode->next = NULL;//指向的地址赋值return newnode;//将申请好的空间首地址返回回去}
list* BuybbulletNode(float vx, float vy)
{list* newnode = (list*)malloc(sizeof(list));//空间申请assert(newnode);//断言,新结点是否申请到了newnode->vx = vx;//数据赋值newnode->vy = vy;//数据赋值newnode->x = b.x + b.width / 2 - 10;newnode->y = b.y + 80;newnode->isexist = 1;newnode->next = NULL;//指向的地址赋值return newnode;//将申请好的空间首地址返回回去}
list* BuyplanebulletNode(float vx, float vy)
{list* newnode = (list*)malloc(sizeof(list));//空间申请assert(newnode);//断言,新结点是否申请到了newnode->vx = vx;//数据赋值newnode->vy = vy;//数据赋值newnode->x = plane.x + plane.width / 2+17;newnode->y = plane.y;newnode->isexist = 1;newnode->next = NULL;//指向的地址赋值return newnode;//将申请好的空间首地址返回回去}
void drawAlpha(IMAGE* picture, int  picture_x, int picture_y) //x为载入图片的X坐标,y为Y坐标
{// 变量初始化DWORD* dst = GetImageBuffer();    // GetImageBuffer()函数,用于获取绘图设备的显存指针,EASYX自带DWORD* draw = GetImageBuffer();DWORD* src = GetImageBuffer(picture); //获取picture的显存指针int picture_width = picture->getwidth(); //获取picture的宽度,EASYX自带int picture_height = picture->getheight(); //获取picture的高度,EASYX自带int graphWidth = getwidth();       //获取绘图区的宽度,EASYX自带int graphHeight = getheight();     //获取绘图区的高度,EASYX自带int dstX = 0;    //在显存里像素的角标// 实现透明贴图 公式: Cp=αp*FP+(1-αp)*BP , 贝叶斯定理来进行点颜色的概率计算for (int iy = 0; iy < picture_height; iy++){for (int ix = 0; ix < picture_width; ix++){int srcX = ix + iy * picture_width; //在显存里像素的角标int sa = ((src[srcX] & 0xff000000) >> 24); //0xAArrggbb;AA是透明度int sr = ((src[srcX] & 0xff0000) >> 16); //获取RGB里的Rint sg = ((src[srcX] & 0xff00) >> 8);   //Gint sb = src[srcX] & 0xff;              //Bif (ix >= 0 && ix <= graphWidth && iy >= 0 && iy <= graphHeight && dstX <= graphWidth * graphHeight){if ((ix + picture_x) >= 0 && (ix + picture_x) <= graphWidth)	//防止出边界后循环显示{dstX = (ix + picture_x) + (iy + picture_y) * graphWidth; //在显存里像素的角标int dr = ((dst[dstX] & 0xff0000) >> 16);int dg = ((dst[dstX] & 0xff00) >> 8);int db = dst[dstX] & 0xff;draw[dstX] = ((sr * sa / 255 + dr * (255 - sa) / 255) << 16)  //公式: Cp=αp*FP+(1-αp)*BP  ; αp=sa/255 , FP=sr , BP=dr| ((sg * sa / 255 + dg * (255 - sa) / 255) << 8)         //αp=sa/255 , FP=sg , BP=dg| (sb * sa / 255 + db * (255 - sa) / 255);              //αp=sa/255 , FP=sb , BP=db}}}}
}
void selectplane()
{while (1){BeginBatchDraw();loadimage(&img_select, "./22.png");drawAlpha(&img_select, 0, 0);loadimage(&img_select, "./23.png");drawAlpha(&img_select, 0, 0);loadimage(&img_select, "./24.png");drawAlpha(&img_select, 0, 400);if (mode == 0){loadimage(&img_plane, "./1.png");drawAlpha(&img_plane, 300, 200);}if (mode == 1){loadimage(&img_plane, "./10.png");drawAlpha(&img_plane, 300, 200);}else if (mode == 2){loadimage(&img_plane, "./11.png");drawAlpha(&img_plane, 300, 200);}else if (mode == 3){loadimage(&img_plane, "./12.png");drawAlpha(&img_plane, 300, 200);}else if (mode == 4){loadimage(&img_plane, "./13.png");drawAlpha(&img_plane, 300, 200);}else if (mode == 5){loadimage(&img_plane, "./25.png");drawAlpha(&img_plane, 300, 200);}if (GetAsyncKeyState(VK_LEFT) || GetAsyncKeyState('A') && Timer(300, 1)){bgm3();if (mode == 0){mode = 0;}else{mode--;}}if (GetAsyncKeyState(VK_RIGHT) || GetAsyncKeyState('D') && Timer(300, 1)){bgm3();if (mode == 5){mode = 5;}else{mode++;}}if ((GetAsyncKeyState(VK_SPACE)) && Timer(300, 1)){break;}EndBatchDraw();}}void load()
{loadimage(&img_bk, "./back.png");if (mode == 0){loadimage(&img_plane, "./1.png");}loadimage(&img_a, "./2.png");loadimage(&img_b, "./3.png");loadimage(&img_c, "./4.png");loadimage(&img_abullet, "./5.png");loadimage(&img_bbullet, "./6.png");loadimage(&img_cbullet, "./7.png");if (mode == 0){loadimage(&img_planebullet, "./8.png");}if (mode == 1){loadimage(&img_planebullet, "./8.png");}if (mode == 2){loadimage(&img_planebullet, "./5.png");}if (mode == 3){loadimage(&img_planebullet, "./16.png");}if (mode == 4){loadimage(&img_planebullet, "./7.png");}if (mode == 5){loadimage(&img_planebullet, "./19.png");}}
void draw()
{putimage(0, 0,&img_bk);loadimage(&img_nam, "./20.png");drawAlpha(&img_nam, 500, 0);if (plane.hp == 500){//img_hploadimage(&img_hp, "./19.png");drawAlpha(&img_hp, 628, 0);}if (plane.hp == 1000){//img_hploadimage(&img_hp, "./19.png");loadimage(&img_hp, "./19.png");drawAlpha(&img_hp, 628, 0);drawAlpha(&img_hp, 652, 0);}if (plane.hp == 1500){//img_hploadimage(&img_hp, "./19.png");loadimage(&img_hp, "./19.png");loadimage(&img_hp, "./19.png");drawAlpha(&img_hp, 628, 0);drawAlpha(&img_hp, 652, 0);drawAlpha(&img_hp, 676, 0);}if (plane.x > -1 && plane.x < WIDTH && plane.y>-1 && plane.y + 48< HEIGHT){drawAlpha(&img_plane, plane.x, plane.y);}else{putimage(plane.x, plane.y, &img_plane);}if (a.x > -1 && a.x < WIDTH && a.y>0&& a.y + 98 < HEIGHT){drawAlpha(&img_a, a.x, a.y);}else{putimage(a.x, a.y, &img_a);}if (b.x > -1 && b.x < WIDTH && b.y>-1 && b.y +120 < HEIGHT){drawAlpha(&img_b, b.x, b.y);}else{putimage(b.x, b.y, &img_b);}if (c.x > -1 && c.x < WIDTH && c.y>-1 && c.y + 120 < HEIGHT){drawAlpha(&img_c, c.x, c.y);}else{putimage(c.x, c.y, &img_c);}}void ufoamove()
{static int cnt = 0;if (a.bornflag == 1){a.bornflag = 0;a.x = rand() % (WIDTH - a.width);a.y = -50;}if (a.y > 200){dir1 = 0;}else if (a.y < -150){dir1 = 1;a.bornflag = 1;}if (1 == dir1){a.y += a.speed;}else{a.y -= a.speed;}if (++cnt % 50 == 0){pushback2(&abullet, 0, 10);}if (cnt > 99999){cnt = 0;}}
void ufobmove()
{static int num = 0;static int step = b.speed;if (b.bornflag == 1){b.bornflag = 0;b.x = rand() % (WIDTH - b.width);b.y = -b.height;}if (b.x <= 0 || b.x + b.width >= WIDTH){step = -step;}b.x += step;b.y++;if (b.y >= HEIGHT){b.bornflag = 1;}if (++num % 100 == 0){pushback3(&bbullet, 0, 10);/*for (int i = 0; i < 10; i++){float angle = i * 2 * PI / 10;float vx = 1* sin(angle);float vy = 1 * cos(angle);pushback3(&bbullet, vx, vy);}*/}if (num > 99999){num = 0;}}void pushback1(list** pphead,float vx,float vy)//尾插
{list* newnode = BuyplanebulletNode(vx, vy);if (*pphead == NULL)//链表无结点{*pphead = newnode;// 将创建好的头节点的地址给给*pphead,作为新头节点的地址}else{list* tail = *pphead;//定义一个指针,先指向头结点的地址while (tail->next != NULL)//循环遍历找尾结点{tail = tail->next;//指针指向下一个结点}tail->next = newnode;//找到尾结点,将尾结点的next存放新接结点的地址}}
void pushback2(list** pphead, float vx, float vy)//尾插
{list* newnode = BuyabulletNode(vx, vy);if (*pphead == NULL)//链表无结点{*pphead = newnode;// 将创建好的头节点的地址给给*pphead,作为新头节点的地址}else{list* tail = *pphead;//定义一个指针,先指向头结点的地址while (tail->next != NULL)//循环遍历找尾结点{tail = tail->next;//指针指向下一个结点}tail->next = newnode;//找到尾结点,将尾结点的next存放新接结点的地址}}
void pushback3(list** pphead, float vx, float vy)//尾插
{list* newnode = BuybbulletNode(vx, vy);if (*pphead == NULL)//链表无结点{*pphead = newnode;// 将创建好的头节点的地址给给*pphead,作为新头节点的地址}else{list* tail = *pphead;//定义一个指针,先指向头结点的地址while (tail->next != NULL)//循环遍历找尾结点{tail = tail->next;//指针指向下一个结点}tail->next = newnode;//找到尾结点,将尾结点的next存放新接结点的地址}}
void removebullet(list** pplist)
{if (*pplist == NULL)return;list* cur = *pplist;list* prev = NULL;while (cur != NULL){if (cur->isexist == 0){if (*pplist == cur){*pplist = cur->next;free(cur);cur = *pplist;}else{prev->next = cur->next;free(cur);cur = prev;}}else{prev = cur;cur = cur->next;}}}void listchangexy(list** pplist)
{if (*pplist == NULL)return;list* cur = *pplist;while (cur != NULL){cur->x += cur->vx;cur->y += cur->vy;if ((cur->y<0 )|| (cur->y>HEIGHT) || (cur->x >0) || (cur->x <WIDTH))cur->isexist = 0;cur = cur->next;}}void showbullet()
{static int count1 = 0;listchangexy(&planebullet);if (++count1 == 20){removebullet(&planebullet);removebullet(&abullet);removebullet(&bbullet);}///}if (count1 > 99999){count1 = 0;}for (list* cur = planebullet; cur!= NULL; cur = cur ->next){if (mode == 0){if (cur->x > 5 && cur->x + 15 < WIDTH && cur->y > 5 && cur->y + 15 < HEIGHT){drawAlpha(&img_planebullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_planebullet);}}if (mode == 1){if (cur->x > 5 && cur->x + 15 < WIDTH && cur->y > 5 && cur->y + 15 < HEIGHT){drawAlpha(&img_planebullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_planebullet);}}if (mode == 2){if (cur->x > 5 && cur->x + 25 < WIDTH && cur->y > 5 && cur->y + 35 < HEIGHT){drawAlpha(&img_planebullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_planebullet);}}if (mode == 3){if (cur->x > 5 && cur->x + 15 < WIDTH && cur->y > 5 && cur->y + 40 < HEIGHT){drawAlpha(&img_planebullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_planebullet);}}if (mode == 4){if (cur->x > 5 && cur->x + 25< WIDTH && cur->y > 5 && cur->y + 43 < HEIGHT){drawAlpha(&img_planebullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_planebullet);}}if (mode == 5){if (cur->x > 5 && cur->x + 25< WIDTH && cur->y > 5 && cur->y + 43 < HEIGHT){drawAlpha(&img_planebullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_planebullet);}}if (cur->x + 10 < a.x || cur->x > a.x + a.width || cur->y + 10 > a.y || cur->y > a.y + a.height){}else{cur->isexist = 0;score += 600;a.hp -= 500;}if (cur->x + 10 < b.x || cur->x > b.x + b.width || cur->y + 10 > b.y || cur->y > b.y + b.height){}else{cur->isexist = 0;score += 400;b.hp -= 500;}if (cur->x + 10 < c.x || cur->x > c.x + c.width || cur->y + 10 > c.y || cur->y > c.y + c.height){}else{cur->isexist = 0;score += 200;c.hp -= 500;}}listchangexy(&abullet);for (list* cur = abullet; cur != NULL; cur = cur->next){if (cur->x > 5 && cur->x + 25 < WIDTH && cur->y > 5 && cur->y + 30 < HEIGHT){drawAlpha(&img_abullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_abullet);}if (cur->x + 20 < plane.x || cur->x > plane.x + plane.width || cur->y + 30 > plane.y || cur->y > plane.y + plane.height){}else{cur->isexist = 0;plane.hp -= 1000;}}listchangexy(&bbullet);for (list* cur = bbullet; cur != NULL; cur = cur->next){if (cur->x > 5 && cur->x + 15 < WIDTH && cur->y > 5 && cur->y + 20 < HEIGHT){drawAlpha(&img_bbullet, cur->x, cur->y);}else{putimage(cur->x, cur->y, &img_bbullet);}if (cur->x + 10< plane.x || cur->x > plane.x + plane.width || cur->y + 15 > plane.y || cur->y > plane.y + plane.height){}else{cur->isexist = 0;plane.hp -= 1000;}}}void ufocmove()
{static float disx = 0, disy = 0;static float tmpx = 0, tmpy = 0;static float vx = 0, vy = 0;float step = 1000 / c.speed;if (1 == c.bornflag){c.bornflag = 0;tmpx = rand() % (WIDTH - c.width);tmpy = -c.height;disx = plane.x - tmpx;disy = plane.y - tmpy;vx = disx / step;vy = disy / step;}tmpx += vx;tmpy += vy;c.x = (int)(tmpx + 0.5);c.y = (int)(tmpy + 0.5);if (c.x < -c.width){c.bornflag = 1;}if (c.x > WIDTH){c.bornflag = 1;}if (c.y > HEIGHT){c.bornflag = 1;}if (c.hp <= 0){c.bornflag = 1;c.hp = 500;}}void player_move(int speed) //处理飞机移动
{int reload_time = 100;static int fire_start = 0;int tmp = clock();if (GetAsyncKeyState(VK_UP) || GetAsyncKeyState('W')){if (plane.y > 0)plane.y -= speed;}if (GetAsyncKeyState(VK_DOWN) || GetAsyncKeyState('S')){if (plane.y + 51 < HEIGHT)plane.y += speed;}if (GetAsyncKeyState(VK_LEFT) || GetAsyncKeyState('A')){if (plane.x > 0)plane.x -= speed;}if (GetAsyncKeyState(VK_RIGHT) || GetAsyncKeyState('D')){if (plane.x + 51 < WIDTH)plane.x += speed;}if ((GetAsyncKeyState(VK_SPACE))&& Timer(300, 1)){if (mode == 0){//bgm1();pushback1(&planebullet, 0, -20);}if (mode == 1){//bgm1();pushback1(&planebullet, 0, -20);}if (mode == 2){//bgm1();pushback1(&planebullet, 0, -10);}if (mode == 3){//bgm1();pushback1(&planebullet, 0, -10);}if (mode == 4){//bgm1();pushback1(&planebullet, 0, -10);}if (mode == 5){pushback1(&planebullet, 0, -10);}}if (GetAsyncKeyState(VK_SPACE)){bgm1();}}void begin()
{char beginstring[] = "开始游戏";char closestring[] = "退出游戏";char tipstring[] = "游戏说明: 空格:发射子弹";setfillcolor(LIGHTBLUE);solidrectangle(240, 300, 380, 350);//画矩形solidrectangle(240, 360, 380,410);//左上坐标,右下坐标loadimage(&img_start,"./start.jpg");loadimage(&img_sta, "./sta.png");//putimage(0, 0, &img_start);drawAlpha(&img_start,0,0);drawAlpha(&img_sta, 0, 0);settextcolor(RED);setbkmode(TRANSPARENT);settextstyle(30, 0, "楷体");outtextxy(240 + 10, 300 + 10, beginstring);outtextxy(240 + 10, 360 + 10, closestring);outtextxy(130, 250, tipstring);while (1){MOUSEMSG m = GetMouseMsg();//鼠标在矩形显示外框if (m.x >= 240 && m.x <= 380 && m.y >= 300 && m.y <= 350){setlinecolor(RED);rectangle(240 - 5, 300 - 5, 380 + 5, 350 + 5);if (m.uMsg == WM_LBUTTONDOWN){break;}}else if (m.x >= 240 && m.x <= 380 && m.y >= 360 && m.y <= 410){setlinecolor(RED);rectangle(240 - 5, 360 - 5, 380 + 5, 410 + 5);//退出游戏if (m.uMsg == WM_LBUTTONDOWN){exit(0);}}else//没在擦除{setlinecolor(WHITE);rectangle(240 - 5, 300 - 5, 380 + 5, 350 + 5);rectangle(240 - 5, 360 - 5, 380 + 5, 410 + 5);}}}
void crash2()
{if (b.x + b.width<plane.x || b.x>plane.x + plane.width || b.y + b.height<plane.y || b.y>plane.y + plane.height){}else{plane.hp=0;bgm2();Timer(4000, 1);if (plane.hp == 0){loadimage(&img_fail, "./18.png");drawAlpha(&img_fail, 120, 0);loadimage(&img_plane, "./boom5.png");drawAlpha(&img_plane, plane.x, plane.y);if (Timer(3000, 1))exit(0);}}}
void crash1()
{if (a.x + a.width<plane.x || a.x>plane.x + plane.width || a.y + a.height<plane.y || a.y>plane.y + plane.height){}else{plane.hp -= 500;bgm2();Timer(4000, 1);if (plane.hp == 0){loadimage(&img_fail, "./18.png");drawAlpha(&img_fail, 120, 0);loadimage(&img_plane, "./boom5.png");drawAlpha(&img_plane, plane.x, plane.y);if (Timer(3000, 1))exit(0);}}}
void crash3()
{if (c.x + c.width<plane.x || c.x>plane.x + plane.width || c.y + c.height<plane.y || c.y>plane.y + plane.height){}else{plane.hp = 0;bgm2();Timer(4000, 1);if (plane.hp == 0){loadimage(&img_fail, "./18.png");drawAlpha(&img_fail, 120, 0);loadimage(&img_plane, "./boom5.png");drawAlpha(&img_plane, plane.x, plane.y);if (Timer(4000, 1))exit(0);}}}void showScore(int x, int y, int score)
{TCHAR time_text[50];_stprintf_s(time_text, _T("Score:%d"), score);outtextxy(x, y, time_text);
}int main(){initgraph(WIDTH, HEIGHT,CONSOLE_FULLSCREEN);datainit();begin();selectplane();BeginBatchDraw();bgm();while (1){load();draw();ufoamove();ufobmove();ufocmove();player_move(5);crash1();crash2();crash3();showScore(520, 50, score);printf("hp:%d\n", c.hp);if (plane.hp<=0){loadimage(&img_fail, "./18.png");drawAlpha(&img_fail, 120, 0);loadimage(&img_plane, "./boom5.png");drawAlpha(&img_plane, plane.x, plane.y);if (Timer(3000, 1))exit(0);}if (a.hp <= 0){a.bornflag = 1;a.hp = 500;}if (b.hp <= 0){b.bornflag =1;b.hp = 500;}if (score > 10000){bgm4();loadimage(&img_fail, "./26.png");drawAlpha(&img_fail, 100, 0);if (Timer(2000, 1))exit(0);}showbullet();FlushBatchDraw();}EndBatchDraw();getchar();}

还有一些bug,等我考完试了在改改

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

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

相关文章

Unity 打包AB 场景烘培信息丢失

场景打包成 AB 资源的时候&#xff0c;Unity 不会打包一些自带相关的资源 解决办法&#xff1a;在 Project settings > Graphics下设置&#xff08;Automatic 修改成 Custom&#xff09;

基于web的电影院购票系统

**&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;**一 、设计说明 1.1选题动因 …

cnPuTTY 0.80.0.1—PuTTY Release 0.80中文版本简单说明~~

2023-12-18 官方发布了PuTTY 0.80本次发布主要是针对Terrapin攻击(CVE-2023-48795)的修改发布。 更多详细的内容请查看PuTTY Change Log。 有关Terrapin攻击可用简单参考&#xff1a;警告&#xff01;&#xff01;&#xff01;Terrapin攻击(CVE-2023-48795)~~~ 为了缓解此漏洞…

振弦采集仪在地基沉降监测中的应用研究

振弦采集仪在地基沉降监测中的应用研究 振弦采集仪是一种专门用于测量地基沉降的仪器&#xff0c;它采用振弦原理来测量地基的沉降情况。振弦采集仪通过在地基上安装一根细长的弹性振弦&#xff0c;并测量振弦的变形来获得地基沉降的数据。在地基沉降监测中&#xff0c;振弦采…

TypeScript Array(数组)

目录 1、数组初始化 2、Array 对象 3、数组迭代 4、数组在函数中的使用 4.1、作为参数传递给函数 4.2、作为函数的返回值 5、数组方法 数组对象是使用单独的变量名来存储一系列的值。数组非常常用。假如你有一组数据&#xff08;例如&#xff1a;网站名字&#xff09;…

从“五力”看百亿西凤的必然性

执笔 | 文 清 编辑 | 萧 萧 2023年末&#xff0c;西凤成功突破市场阻碍、跑赢行业周期&#xff0c;正式跻身中国百亿白酒品牌阵容。这是一份全行业及全体西凤人“预期之内”的成绩单。 当下&#xff0c;中国白酒已经进入“存量竞争”时代&#xff0c;马太效应使得强者恒强…

8-链表-旋转链表

这是链表的第8篇算法&#xff0c;力扣链接。 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;h…

[足式机器人]Part2 Dr. CAN学习笔记-Ch01自动控制原理

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Ch01自动控制原理 1. 开环系统与闭环系统Open/Closed Loop System1.1 EG1: 烧水与控温水壶1.2 EG2: 蓄水与最终水位1.3 闭环控制系统 2. 稳定性分析Stability2.1 序言2.2 稳定的分类2.3 稳定的对…

【PTA-C语言】编程练习5 - 函数与指针

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习5 - 函数与指针 6-1 求实数和的函数&#xff08;分数 10&#xff09;6-2 求解一元二次方程实根的函数&#xff08;分数 10&#xff09;6-3 求集合数据的均方差&#xff08;分数 10&#xff09;6-4 计…

一、基础入门笔记

01基础语法 字面量 被写下来的固定的值 数字 整数int 1&#xff0c;2&#xff0c;3&#xff0c;4浮点数float 13.14复数complet 43J布尔 TrueFalse 字符串"ccc" 描述文本的数据类型大小比较依据ASC||&#xff0c;a>A> 按照位比较 列表 有序的可变序列 元组 有序…

天融信TOPSEC Cookie 远程命令执行漏洞

产品介绍 天融信TopSec 安全管理系统&#xff0c;是基于大数据架构&#xff0c;采用多种技术手段收集各类探针设备安全数据&#xff0c;围绕资产、漏洞、攻击、威胁等安全要素进行全面分析&#xff0c;提供统一监测告警、集中策略管控、协同处置流程&#xff0c;实现客户等保合…

FindMy技术用于鼠标

鼠标是计算机的标准配置之一&#xff0c;其设计初衷是为了使计算机的操作更加简便快捷&#xff0c;减少用户在操作中的负担。用户可以通过移动鼠标&#xff0c;实现光标的精确移动&#xff0c;进而选择、拖拽、复制、粘贴等操作。这种操作方式&#xff0c;使得计算机的操作变得…

人工智能未来发展前景怎么样?

人工智能的未来发展前景怎么样&#xff1f;人工智能的未来发展前景非常广阔&#xff0c;有以下几个方面的发展趋势和前景&#xff1a; 1、人工智能的未来发展前景-应用领域扩展&#xff1a;人工智能将在各个领域得到广泛应用&#xff0c;包括医疗保健、金融、交通、制造业、农业…

0.3-0.2 = 0.09999999999999998 问题解析(精度缺失问题)

写在前面 这个问题其实一直存在&#xff0c;我也看了很多博主写的文章&#xff0c;但是没有一篇文章真的说明白了这个问题&#xff0c;所以今天我尽量将这个问题讲明白&#xff0c;废话不多说&#xff0c;开整 问题表象 研究一下0.3 - 0.2 不等于0.1的问题&#xff0c;做前端时…

<软考高项备考>《论文专题 - 45 范围管理(4) 》

5 过程4-创建WBS 5.1 问题 4W1H过程做什么把项目可交付成果和项目工作分解成较小、更易于管理的组件的过程作用&#xff1a;为所要交付的内容提供0架构为什么做WBS代表着项目范围说明书所规定的工作&#xff0c;可以针对WBS 的工作包安排进度&#xff0c;估算成本和实施监控谁…

java SSM体育器材租借管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM体育器材租借管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…

海外服务器2核2G/4G/8G和4核8G配置16M公网带宽优惠价格表

腾讯云海外服务器租用优惠价格表&#xff0c;2核2G10M带宽、2核4G12M、2核8G14M、4核8G16M配置可选&#xff0c;可以选择Linux操作系统或Linux系统&#xff0c;相比较Linux服务器价格要更优惠一些&#xff0c;腾讯云服务器网txyfwq.com分享腾讯云国外服务器租用配置报价&#x…

php-7.1.13的配置文件一览

[PHP] ;;;;;;;;;;;;;;;;;;; ; About php.ini ; ;;;;;;;;;;;;;;;;;;; ; PHP’s initialization file, generally called php.ini, is responsible for ; configuring many of the aspects of PHP’s behavior. ; PHP attempts to find and load this configuration from a num…

GZ075 云计算应用赛题第5套

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷5 某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源OpenSt…

17|回调函数:在AI应用中引入异步通信机制

17&#xff5c;回调函数&#xff1a;在AI应用中引入异步通信机制 回调函数和异步编程 回调函数&#xff0c;你可能并不陌生。它是函数 A 作为参数传给另一个函数 B&#xff0c;然后在函数 B 内部执行函数 A。当函数 B 完成某些操作后&#xff0c;会调用&#xff08;即“回调”…