diff --git a/KongMingQi.c b/KongMingQi.cpp similarity index 65% rename from KongMingQi.c rename to KongMingQi.cpp index 384950f5e83..6a33e9f3bc7 100644 --- a/KongMingQi.c +++ b/KongMingQi.cpp @@ -1,13 +1,13 @@ /////////////////////////////////////////////////// -// 程序名称:黑神话 孔明棋 -// 编译环境:Mictosoft Visual Studio 2022, EasyX_20200315(beta) -// 作  者:luoyh <2864292458@qq.com> -// 公 众 号:C语言研究 -// 版 本 号:Version 1.0.0 -// 最后修改:2024-11-18 +// ƣ +// 뻷Mictosoft Visual Studio 2022, EasyX_20200315(beta) +// ߣluoyh <2864292458@qq.com> +// ţCо +// ţVersion 1.0.0 +// ޸ģ2024-11-18 // -#include +#include #include #include #include @@ -18,21 +18,23 @@ #include using namespace std; +// #define UNICODE // ֺ֧L"΢ź" + #define PI acos(-1.0) struct Button { - int X1; // 左上角 + int X1; // Ͻ int Y1; - int X2; // 右下角 + int X2; // ½ int Y2; - int size; // 字体大小 - LPCTSTR str; // 对应文本 + int size; // С + LPCTSTR str; // Ӧı }; -Button button1 = { 90, 635, 605, 700, 40, TEXT("开始游戏") }; -Button button2 = { 90, 700 + 10, 605, 765 + 10, 40, TEXT("游戏说明") }; -Button button3 = { 90, 765 + 20, 605, 830 + 20, 40, TEXT("退出") }; +Button button1 = { 90, 635, 605, 700, 40, TEXT("ʼϷ") }; +Button button2 = { 90, 700 + 10, 605, 765 + 10, 40, TEXT("Ϸ˵") }; +Button button3 = { 90, 765 + 20, 605, 830 + 20, 40, TEXT("˳") }; bool WINDOWS(LPCTSTR str, IMAGE img, LPCTSTR str1, LPCTSTR str2); void DrawButton(Button button, COLORREF color); @@ -40,55 +42,55 @@ void DrawButtonT(Button button, COLORREF color); void GradientFill(int left, int top, int right, int bottom, COLORREF startColor, COLORREF endColor); int RETURN(); void HideSphere(float R, int alfa, int beta, int HideFlag, int X, int Y, COLORREF endColor); -// 设置分辨率为2560*1440(推荐) -int rW = GetSystemMetrics(SM_CXSCREEN); // 屏幕宽度 像素 -int rH = GetSystemMetrics(SM_CYSCREEN); // 屏幕高度 像素 -// 全屏 -void Full_Screen(); // 全屏 -void DrawTXT(); // 绘制 -void BianAN(); // 变暗淡 +// ÷ֱΪ2560*1440Ƽ +int rW = GetSystemMetrics(SM_CXSCREEN); // Ļ +int rH = GetSystemMetrics(SM_CYSCREEN); // Ļ߶ +// ȫ +void Full_Screen(); // ȫ +void DrawTXT(); // +void BianAN(); // 䰵 void DrawLoge(int x, int y, int size, COLORREF color); -void DrawInit(); // 绘制初始界面 -void DrawKMQY(int x, int y, int size); // 绘制孔明棋 -void BianLIANG(); // 变亮 +void DrawInit(); // Ƴʼ +void DrawKMQY(int x, int y, int size); // ƿ +void BianLIANG(); // void CheckForInput(); bool gameShouldContinue = false; IMAGE img(rW, rH); IMAGE img1(rW, rH); -// 将图片进行模糊处理 +// ͼƬģ void Blur(IMAGE* pimg); void INITCircle(); void MYCIRCLE(int x, int y); -// str代表绘制的字符串 -// variable 代表每次的变量 -// fors 每次需要循环的次数总数 -// R 该圈的半径 -// Radian 累加的弧度 -void DrawCircle(TCHAR str[25], int variable, int fors, int R, double Radian, int x, int y); // 绘制一圈字符 -void DrawMouse(int x, int y); // 绘制鼠标按键 -void DrawR(int x, int y); // 绘制撤销 -void BeginGame(); // 开始游戏 -void INstrucTionS(); // 游戏介绍 -bool EXIT(); // 退出 -// 一个圈的结构体 +// strƵַ +// variable ÿεı +// fors ÿҪѭĴ +// R Ȧİ뾶 +// Radian ۼӵĻ +void DrawCircle(TCHAR str[25], int variable, int fors, int R, double Radian, int x, int y); // һȦַ +void DrawMouse(int x, int y); // 갴 +void DrawR(int x, int y); // Ƴ +void BeginGame(); // ʼϷ +void INstrucTionS(); // Ϸ +bool EXIT(); // ˳ +// һȦĽṹ struct TimeCircle { - int fors; // 每一圈分成的份数 - int R; // 圈的半径 - double NextTime; // 上一个时刻时间 - double Radian; // 累加的弧度 + int fors; // ÿһȦֳɵķ + int R; // Ȧİ뾶 + double NextTime; // һʱʱ + double Radian; // ۼӵĻ }; SYSTEMTIME ti; TimeCircle TC[3]; TCHAR str[25]; -// 设置随机数产生方法 +// int getRandom(int min, int max) { return rand() % (max - min + 1) + min; } -// Point类 +// Point class Point { public: @@ -98,7 +100,7 @@ class Point Point() { - r = 3; // 点的半径 + r = 3; // İ뾶 x = getRandom(0, getwidth() - r); y = getRandom(0, getheight() - r); xSpeed = getRandom(-3, 3); @@ -107,11 +109,11 @@ class Point void draw() { - // 更新坐标 + // x += xSpeed; y += ySpeed; - // 超出边界回弹 + // ߽ص if (x > getwidth() - r) { x = getwidth() - r; @@ -133,13 +135,13 @@ class Point ySpeed = -ySpeed; } - // 绘制点 + // Ƶ setfillcolor(RGB(200, 200, 200)); solidcircle(x, y, r); } }; -// Graph类 +// Graph class Graph { private: @@ -174,9 +176,9 @@ class Graph if (distance <= maxDis) { - int NUM = 255 - static_cast(distance * 255.0 / maxDis); // 确保NUM是整数 + int NUM = 255 - static_cast(distance * 255.0 / maxDis); // ȷNUM int offset = 50; - setlinecolor(RGB(NUM + offset, NUM + offset, NUM + offset)); // 当NUM接近0时,颜色接近黑色;当NUM接近255时,颜色接近白色 + setlinecolor(RGB(NUM + offset, NUM + offset, NUM + offset)); // NUMӽ0ʱɫӽɫNUMӽ255ʱɫӽɫ setlinestyle(PS_SOLID, 1); line(points[i].x, points[i].y, points[j].x, points[j].y); } @@ -250,7 +252,7 @@ class PegSolitaire HideSphere(30, 30, 15, 1, 2390, 80, WHITE); settextcolor(WHITE); - settextstyle(60, 0, L"微软雅黑", 0, 0, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); + settextstyle(60, 0, reinterpret_cast("΢ź"), 0, 0, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); TCHAR s[20]; _stprintf_s(s, _T(" X%d"), pegCount); outtextxy(2430, 60, s); @@ -395,29 +397,29 @@ class PegSolitaire { IMAGE Mimg(rW, rH); - // 设置绘图目标为 img 对象 + // ûͼĿΪ img SetWorkingImage(&Mimg); - // 以下绘图操作都会绘制在 img 对象上面 + // »ͼ img g.draw(); - drawBoard(y, x); // 每次操作后重绘棋盘 + drawBoard(y, x); // ÿβػ MYCIRCLE(rW / 2, rH / 2); DrawMouse(2300, 1360); DrawR(2120, 1360); - // 设置绘图目标为绘图窗口 + // ûͼĿΪͼ SetWorkingImage(); - if (!WINDOWS(_T("恭喜你!挑战成功"), Mimg, _T("再来一局"), _T("退出"))) + if (!WINDOWS(_T("ϲ!սɹ"), Mimg, _T("һ"), _T("˳"))) { BeginGame(); } break; } - // 获取坐标两次 - // 第一次获取起始位置 - // 第二次获取终止位置 计算方向 - //ExMessage m; // 定义消息变量 + // ȡ + // һλȡʼλ + // ڶλȡֹλ 㷽 + //ExMessage m; // Ϣ - while (peekmessage(&msg, EX_MOUSE | EX_KEY)) // 如果获取到了消息就执行 + while (peekmessage(&msg, EX_MOUSE | EX_KEY)) // ȡϢִ { switch (msg.message) { @@ -436,7 +438,7 @@ class PegSolitaire JX = false; } break; - //undoMove(); 一个撤销功能 + //undoMove(); һ case WM_KEYDOWN: if (msg.vkcode == 0x52) { @@ -446,14 +448,14 @@ class PegSolitaire } } - /* cout << "请输入 x, y, 方向 (0=北, 1=南, 2=西, 3=东): ";*/ + /* cout << " x, y, (0=, 1=, 2=, 3=): ";*/ - if (DJNUM == 1) // 按下第一次 + if (DJNUM == 1) // µһ { y = (Mx - (rW / 2 - 420)) / 120; - x = (My - (rH / 2 - 420)) / 120; // 获取起始位置 + x = (My - (rH / 2 - 420)) / 120; // ȡʼλ } - if (DJNUM == 2) // 按下第二次 获取方向 + if (DJNUM == 2) // µڶ ȡ { int EndY = (Mx - (rW / 2 - 420)) / 120; int EndX = (My - (rH / 2 - 420)) / 120; @@ -475,7 +477,7 @@ class PegSolitaire } T = false; DJNUM = 0; - if (dir == -1) // 乱点击的情况 + if (dir == -1) // ҵ { T = true; DJNUM = 0; @@ -492,13 +494,13 @@ class PegSolitaire } else { - /*cout << "非法移动!" << endl;*/ + /*cout << "Ƿƶ" << endl;*/ } } FlushBatchDraw(); cleardevice(); g.draw(); - drawBoard(y, x); // 每次操作后重绘棋盘 + drawBoard(y, x); // ÿβػ MYCIRCLE(rW / 2, rH / 2); DrawMouse(2300, 1360); DrawR(2120, 1360); @@ -519,20 +521,20 @@ class PegSolitaire } } TCHAR s[20]; - _stprintf_s(s, _T("挑战失败,还剩余%d枚棋子!"), pegCount); + _stprintf_s(s, _T("սʧܣʣ%döӣ"), pegCount); IMAGE Mimg(rW, rH); - // 设置绘图目标为 img 对象 + // ûͼĿΪ img SetWorkingImage(&Mimg); - // 以下绘图操作都会绘制在 img 对象上面 + // »ͼ img g.draw(); - drawBoard(y, x); // 每次操作后重绘棋盘 + drawBoard(y, x); // ÿβػ MYCIRCLE(rW / 2, rH / 2); DrawMouse(2300, 1360); DrawR(2120, 1360); - // 设置绘图目标为绘图窗口 + // ûͼĿΪͼ SetWorkingImage(); - if (!WINDOWS(s, Mimg, _T("再来一局"), _T("退出"))) + if (!WINDOWS(s, Mimg, _T("һ"), _T("˳"))) { BeginGame(); } @@ -545,18 +547,18 @@ int main() Full_Screen(); DrawTXT(); BianAN(); - // 变亮度 显示 孔明棋 + // ʾ DrawInit(); BianLIANG(); CheckForInput(); - // 按任意键继续,不管是键盘还是鼠标。都继续 - // 开始写按钮 + // Ǽ̻ꡣ + // ʼдť cleardevice(); bool CTN = true; - // 字体角度问题处理一下 + // Ƕ⴦һ while (CTN) { - int NUM = RETURN(); // 鼠标操作 + int NUM = RETURN(); // switch (NUM) { case 0:BeginGame(); break; @@ -566,15 +568,15 @@ int main() } } -void Full_Screen() // 全屏 +void Full_Screen() // ȫ { - HWND hwnd = initgraph(rW, rH); // 初始化绘图窗口并获取窗口句柄(以 EasyX 为例) - LONG l_WinStyle = GetWindowLong(hwnd, GWL_STYLE); // 获取窗口信息 - // 设置窗口信息 最大化 取消标题栏及边框 - SetWindowLong(hwnd, GWL_STYLE, (l_WinStyle | WS_POPUP | WS_MAXIMIZE) & ~WS_CAPTION & ~WS_THICKFRAME & ~WS_BORDER);// 直接修改窗口样式 + HWND hwnd = initgraph(rW, rH); // ʼͼڲȡھ EasyX Ϊ + LONG l_WinStyle = GetWindowLong(hwnd, GWL_STYLE); // ȡϢ + // ôϢ ȡ߿ + SetWindowLong(hwnd, GWL_STYLE, (l_WinStyle | WS_POPUP | WS_MAXIMIZE) & ~WS_CAPTION & ~WS_THICKFRAME & ~WS_BORDER);// ֱ޸Ĵʽ SetWindowPos(hwnd, HWND_TOP, 0, 0, rW, rH, 0); setbkcolor(BLACK); - cleardevice(); // 设置背景颜色为黑色 + cleardevice(); // ñɫΪɫ } void DrawTXT() @@ -593,29 +595,29 @@ void DrawTXT() DrawLoge(1090 - 4, 680 - 4, 70, WHITE); RECT r = { 1188,656,1480 + 60,726 }; - // 设置输出效果为抗锯齿 (VC6 / VC2008 / VC2010 / VC2012) + // ЧΪ (VC6 / VC2008 / VC2010 / VC2012) LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfHeight = 80; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("等线")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - settextstyle(&f); // 设置字体样式 - drawtext(_T("C语言研究"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); - f.lfHeight = 45; // 设置字体高度为 - settextstyle(&f); // 设置字体样式 + gettextstyle(&f); // ȡǰ + f.lfHeight = 80; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + settextstyle(&f); // ʽ + drawtext(_T("Cо"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); + f.lfHeight = 45; // ߶Ϊ + settextstyle(&f); // ʽ r = { 1188,743,1480 + 60,776 }; drawtext(_T("C YUYAN YANJIU"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); Sleep(1000); SetWorkingImage(); } -void BianAN() // 变暗淡 +void BianAN() // 䰵 { - // 获取绘图窗口和 img 对象的显示缓冲区指针 + // ȡͼں img ʾָ DWORD* pbWnd = GetImageBuffer(); DWORD* pbImg = GetImageBuffer(&img); - // 计算原图片每个点的颜色,实现逐渐变量的效果 + // ԭͼƬÿɫʵ𽥱Ч int r, g, b; for (int light = 1; light <= 64; light++) { @@ -665,16 +667,16 @@ void DrawInit() SetWorkingImage(&img1); setbkmode(TRANSPARENT); settextcolor(WHITE); - // 设置输出效果为抗锯齿 (VC6 / VC2008 / VC2010 / VC2012) + // ЧΪ (VC6 / VC2008 / VC2010 / VC2012) LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfHeight = 300; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("方正舒体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - settextstyle(&f); // 设置字体样式 - outtextxy(300, 400, _T("孔")); - outtextxy(500, 540, _T("明")); - outtextxy(700, 680, _T("棋")); + gettextstyle(&f); // ȡǰ + f.lfHeight = 300; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + settextstyle(&f); // ʽ + outtextxy(300, 400, _T("")); + outtextxy(500, 540, _T("")); + outtextxy(700, 680, _T("")); DrawKMQY(1700, 690, 400); SetWorkingImage(); } @@ -720,27 +722,27 @@ void DrawKMQY(int x, int y, int size) } } - // 设置输出效果为抗锯齿 (VC6 / VC2008 / VC2010 / VC2012) + // ЧΪ (VC6 / VC2008 / VC2010 / VC2012) LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - f.lfHeight = 25; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) + gettextstyle(&f); // ȡǰ + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + f.lfHeight = 25; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) settextcolor(RGB(120,120,120)); settextstyle(&f); - outtextxy(116, 1356, _T("© [2024] [微信公众号:C语言研究]. All rights reserved.")); + outtextxy(116, 1356, _T("? [2024] [΢ŹںţCо]. All rights reserved.")); outtextxy(2200, 1335, _T("Version 1.0.0")); } -void BianLIANG() // 变亮 +void BianLIANG() // { - // 获取绘图窗口和 img 对象的显示缓冲区指针 + // ȡͼں img ʾָ DWORD* pbWnd = GetImageBuffer(); DWORD* pbImg = GetImageBuffer(&img1); - // 计算原图片每个点的颜色,实现逐渐变量的效果 + // ԭͼƬÿɫʵ𽥱Ч int r, g, b; for (int light = 1; light <= 64; light++) { @@ -753,22 +755,22 @@ void BianLIANG() // 变亮 } Sleep(30); } - // 设置输出效果为抗锯齿 (VC6 / VC2008 / VC2010 / VC2012) + // ЧΪ (VC6 / VC2008 / VC2010 / VC2012) LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - f.lfHeight = 30; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) + gettextstyle(&f); // ȡǰ + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + f.lfHeight = 30; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) settextcolor(GREEN); settextstyle(&f); - outtextxy(500, 1000, _T("按任意键开始")); + outtextxy(500, 1000, _T("ʼ")); } void CheckForInput() { ExMessage msg; - // 游戏的主循环 + // Ϸѭ while (true) { peekmessage(&msg, EX_MOUSE); @@ -782,7 +784,7 @@ void CheckForInput() } else if (msg.message == WM_KEYDOWN || msg.message == WM_SYSKEYDOWN) { - return; // 退出函数 + return; // ˳ } } } @@ -800,11 +802,11 @@ void DrawButton(Button button, COLORREF color) settextcolor(color); } LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfHeight = button.size; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - settextstyle(&f); // 设置字体样式 + gettextstyle(&f); // ȡǰ + f.lfHeight = button.size; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + settextstyle(&f); // ʽ outtextxy(button.X1 + 35, button.Y1 + 15, button.str); } @@ -813,11 +815,11 @@ int RETURN() int NUM = 0; srand(time(NULL)); Graph g; - // 定义变量,保存鼠标消息 + // Ϣ ExMessage msg; BeginBatchDraw(); bool T = true; - // 游戏的主循环 + // Ϸѭ while (T) { FlushBatchDraw(); @@ -827,7 +829,7 @@ int RETURN() DrawButton(button2, WHITE); DrawButton(button3, WHITE); DrawKMQY(1700, 690, 400); - while (peekmessage(&msg, EX_MOUSE)) // 如果获取到了消息就执行 + while (peekmessage(&msg, EX_MOUSE)) // ȡϢִ { switch (msg.message) { @@ -880,9 +882,9 @@ int RETURN() DrawButton(button2, WHITE); DrawButton(button3, BLACK); break; - case 4:T = false; NUM = 0; break; // 开始游戏 - case 5:T = false; NUM = 1; break; // 游戏说明 - case 6:T = false; NUM = 2; break; // 退出 + case 4:T = false; NUM = 0; break; // ʼϷ + case 5:T = false; NUM = 1; break; // Ϸ˵ + case 6:T = false; NUM = 2; break; // ˳ } Sleep(20); } @@ -891,26 +893,26 @@ int RETURN() } void GradientFill(int left, int top, int right, int bottom, COLORREF startColor, COLORREF endColor) -{ // 计算水平和垂直方向上的颜色变化量 +{ // ˮƽʹֱϵɫ仯 double dx = right - left; double dy = bottom - top; double redStep = (GetRValue(endColor) - GetRValue(startColor)) / dx; double greenStep = (GetGValue(endColor) - GetGValue(startColor)) / dx; - double blueStep = (GetBValue(endColor) - GetBValue(startColor)) / dx; // 遍历每个像素点,并设置其颜色 + double blueStep = (GetBValue(endColor) - GetBValue(startColor)) / dx; // ÿص㣬ɫ for (int x = left; x <= right; x++) { COLORREF currentColor = RGB(GetRValue(startColor) + (x - left) * redStep, GetGValue(startColor) + (x - left) * greenStep, GetBValue(startColor) + (x - left) * blueStep); - setfillcolor(currentColor); solidrectangle(x, top, x, bottom); // 填充当前列的颜色 + setfillcolor(currentColor); solidrectangle(x, top, x, bottom); // 䵱ǰеɫ } } -void BeginGame() // 开始游戏 +void BeginGame() // ʼϷ { PegSolitaire game; game.playGame(); } -void INstrucTionS() // 游戏介绍 +void INstrucTionS() // Ϸ { Graph g; IMAGE img2(rW, rH); @@ -922,13 +924,13 @@ void INstrucTionS() // 游戏介绍 DrawKMQY(1700, 690, 400); SetWorkingImage(); - if (!WINDOWS(_T("详细玩法,见微信公众号:C语言研究"), img2, _T("确定"), _T("返回"))) + if (!WINDOWS(_T("ϸ淨΢ŹںţCо"), img2, _T("ȷ"), _T(""))) { system("start https://mp.weixin.qq.com/s/5Nj-Que4TVK0LWi44alrFg"); } } -bool EXIT() // 退出 +bool EXIT() // ˳ { Graph g; IMAGE img2(rW, rH); @@ -939,7 +941,7 @@ bool EXIT() // 退出 DrawButton(button3, WHITE); DrawKMQY(1700, 690, 400); SetWorkingImage(); - return WINDOWS(_T("确定退出至桌面吗?"), img2, _T("确定"), _T("取消")); + return WINDOWS(_T("ȷ˳"), img2, _T("ȷ"), _T("ȡ")); } void DrawCircle(TCHAR str[25], int variable, int fors, int R, double Radian, int Mx, int My) @@ -947,26 +949,26 @@ void DrawCircle(TCHAR str[25], int variable, int fors, int R, double Radian, int settextcolor(variable ? HSLtoRGB((360.f / fors) * variable, 1, 0.5f) : WHITE); double a, x0, y0, w, h, x1, y1; int x, y; - settextstyle(22, 0, L"微软雅黑", variable * 3600 / fors, variable * 3600 / fors, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); + settextstyle(22, 0, reinterpret_cast("΢ź"), variable * 3600 / fors, variable * 3600 / fors, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); - a = (fors == 60) ? ((variable + 1) * PI * 2 / fors - Radian) : (variable * PI * 2 / fors); // 计算字符串弧度 a + a = (fors == 60) ? ((variable + 1) * PI * 2 / fors - Radian) : (variable * PI * 2 / fors); // ַ a - w = textwidth(str); // 计算字符串宽 w、高 h + w = textwidth(str); // ַ w h h = textheight(str); - x1 = R * cos(a); // 计算输出字符串的左上角位置 + x1 = R * cos(a); // ַϽλ y1 = R * sin(a); - x0 = x1 * cos(-a) - y1 * sin(-a); // 将字符串绕原点顺时针旋转 a 弧度 + x0 = x1 * cos(-a) - y1 * sin(-a); // ַԭ˳ʱת a y0 = y1 * cos(-a) + x1 * sin(-a); - x0 -= w / 2; // 将字符串向左上偏移 w/2、h/2 - y0 += h / 2; // 绘图坐标向下为正 + x0 -= w / 2; // ַƫ w/2h/2 + y0 += h / 2; // ͼΪ - x = (int)(x0 * cos(a) - y0 * sin(a)); // 将字符串绕原点逆时针旋转 a 弧度 + x = (int)(x0 * cos(a) - y0 * sin(a)); // ַԭʱת a y = (int)(y0 * cos(a) + x0 * sin(a)); - outtextxy(int(Mx + x + 0.5), int(My - y + 0.5), str); // 绘图坐标向下为正 + outtextxy(int(Mx + x + 0.5), int(My - y + 0.5), str); // ͼΪ } void INITCircle() @@ -979,9 +981,9 @@ void INITCircle() switch (i) { - case 0:TC[i].fors = 24; break; // 时 - case 1:TC[i].fors = 60; break; // 分 - case 2:TC[i].fors = 60; break; // 秒 + case 0:TC[i].fors = 24; break; // ʱ + case 1:TC[i].fors = 60; break; // + case 2:TC[i].fors = 60; break; // } } } @@ -1015,14 +1017,14 @@ void MYCIRCLE(int x, int y) { switch (j) { - case 0: _stprintf_s(str, _T("%d时"), (i + ti.wHour) % TC[j].fors); break; - case 1: _stprintf_s(str, _T("%d分"), (i + ti.wMinute) % TC[j].fors); break; - case 2: _stprintf_s(str, _T("%d秒"), (i + ti.wSecond) % TC[j].fors); break; + case 0: _stprintf_s(str, _T("%dʱ"), (i + ti.wHour) % TC[j].fors); break; + case 1: _stprintf_s(str, _T("%d"), (i + ti.wMinute) % TC[j].fors); break; + case 2: _stprintf_s(str, _T("%d"), (i + ti.wSecond) % TC[j].fors); break; } DrawCircle(str, i, TC[j].fors, TC[j].R, TC[j].Radian, x, y);; } } - settextstyle(22, 0, L"微软雅黑", 0, 0, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); + settextstyle(22, 0, reinterpret_cast("΢ź"), 0, 0, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); } void HideSphere(float R, int alfa, int beta, int HideFlag, int X, int Y, COLORREF color) @@ -1072,7 +1074,7 @@ void HideSphere(float R, int alfa, int beta, int HideFlag, int X, int Y, COLORRE } } -// 将图片进行模糊处理 +// ͼƬģ void Blur(IMAGE* pimg) { DWORD* pMem = GetImageBuffer(pimg); @@ -1085,17 +1087,17 @@ void Blur(IMAGE* pimg) int step = width - 1, f, t; - // 计算 9 格方向系数 + // 9 ϵ int cell[9] = { -(width + 1), -1, width - 1, -width, 0, width, -(width - 1), 1, width + 1 }; - // 逐个像素点读取计算 + // صȡ for (int i = width * height - 1; i >= 0; i--) { - // 重置变量 + // ñ r = g = b = 0; m = 9; - // 根据像素位置,决定周围格子的计算范围 + // λãΧӵļ㷶Χ if (step == width - 1) t = 5, m = 6; else @@ -1108,24 +1110,24 @@ void Blur(IMAGE* pimg) step--; - // 累加周围格子的颜色值 + // ۼΧӵɫֵ for (int n = f; n <= t; n++) { - // 位置定位 + // λöλ num = i + cell[n]; - // 判断位置值是否越界 + // жλֵǷԽ if (num < 0 || num >= width * height) - m--; // 统计越界像素数 + m--; // ͳԽ else { - // 累加颜色值 + // ۼɫֵ r += GetRValue(pMem[num]); g += GetGValue(pMem[num]); b += GetBValue(pMem[num]); } } - // 将平均值赋值该像素 + // ƽֵֵ pMem[i] = RGB(r / m, g / m, b / m); } } @@ -1148,47 +1150,47 @@ void DrawButtonT(Button button, COLORREF color) } LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfHeight = button.size; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - settextstyle(&f); // 设置字体样式 + gettextstyle(&f); // ȡǰ + f.lfHeight = button.size; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + settextstyle(&f); // ʽ drawtext(button.str, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); } -void DrawMouse(int x, int y) // 绘制鼠标按键 +void DrawMouse(int x, int y) // 갴 { setfillcolor(RGB(107, 107, 107)); solidellipse(x, y, x + 30, y + 40); setfillcolor(RGB(17, 17, 17)); - // 扇形 + // solidpie(x + 1, y + 1, x + 30 - 1, y + 40 - 1, 0, 1.57); settextcolor(RGB(107, 107, 107)); LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfHeight = 40; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - settextstyle(&f); // 设置字体样式 - outtextxy(x + 45, y, _T("退出")); + gettextstyle(&f); // ȡǰ + f.lfHeight = 40; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + settextstyle(&f); // ʽ + outtextxy(x + 45, y, _T("˳")); } -void DrawR(int x, int y) // 绘制撤销 +void DrawR(int x, int y) // Ƴ { setfillcolor(RGB(107, 107, 107)); solidroundrect(x + 5, y + 5, x + 35, y + 35, 5, 5); settextcolor(RGB(17, 17, 17)); - settextstyle(30, 0, _T("宋体")); + settextstyle(30, 0, _T("")); RECT r = { x, y, x + 40, y + 40 }; drawtext(_T("R"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); settextcolor(RGB(107, 107, 107)); LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfHeight = 40; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - settextstyle(&f); // 设置字体样式 - outtextxy(x + 45, y, _T("撤回")); + gettextstyle(&f); // ȡǰ + f.lfHeight = 40; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + settextstyle(&f); // ʽ + outtextxy(x + 45, y, _T("")); } bool WINDOWS(LPCTSTR str, IMAGE img, LPCTSTR str1, LPCTSTR str2) @@ -1196,18 +1198,18 @@ bool WINDOWS(LPCTSTR str, IMAGE img, LPCTSTR str1, LPCTSTR str2) for (int m = 0; m < 10; m++) { Blur(&img); - // 显示处理后的图像 + // ʾͼ } - // 绘制窗口按钮等,开始选择 + // ƴڰťȣʼѡ setfillcolor(RGB(20, 20, 20)); solidrectangle(744, 535, 1810, 815); LOGFONT f; - gettextstyle(&f); // 获取当前字体设置 - f.lfHeight = 40; // 设置字体高度为 - _tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数) - f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿 - settextstyle(&f); // 设置字体样式 + gettextstyle(&f); // ȡǰ + f.lfHeight = 40; // ߶Ϊ + _tcscpy_s(f.lfFaceName, _T("")); // Ϊ塱(߰汾 VC Ƽʹ _tcscpy_s ) + f.lfQuality = ANTIALIASED_QUALITY; // ЧΪ + settextstyle(&f); // ʽ RECT r = { 744,535,1810,815 }; drawtext(str, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); Button button4 = { 744, 815, 744 + 533, 815 + 65, 40, str1 }; @@ -1219,7 +1221,7 @@ bool WINDOWS(LPCTSTR str, IMAGE img, LPCTSTR str1, LPCTSTR str2) bool T = true; bool R = true; int NUMS = 0; - // 游戏的主循环 + // Ϸѭ while (T) { FlushBatchDraw(); @@ -1230,7 +1232,7 @@ bool WINDOWS(LPCTSTR str, IMAGE img, LPCTSTR str1, LPCTSTR str2) drawtext(str, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); DrawButtonT(button4, WHITE); DrawButtonT(button5, WHITE); - while (peekmessage(&msg, EX_MOUSE)) // 如果获取到了消息就执行 + while (peekmessage(&msg, EX_MOUSE)) // ȡϢִ { switch (msg.message) { @@ -1270,12 +1272,12 @@ bool WINDOWS(LPCTSTR str, IMAGE img, LPCTSTR str1, LPCTSTR str2) break; case 3: T = false; - R = false; // 确定退出 + R = false; // ȷ˳ break; case 4: T = false; R = true; - break; // 开始游戏 + break; // ʼϷ } Sleep(20); } diff --git a/Solutions/Other-Accumulation-SomeTips.md b/Solutions/Other-Accumulation-SomeTips.md index 878ea5068c7..77e6be9b683 100644 --- a/Solutions/Other-Accumulation-SomeTips.md +++ b/Solutions/Other-Accumulation-SomeTips.md @@ -552,6 +552,16 @@ push_heap(v.begin(), v.end()); // 将v的最后一个元素(v.back())插入 sort_heap(v.begin(), v.end()); // 将堆排序,排序后将失去堆的特性;非堆调用此函数将会报错;大根堆会变成从小到大的排序 ``` +### C++使得编译器支持第三方库(以MinGW为例) + +假如我想使用EasyX库编写带有图形界面的程序,那么我应该如何编译呢? + +可以把`EasyX`解压出来的`.h`头文件放到`{MinGW安装位置}\x86_64-w64-mingw32\include`,库文件放到`{MinGW安装位置}\x86_64-w64-mingw32\lib`目录。 + +这样就能直接`#include `了。编译时候需要加上参数`-leasyx`,这是因为添加了`libeasyx.a`。 + +如果我把库文件放到其他目录下,则还需要加上`-L目录名`(绝对路径或编译执行路径的相对路径)。 + ## About Website ### ip扫描工具censys diff --git a/Solutions/Other-English-LearningNotes-SomeWords.md b/Solutions/Other-English-LearningNotes-SomeWords.md index 87596e8602a..897aabf7ce9 100644 --- a/Solutions/Other-English-LearningNotes-SomeWords.md +++ b/Solutions/Other-English-LearningNotes-SomeWords.md @@ -811,6 +811,8 @@ tags: [其他, 知识, 英语, Notes] ||| |matinee|n. (戏剧/电影的)午后场| |peacock|n. 雄孔雀
v. 炫耀,招摇过市| +||| +|pier|n. 码头,突堤,桥墩,桥柱|

