|
6 | 6 | // 棋子ID映射 (黑方0-15, 红方16-31): |
7 | 7 | // 黑: 车0,马1,象2,士3,将4,士5,象6,马7,车8,炮9,炮10,卒11-15 |
8 | 8 | // 红: 车16,马17,象18,士19,帅20,士21,象22,马23,车24,炮25,炮26,兵27-31 |
| 9 | +// |
| 10 | +// 棋盘坐标: row 0-9 (0=黑方底线/上方), col 0-8 (0=左侧) |
| 11 | +// 九宫格: 黑方 row 0-2, col 3-5; 红方 row 7-9, col 3-5 |
| 12 | +// 黑方半场: row 0-4; 红方半场: row 5-9 |
9 | 13 |
|
10 | 14 | QVector<PuzzleConfig> getBuiltinPuzzles() |
11 | 15 | { |
12 | 16 | QVector<PuzzleConfig> puzzles; |
13 | 17 |
|
14 | | - // 残局1: 大刀剜心 |
| 18 | + // ============================================================ |
| 19 | + // 残局1: 双车错 (红先胜) |
| 20 | + // 红双车配合,逼将入绝路 |
| 21 | + // 布局: 黑将d10, 黑士e10; 红车a9, 红车h3, 红帅e1 |
| 22 | + // 思路: 双车交替将军,逐步逼杀 |
| 23 | + // ============================================================ |
15 | 24 | { |
16 | 25 | PuzzleConfig p; |
17 | | - p.name = "大刀剜心"; |
18 | | - p.description = "红先胜,经典杀法残局"; |
| 26 | + p.name = "双车错"; |
| 27 | + p.description = "红先胜,双车交替将军"; |
19 | 28 | p.redFirst = true; |
20 | 29 | p.playerIsRed = true; |
21 | 30 | p.pieces = { |
22 | | - {4, 0, 4}, // 黑将 |
23 | | - {3, 0, 3}, // 黑士 |
24 | | - {5, 0, 5}, // 黑士 |
25 | | - {24, 1, 4}, // 红车 |
26 | | - {25, 2, 4}, // 红炮 |
27 | | - {20, 9, 4}, // 红帅 |
| 31 | + {4, 0, 3}, // 黑将 d10 (row=0,col=3) 九宫内✓ |
| 32 | + {5, 0, 4}, // 黑士 e10 (row=0,col=4) 九宫内✓ |
| 33 | + {16, 8, 0}, // 红车 a2 (row=8,col=0) |
| 34 | + {24, 6, 7}, // 红车 h4 (row=6,col=7) |
| 35 | + {20, 9, 4}, // 红帅 e1 (row=9,col=4) 九宫内✓ |
28 | 36 | }; |
29 | 37 | puzzles.append(p); |
30 | 38 | } |
31 | 39 |
|
32 | | - // 残局2: 双车错 |
| 40 | + // ============================================================ |
| 41 | + // 残局2: 马后炮 (红先胜) |
| 42 | + // 经典马后炮杀法:马控制将的退路,炮借马为架将军 |
| 43 | + // 布局: 黑将e10, 黑士d9, 黑卒e8; |
| 44 | + // 红马d8, 红炮e3, 红帅d1 |
| 45 | + // 思路: 马跳到关键位置后炮将军,形成马后炮绝杀 |
| 46 | + // ============================================================ |
33 | 47 | { |
34 | 48 | PuzzleConfig p; |
35 | | - p.name = "双车错"; |
36 | | - p.description = "红先胜,双车配合杀法"; |
| 49 | + p.name = "马后炮"; |
| 50 | + p.description = "红先胜,经典马后炮杀法"; |
37 | 51 | p.redFirst = true; |
38 | 52 | p.playerIsRed = true; |
39 | 53 | p.pieces = { |
40 | | - {4, 0, 4}, // 黑将 |
41 | | - {3, 0, 3}, // 黑士 |
42 | | - {5, 0, 5}, // 黑士 |
43 | | - {0, 1, 0}, // 黑车 |
44 | | - {16, 1, 3}, // 红车 |
45 | | - {24, 2, 5}, // 红车 |
46 | | - {20, 9, 4}, // 红帅 |
| 54 | + {4, 0, 4}, // 黑将 e10 (row=0,col=4) 九宫内✓ |
| 55 | + {3, 1, 3}, // 黑士 d9 (row=1,col=3) 九宫内✓ |
| 56 | + {11, 2, 4}, // 黑卒 e8 (row=2,col=4) |
| 57 | + {17, 3, 2}, // 红马 c7 (row=3,col=2) |
| 58 | + {25, 7, 5}, // 红炮 f3 (row=7,col=5) |
| 59 | + {20, 9, 3}, // 红帅 d1 (row=9,col=3) 九宫内✓ |
47 | 60 | }; |
48 | 61 | puzzles.append(p); |
49 | 62 | } |
50 | 63 |
|
51 | | - // 残局3: 炮辗丹砂 |
| 64 | + // ============================================================ |
| 65 | + // 残局3: 铁门栓 (红先胜) |
| 66 | + // 车炮配合,炮借子为架封锁将门 |
| 67 | + // 布局: 黑将e10, 黑士d10, 黑士f10; |
| 68 | + // 红车a8, 红炮d5, 红帅e1 |
| 69 | + // 思路: 车移至底线配合炮将军 |
| 70 | + // ============================================================ |
52 | 71 | { |
53 | 72 | PuzzleConfig p; |
54 | | - p.name = "炮辗丹砂"; |
55 | | - p.description = "红先胜,炮的精妙运用"; |
| 73 | + p.name = "铁门栓"; |
| 74 | + p.description = "红先胜,车炮配合封锁杀"; |
56 | 75 | p.redFirst = true; |
57 | 76 | p.playerIsRed = true; |
58 | 77 | p.pieces = { |
59 | | - {4, 0, 4}, // 黑将 |
60 | | - {3, 0, 3}, // 黑士 |
61 | | - {0, 2, 0}, // 黑车 |
62 | | - {25, 0, 2}, // 红炮 |
63 | | - {26, 3, 4}, // 红炮 |
64 | | - {16, 2, 8}, // 红车 |
65 | | - {20, 9, 4}, // 红帅 |
| 78 | + {4, 0, 4}, // 黑将 e10 (row=0,col=4) 九宫内✓ |
| 79 | + {3, 0, 3}, // 黑士 d10 (row=0,col=3) 九宫内✓ |
| 80 | + {5, 0, 5}, // 黑士 f10 (row=0,col=5) 九宫内✓ |
| 81 | + {16, 2, 0}, // 红车 a8 (row=2,col=0) |
| 82 | + {25, 5, 3}, // 红炮 d5 (row=5,col=3) |
| 83 | + {20, 9, 4}, // 红帅 e1 (row=9,col=4) 九宫内✓ |
66 | 84 | }; |
67 | 85 | puzzles.append(p); |
68 | 86 | } |
69 | 87 |
|
70 | | - // 残局4: 马后炮 |
| 88 | + // ============================================================ |
| 89 | + // 残局4: 重炮 (红先胜) |
| 90 | + // 双炮叠在同一列,前炮为架后炮将军 |
| 91 | + // 布局: 黑将d9, 黑象c10, 黑卒e8; |
| 92 | + // 红炮d5, 红炮d3, 红帅e1 |
| 93 | + // 思路: 调整炮位形成重炮绝杀 |
| 94 | + // ============================================================ |
71 | 95 | { |
72 | 96 | PuzzleConfig p; |
73 | | - p.name = "马后炮"; |
74 | | - p.description = "红先胜,经典马后炮杀法"; |
| 97 | + p.name = "重炮"; |
| 98 | + p.description = "红先胜,双炮叠杀"; |
75 | 99 | p.redFirst = true; |
76 | 100 | p.playerIsRed = true; |
77 | 101 | p.pieces = { |
78 | | - {4, 0, 4}, // 黑将 |
79 | | - {3, 0, 3}, // 黑士 |
80 | | - {5, 0, 5}, // 黑士 |
81 | | - {23, 2, 3}, // 红马 |
82 | | - {25, 4, 4}, // 红炮 |
83 | | - {20, 9, 4}, // 红帅 |
| 102 | + {4, 1, 3}, // 黑将 d9 (row=1,col=3) 九宫内✓ |
| 103 | + {2, 0, 2}, // 黑象 c10 (row=0,col=2) 象位合法✓ |
| 104 | + {11, 2, 4}, // 黑卒 e8 (row=2,col=4) |
| 105 | + {25, 5, 4}, // 红炮 e5 (row=5,col=4) |
| 106 | + {26, 7, 3}, // 红炮 d3 (row=7,col=3) |
| 107 | + {20, 9, 4}, // 红帅 e1 (row=9,col=4) 九宫内✓ |
84 | 108 | }; |
85 | 109 | puzzles.append(p); |
86 | 110 | } |
87 | 111 |
|
88 | | - // 残局5: 铁门栓 |
| 112 | + // ============================================================ |
| 113 | + // 残局5: 卧槽马 (红先胜) |
| 114 | + // 马占据将旁斜位(卧槽位),配合车将军 |
| 115 | + // 布局: 黑将e10, 黑士d10, 黑车a5; |
| 116 | + // 红马f8, 红车h10, 红帅e1 |
| 117 | + // 思路: 利用卧槽马控制将位,车配合将军 |
| 118 | + // ============================================================ |
89 | 119 | { |
90 | 120 | PuzzleConfig p; |
91 | | - p.name = "铁门栓"; |
92 | | - p.description = "红先胜,车炮配合经典杀法"; |
| 121 | + p.name = "卧槽马"; |
| 122 | + p.description = "红先胜,卧槽马配合车杀"; |
93 | 123 | p.redFirst = true; |
94 | 124 | p.playerIsRed = true; |
95 | 125 | p.pieces = { |
96 | | - {4, 0, 3}, // 黑将 |
97 | | - {5, 1, 4}, // 黑士 |
98 | | - {9, 3, 0}, // 黑炮 |
99 | | - {16, 3, 3}, // 红车 |
100 | | - {25, 5, 3}, // 红炮 |
101 | | - {20, 9, 4}, // 红帅 |
| 126 | + {4, 0, 4}, // 黑将 e10 (row=0,col=4) 九宫内✓ |
| 127 | + {3, 0, 3}, // 黑士 d10 (row=0,col=3) 九宫内✓ |
| 128 | + {5, 1, 5}, // 黑士 f9 (row=1,col=5) 九宫内✓ (蹩马脚) |
| 129 | + {0, 5, 0}, // 黑车 a5 (row=5,col=0) |
| 130 | + {17, 2, 5}, // 红马 f8 (row=2,col=5) |
| 131 | + {24, 3, 7}, // 红车 h7 (row=3,col=7) |
| 132 | + {20, 9, 4}, // 红帅 e1 (row=9,col=4) 九宫内✓ |
102 | 133 | }; |
103 | 134 | puzzles.append(p); |
104 | 135 | } |
|
0 commit comments