中国象棋控件 v2.0.13
载入中...
搜索中...
未找到
ChessSteps.cpp
1// 作者:康林 <kl222@126.com>
2
3#include "ChessSteps.h"
4
5CChessSteps::CChessSteps()
6{
7 m_nSteps = 0;
8}
9
10CChessSteps::~CChessSteps()
11{}
12
13std::string CChessSteps::toString()
14{
15 return m_szSteps;
16}
17
18int CChessSteps::AddStep(strStep step)
19{
20 m_Steps.push_back(step);
21 return 0;
22}
23
24int CChessSteps::AddStep(int i, int j, CPiece::ENUM_QiZi qz, const std::string &szDescript)
25{
26 strStep step = {i, j, qz, szDescript};
27 m_Steps.push_back(step);
28 return 0;
29}
30
31CChessStepsIccs::CChessStepsIccs() : CChessSteps()
32{}
33
34CChessStepsIccs::~CChessStepsIccs()
35{}
36
37int CChessStepsIccs::AddStep(int i, int j, CPiece::ENUM_QiZi qz, const std::string &szDescript)
38{
39 char col = 'A' + i;
40 std::string row = std::to_string(9 - j);
41 switch (m_nSteps % 4) {
42 case 0:
43 m_szSteps += std::to_string(m_nSteps / 4 + 1) + ". ";
44 m_szSteps += col + row;
45 break;
46 case 1:
47 m_szSteps += "-";
48 m_szSteps += col + row;
49 if(!szDescript.empty())
50 {
51 m_szSteps += " {";
52 m_szSteps += szDescript;
53 m_szSteps += "}";
54 }
55 break;
56 case 2:
57 m_szSteps += " ";
58 m_szSteps += col + row;
59 break;
60 case 3:
61 m_szSteps += "-";
62 m_szSteps += col + row;
63 if(!szDescript.empty())
64 {
65 m_szSteps += " {";
66 m_szSteps += szDescript;
67 m_szSteps += "}";
68 }
69 m_szSteps += "\n";
70 break;
71 }
72 m_nSteps++;
73 return 0;
74}
75
76int CChessStepsIccs::GetStep(int &i, int &j, CPiece::ENUM_QiZi &qz, std::string &szDescript)
77{
78 //TODO: 解码着法
79
80 return 0;
81}