单词收录总数

diff --git a/Solutions/Other-Japanese-LearningNotes.md b/Solutions/Other-Japanese-LearningNotes.md index f9df644ca3d..971c15c59a6 100644 --- a/Solutions/Other-Japanese-LearningNotes.md +++ b/Solutions/Other-Japanese-LearningNotes.md @@ -381,6 +381,7 @@ xx型 |タクシー|出租车| |空港(くうこう)|机场| |駅(えき)|(车)站| +|新幹線(しんかんせん)|新干线| |ホテル|酒店| |宿題(しゅくだい)|作业| |授業(じゅぎょう)|课程| @@ -585,6 +586,7 @@ xx型 |イギリス|英国| |カナダ|加拿大| |カナダ|俄罗斯| +|オーストラリア|澳大利亚| |外国(がいこく)|外国| |アイヌ|阿伊努| |国(くに)|国| diff --git a/tryGo/JSFUZZ.bash b/tryGo/JSFUZZ.bash new file mode 100644 index 00000000000..4f267985733 --- /dev/null +++ b/tryGo/JSFUZZ.bash @@ -0,0 +1,19 @@ + + +格式看起来应该没什么问题了[强],但是内容上甲方大概不太会满意[捂脸] + + + +比如第一条(5.2.1)期望结果的7,“软件运行时系统资源占用合理”、第二条(5.2.2)“反应迅速”、“布局清晰”,这种描述还是没有一个可以衡量的指标 ~ +应该写成“CPU占用率不超过xx%”之类的, 【然后图1】 + + + +怎么说呢,有那么一点在向我汇报的感觉[破涕为笑],其实我更应该像是一个辅助者的角色 +说实话,这些可能不太是需要这么几天才能完成的[捂脸] +这样没有准确描述的话,专家肯定是没有办法按照测试大纲进行测试和衡量的。 +如果有哪些不懂或者需要我帮助的话可以随时来问我,我工作日白天没有其他事情的话应该都在 + + + +前面说的这些可能还需要参考一下,但是也别感觉有压力哈,尽量弄吧 \ No newline at end of file diff --git a/tryGo/OUT.md b/tryGo/OUT.md new file mode 100644 index 00000000000..04090cdfd29 --- /dev/null +++ b/tryGo/OUT.md @@ -0,0 +1,9 @@ + +1. 签证 +2. 插头 +3. 携带物品 \ No newline at end of file diff --git a/tryGo/chat-6yggde35y.bash b/tryGo/chat-6yggde35y.bash new file mode 100644 index 00000000000..89ca602aaaf --- /dev/null +++ b/tryGo/chat-6yggde35y.bash @@ -0,0 +1,118 @@ +### + # @Author: LetMeFly + # @Date: 2024-11-20 10:02:01 + # @LastEditors: LetMeFly.xyz + # @LastEditTime: 2024-11-20 11:03:40 +### +你了解MinGW吗? + +MinGW\x86_64-w64-mingw32\lib下有很多libxx.a,我添加一个libeasyx.a进去的话在编译的时候只需要加上个参数-leasyx就可以了。 + + + + + +如果我想把libeasyx.a放在MinGW\x86_64-w64-mingw32\lib\Let\这个字文件夹下,我应该如何编译 + + + + + +如果我把libeasyx.a放到MinGW\x86_64-w64-mingw32\lib\下的话,我只需要-leasyx就可以了 +但是如果我把libeasyx.a放到MinGW\x86_64-w64-mingw32\lib\Let下的话,我就需要加上-L绝对路径才行`-LF:\OtherApps\Program\MinGW\x86_64-w64-mingw32\lib\Let`,而只加上`-LLet`就不行 + + + + +链接库的问题解决了,可以编译运行demo了。 +但编译另外一个文件时报错: +``` +.\KongMingQi.cpp: In member function 'void PegSolitaire::drawBoard(int, int)': +.\KongMingQi.cpp:253:164: error: no matching function for call to 'settextstyle(int, int, const wchar_t [5], int, int, int, bool, bool, bool, int, int, int, int, int)' + settextstyle(60, 0, L"微软alse, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); + ^ +In file included from F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/graphics.h:12, + from .\KongMingQi.cpp:10: +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:249:6: note: candidate: 'void settextstyle(int, int, LPCTSTR)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:249:6: note: candidate expects 3 arguments, 14 provided +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:250:6: note: candidate: 'void settextstyle(int, int, LPCTSTR, int, int, int, bool, bool, bool)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:250:6: note: candidate expects 9 arguments, 14 provided +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:251:6: note: candidate: 'void settextstyle(int, int, LPCTSTR, int, int, int, bool, bool, bool, BYTE, BYTE, BYTE, BYTE, BYTE)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:251:6: note: no known conversion for argument 3 from 'const wchar_t [5]' to 'LPCTSTR' {aka 'const char*'} +In file included from F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/graphics.h:12, + from .\KongMingQi.cpp:10: +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:252:6: note: candidate: 'void settextstyle(const LOGFONT*)' + void settextstyle(const LOGFONT *font); // Set current text style + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:252:6: note: candidate expects 1 argument, 14 provided +.\KongMingQi.cpp: In function 'void DrawCircle(TCHAR*, int, int, int, double, int, int)': +.\KongMingQi.cpp:950:204: error: no matching function for call to 'settextstyle(int, int, const wchar_t [5], int, int, int, bool, bool, bool, int, int, int, int, int)' + settextstyle(22, 0, L"微软ariable * 3600 / fors, variable * 3600 / fors, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); + ^ +In file included from F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/graphics.h:12, + from .\KongMingQi.cpp:10: +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:249:6: note: candidate: 'void settextstyle(int, int, LPCTSTR)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:249:6: note: candidate expects 3 arguments, 14 provided +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:250:6: note: candidate: 'void settextstyle(int, int, LPCTSTR, int, int, int, bool, bool, bool)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:250:6: note: candidate expects 9 arguments, 14 provided +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:251:6: note: candidate: 'void settextstyle(int, int, LPCTSTR, int, int, int, bool, bool, bool, BYTE, BYTE, BYTE, BYTE, BYTE)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:251:6: note: no known conversion for argument 3 from 'const wchar_t [5]' to 'LPCTSTR' {aka 'const char*'} +In file included from F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/graphics.h:12, + from .\KongMingQi.cpp:10: +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:252:6: note: candidate: 'void settextstyle(const LOGFONT*)' + void settextstyle(const LOGFONT *font); // Set current text style + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:252:6: note: candidate expects 1 argument, 14 provided +.\KongMingQi.cpp: In function 'void MYCIRCLE(int, int)': +.\KongMingQi.cpp:1025:162: error: no matching function for call to 'settextstyle(int, int, const wchar_t [5], int, int, int, bool, bool, bool, int, int, int, int, int)' + settextstyle(22, 0, L"微软alse, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH); + ^ +In file included from F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/graphics.h:12, + from .\KongMingQi.cpp:10: +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:249:6: note: candidate: 'void settextstyle(int, int, LPCTSTR)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:249:6: note: candidate expects 3 arguments, 14 provided +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:250:6: note: candidate: 'void settextstyle(int, int, LPCTSTR, int, int, int, bool, bool, bool)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:250:6: note: candidate expects 9 arguments, 14 provided +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:251:6: note: candidate: 'void settextstyle(int, int, LPCTSTR, int, int, int, bool, bool, bool, BYTE, BYTE, BYTE, BYTE, BYTE)' + void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:251:6: note: no known conversion for argument 3 from 'const wchar_t [5]' to 'LPCTSTR' {aka 'const char*'} +In file included from F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/graphics.h:12, + from .\KongMingQi.cpp:10: +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:252:6: note: candidate: 'void settextstyle(const LOGFONT*)' + void settextstyle(const LOGFONT *font); // Set current text style + ^~~~~~~~~~~~ +F:/OtherApps/Program/MinGW/x86_64-w64-mingw32/include/Let/easyx.h:252:6: note: candidate expects 1 argument, 14 provided +``` + + + + + +第1025行是`settextstyle(22, 0, L"微软雅黑", 0, 0, 0, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH);` +函数定义为`void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily);` + + + + + + +我将所有的`L"微软雅黑"`修改为了`reinterpret_cast("微软雅黑")`,编译运行成功了。 +但是现实的中文会乱码,包括但不限于其他所有的中文。 +我的cpp文件是以utf-8的格式保存的。 \ No newline at end of file diff --git a/tryGo/tryEasyX.cpp b/tryGo/tryEasyX.cpp new file mode 100644 index 00000000000..43f9d62508f --- /dev/null +++ b/tryGo/tryEasyX.cpp @@ -0,0 +1,17 @@ +/* + * @Author: LetMeFly + * @Date: 2024-11-20 10:22:49 + * @LastEditors: LetMeFly.xyz + * @LastEditTime: 2024-11-20 10:23:03 + */ +#include +#include + +int main() +{ + initgraph(640, 480); + circle(320, 240, 100); + getch(); + closegraph(); + return 0; +} \ No newline at end of file diff --git "a/tryGo/\346\234\254\345\221\250\345\221\250\346\212\245.md" "b/tryGo/\346\234\254\345\221\250\345\221\250\346\212\245.md" index 05e7a7d28bc..de27971b174 100644 --- "a/tryGo/\346\234\254\345\221\250\345\221\250\346\212\245.md" +++ "b/tryGo/\346\234\254\345\221\250\345\221\250\346\212\245.md" @@ -1,200 +1,17 @@ + -# 2024.11.12 - 2024.11.19 - 工作日志 - -这次就按照日记的样子每天记录了。 +# 2024.11.20 - 2024.11.26 - 工作日志 ## 总 -1. IOTJ这篇论文实验3和4算是重跑完成了 -2. 写技术报告 -3. JKW的JS模糊测试项目对接了下,给学弟们小培训了下 +1. ## 分 -### 2024.11.12 组会后 - -先去健了半小时身,洗个澡后修改了IOTJ一个半小时,到12点。 - -赞哥想让今晚干完,但是太困了,还是明早早点起吧,尽量5点起打算。 - -### 2024.11.13 - -不妙,好困,早上效率并不高。 - -把人家三个算法的绘图指标精确到了原文中的哪个伪代码的哪一行 - -详细了解HDBSCAN原理,知道了第三列绘制结果为什么是这样的原因。 - -更换一个绘图指标(已有指标),在没有造数据的情况下使得结果更加好看一点。 - -到晚上第三列结果图得到了预期的结果。 - -### 2024.11.14 - -由于实验4还是初稿时候的数据(后面发现代码BUG后实验3和4数据已经不匹配),实验4要完全重跑了 - -实验四的4个防御算法中前三个都跑好了,第4个算法(咱们自己的算法)有时候识别不到恶意客户端。 - -虽然实验3绘制出来的结果表明用肉眼分辨是很清晰的。 - -中午一觉睡到下午4点40,看来报复性早起其实是并不高效的。X_X - -晚上去JK参加了JS引擎模糊测试的测试大纲评审答辩,聂老师那边通知下周三正式测试。 - -### 2024.11.15 - -思路有2: - -1. 优化算法4的识别标准 -2. 在所有实验结果里面寻找一个效果最好的,反正也没有造假(bushi - -后面找了一轮效果很不错的数据,实验结果和实验3一致。 - -这次算是任务完成了吧应该。 - -然后就是JS模糊测试的测试大纲和其他文件,有很多学弟们没有接触过所以不了解 - -然后给超哥找了一些报价单模板 - -### 2024.11.16 - -找报价单模板、修改别的模板使其成为科研项目类 - -### 2024.11.17 - -UIC PPT制作。 - -对接成电“测试用例生成”的项目 - -### 2024.11.18 - -白天技术报告:17个参考文档看了 - -> 网络波动诱导:隐蔽、图网络、NLP - -晚上读了(不到)一篇论文 - -### 2024.11.19(到组会前) - -要改: - -1. 格式统一:边距、字体大小、...;公式是公式的格式 -2. 去GPT化:一些没用的子标题、一些没用的“首先其次”转接词 -3. 符号前后统一:类似论文参数表,别前面有的后面变了 - -格式:重整文档结构 - -1. 段落标题及其格式统一(一级标题都是xx,二级标题都是xx,...) -2. 缩进、加粗等都一样了 - -参数表: +一些问题: -|参数|含义| -|:--:|:--:| -|$\vec{P}_{c p u_{\_} \text {variance }}$|CPU占用波动幅度序列| -|$cpu_{i}$|第$i$段时间内的CPU负载标准差
原本和下面sigmod激活函数$\sigma$冲突| -|$\vec{G}_{gpu}$|GPU占用率序列| -|$g_i$|第$i$时段的GPU使用情况| -|$\vec{M}_{mem\_growth}$|内存占用增长趋势向量| -|$m_i$|第$i$时段的内存占用量| -|$\vec{S}_{port}$|端口开放状态序列| -|$s_i$|第$i$时段内特定端口的活动状态| -|$\vec{D}_{dll}$|系统调用加载的DLL列表| -|$d_i$|第$i$个加载的DLL| -|$\vec{U}_{activity}$|用户活动事件序列| -|$u_i$|第$i$时段内的活动频率| -|$\vec{T}_{therad}$|线程活动序列| -|$thr_i$|第$i$段时间内新建或销毁的线程数量
这里原本和下面的时间$t_i$冲突,遂修改| -|$\vec{L}_{connection}$|连接保持时间分布| -|$l_i$|第$i$段时间内的连接持续时长| -|$f_{HB}$|心跳包的时间间隔分布| -|$\vec{E}_{enc\_ratio}$|加密流量的比例| -|$e_i$|第$i$段时间内的加密包占总流量的比例| -|$\vec{P}_{small}$|小数据包数量序列| -|$p_i$|第$i$段时间内小于特定大小(如100字节)的数据包数量| -|$\vec{G}_{geo\_time}$|IP地址与时间的映射关系| -|$ip_i$|第$i$个时段内的通信IP地址| -|$t_i$|访问$ip_i$的时间| -|$\vec{G}_{geo_{ip}}$|通信IP地址的地理分布| -|$geo_i$|第$i$时段内的IP地理位置| -|$\vec{Q}_{proto}$|协议切换序列| -|$q_i$|第$i$时段的主要传输协议| -|$\vec{F}_{handel}$|文件句柄数量(列表)| -|$f_i$|第$i$段时间的文件句柄数量| -|$\vec{C}_{cache}$|缓存大小(列表)| -|$c_i$|第$i$段时间的缓存大小| -|$\vec{P}_{peak}$|数据包重传率(列表)| -|$pea_i$|第$i$段时间的流量峰值
原本和上面小于特定大小数据包数量冲突| -|$\chi(t)$|特征向量(包含在$t$时刻的所有主机和网络维度特征)| -|$\mathcal{M}$|特征交互矩阵| -|$\{S_t\}$|状态序列| -|$\{O_t\}$|观测序列| -|$\textbf{A}$|状态转移矩阵| -|$a_{ij}$|状态转移矩阵中的一个元素| -|$\textbf{B}$|观测概率矩阵| -|$b_i\left(O_t\right)$|观测概率矩阵中的一个元素| -|$\pi$|初始状态分布| -|$\hat{\chi}(t)$|LSTM预测序列| -|$R(t)$|实际值与预测值的残差| -|$\mathcal{F}$|总体多维特征模型| -|$\sigma$|sigmoid激活函数| -|$F_{handle\_perturb}\left(t\right)$|对特定文件路径执行间歇性的读写操作的干扰函数| -|$\delta\left(t\right)$|单一文件访问操作| -|$k$|触发周期内的总操作次数| -|$\epsilon_{mem}\left(t\right)$|小幅度随机内存分配函数| -|$\mathcal{R}_{mem}\left(t\right)$|${\vec{C}}_{cache}\left(t\right)$与${\vec{M}}_{mem\_growth}\left(t\right)$的残差| -|$\epsilon_{cpu}\left(t\right)$|CPU周期性微扰负载| -|$\mathcal{R}_{cpu}$|扰动前后的${\vec{P}}_{cpu\_variance}$残差| -|$T_{thread\_perturb}\left(t\right)$|线程扰动函数| -|$\delta_{thr}(t)$|单个线程任务的创建或销毁操作
原本和单一文件访问操作冲突| -|$\mathcal{R}_{thread}\left(t\right)$|${\vec{T}}_{thread}\left(t\right)$的响应变化量| -|$\epsilon_{gpu}\left(t\right)$|GPU扰动函数| -|$\mathcal{R}_{gpu}\left(t\right)$|${\vec{G}}_{gpu}\left(t\right)$与$\epsilon_{gpu}\left(t\right)$的残差| -|$\mathcal{F}_{indirect}$|综合间接触发模型| -|$\mathcal{X}_{trigger}(t)$|触发特征序列| -|$\epsilon_{jitter}\left(t\right)$|小幅度的网络抖动| -|$D_{total}(t)$|时刻$t$的总延迟为| -|$D_{base}$|基础延迟值| -|$\mathcal{R}_{retrans}\left(t\right)$|扰动前后的重传差值| -|$\mathcal{R}_{peak}\left(t\right)$|周期性负载触发函数| -|$P_{peak}\left(t\right)$|网络请求波动| -|$\mathcal{R}_{peak}\left(t\right)$|${\vec{P}}_{peak}\left(t\right)$的响应波动| -|$E_{enc_ratio}\left(t\right)$|随机包插入函数| -|$\epsilon_{enc}\left(t\right)$|服从泊松分布的随机数据包数量| -|${P}_{small}\left(t\right)$|周期性小数据包干扰函数| -|$\epsilon_{small}\left(t\right)$|周期性数据包数量| -|$\mathcal{R}_{small}\left(t\right)$|${\vec{P}}_{small}\left(t\right)$的波动量| -|$G_{geo_time}\left(t\right)$|IP地理位置序列函数 | -|$\epsilon_{geo}\left(t\right)$|多地IP地址的扰动| -|$\mathcal{R}_{geo}\left(t\right)$|${\vec{G}}_{geo_time}\left(t\right)$的变化率| -|$\mathcal{F}_{network}$|网络特征触发模型| -|$\mathcal{X}_{net\_trigger}\left(t\right)$|网络特征触发序列| -|$\mathcal{F}_{fusion}$|特征融合与联合判决模型| -|$\mathcal{X}_{host}\left(t\right)$|主机侧特征向量| -|$\mathcal{X}_{network}\left(t\right)$|网络侧特征向量| -|$\mathcal{X}_{fusion}\left(t\right)$|联合特征向量| -|$\mathcal{R}_{fusion}$|联合特征响应差值| -|$\mathbf{M}_{fusion}$|使用主机和网络侧特征交互矩阵| -|$\mathcal{F}_{fusion}$|多层神经网络模型| -|$\mathcal{D}_{fusion}$|联合判决准则| -|$\theta$|判决阈值| -|$bit_i$|信息比特
原本的$b_i$和“观测概率矩阵中的一个元素”冲突| -|$B_i$|信息比特$bit_i$经过傅里叶变换后得到的频域特征| -|$\mathcal{D}_{blind}$|盲解码器| -|$\hat{b}$|隐藏信息序列| -|$\mathcal{X}_{obs}$|从观测流量中提取的嵌入特征| -|$D_{KL}$|嵌入前后特征分布的相似度| -|$\mathcal{F}_{embed}$|综合优化的嵌入模型| -|$\mathcal{U}_{ch}\left(t\right)$|评估每个通道在时间$t$的传输效果的评分函数| -|${\mathrm{SNR}}_{ch}\left(t\right)$|信噪比| -|${\mathrm{BW}}_{ch}\left(t\right)$|带宽占用| -|${\mathrm{Hide}}_{ch}\left(t\right)$|隐蔽性| -|$w_i$|权重参数| -|$ch$|信息传输通道| -|$ch^\ast\left(t\right)$|最佳通道选择| -|$\lambda\left(t\right)$|节奏参数| -|$\mathrm{Rate}\left(t\right)$|传输速率| -|$\mathrm{\Delta}t_{send}$|包发送时间间隔| -|$\mathrm{Acc}\left(t\right)$|接收端实时计算接收信息的准确率| -|$\mathcal{F}_{adapt}$|综合设计的数学模型| -|$C(b)$|编码规则后的比特序列|