印刷用棋盘工具带源码
https://files.cnblogs.com/files/blogs/714801/BrdTool.7z 12KB, 含.exe和源码(约150行)
用了www.xqbase.com的棋盘。棋子上的字是DrawText出来的,换字体等方便。
bool isRed = zi < 8; CRect rc(CPoint(L + x * S, T + y * S), CSize(S, S)); rc.InflateRect(-2, -2); (isRed ? red : black).Draw(pic, rc.left, rc.top); pic.SetTextColor(isRed ? RGB(0, 0, 0) : RGB(255, 255, 255)); if (x == sel.x && y == sel.y) pic.SetTextColor(RGB(0, 180, 0)); static const char* Z = "123帅\0仕\0相\0马\0车\0砲\0兵\0將\0士\0象\0马\0车\0炮\0卒"; pic.DrawText(&Z[zi * 3], rc, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
象棋巫师可复制FEN, 如 4k4/9/9/9/9/9/9/9/9/4K4 w - - 0 1

int fen_atoi(int c) { switch (toupper(c)) { case 'K': return 0; case 'A': return 1; case 'B': return 2; case 'N': return 3; case 'R': return 4; case 'C': return 5; case 'P': return 6; default: abort(); } } void FromFEN(const char* s = "rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR") { // TODO: 错误检查 memset(pos, 0, sizeof(pos)); for (int y = 0, x = 0; *s && *s != ' '; ++s) { const char c = *s; if (c == '/') (x = 0, ++y); else if (c >= '1' && c <= '9') x += c - '0'; else pos[y][x++] = char((c >= 'a' ? 8 : 1) + fen_atoi(c)); } }
推荐用象棋巫师打谱。打开电脑分析窗口可发现:许多时候电脑走的和职业的一样。有时写棋书的人说这步不好该这么走,哎,电脑也这么认为。
圆想没有毛刺?可先画个大个的,再用IfranView缩小到32x32。| 详解用BitBlt实现透明贴图
找不到WM_ERASEBKGND? 修改Message filter为Window.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
2021-12-12 我讨厌https