rule: 去掉计时规则相关代码
This commit is contained in:
parent
962cece2c5
commit
6173894f20
|
@ -579,7 +579,7 @@ bool Position::reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sprintf(cmdline, "r%1u s%03u t%02u",
|
if (sprintf(cmdline, "r%1u s%03u t%02u",
|
||||||
i + 1, rule.maxStepsLedToDraw, rule.maxTimeLedToLose) > 0) {
|
i + 1, rule.maxStepsLedToDraw, 0) > 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -946,10 +946,6 @@ int Position::update()
|
||||||
*ourSeconds = ret = currentTime - startTime - theirSeconds;
|
*ourSeconds = ret = currentTime - startTime - theirSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rule.maxTimeLedToLose > 0) {
|
|
||||||
check_gameover_condition();
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -971,20 +967,6 @@ bool Position::check_gameover_condition()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rule.maxTimeLedToLose > 0) {
|
|
||||||
phase = PHASE_GAMEOVER; // TODO: Move to below??
|
|
||||||
|
|
||||||
for (int i = 1; i <= 2; i++) {
|
|
||||||
if (elapsedSeconds[i] > rule.maxTimeLedToLose * 60) {
|
|
||||||
elapsedSeconds[i] = rule.maxTimeLedToLose * 60;
|
|
||||||
winner = ~Color(i);
|
|
||||||
gameoverReason = LOSE_REASON_TIME_OVER;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rule.maxStepsLedToDraw > 0 &&
|
if (rule.maxStepsLedToDraw > 0 &&
|
||||||
st->rule50 > rule.maxStepsLedToDraw) {
|
st->rule50 > rule.maxStepsLedToDraw) {
|
||||||
winner = DRAW;
|
winner = DRAW;
|
||||||
|
|
15
src/rule.cpp
15
src/rule.cpp
|
@ -44,8 +44,7 @@ const struct Rule RULES[N_RULES] = {
|
||||||
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
||||||
true, // 走棋阶段不能行动(被“闷”)算负
|
true, // 走棋阶段不能行动(被“闷”)算负
|
||||||
false, // 剩三子时不可以飞棋
|
false, // 剩三子时不可以飞棋
|
||||||
0, // 不计步数
|
0 // 不计步数
|
||||||
0 // 不计时
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"打三棋(12连棋)", // 打三棋
|
"打三棋(12连棋)", // 打三棋
|
||||||
|
@ -67,8 +66,7 @@ const struct Rule RULES[N_RULES] = {
|
||||||
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
||||||
true, // 走棋阶段不能行动(被“闷”)算负
|
true, // 走棋阶段不能行动(被“闷”)算负
|
||||||
false, // 剩三子时不可以飞棋
|
false, // 剩三子时不可以飞棋
|
||||||
50, // 50步
|
50 // 50步
|
||||||
0 // 不计时
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"九连棋", // 九连棋
|
"九连棋", // 九连棋
|
||||||
|
@ -88,8 +86,7 @@ const struct Rule RULES[N_RULES] = {
|
||||||
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
||||||
false, // 走棋阶段不能行动(被“闷”),则由对手继续走棋
|
false, // 走棋阶段不能行动(被“闷”),则由对手继续走棋
|
||||||
false, // 剩三子时不可以飞棋
|
false, // 剩三子时不可以飞棋
|
||||||
0, // 不计步数
|
0 // 不计步数
|
||||||
0 // 不计时
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"莫里斯九子棋", // 莫里斯九子棋
|
"莫里斯九子棋", // 莫里斯九子棋
|
||||||
|
@ -106,8 +103,7 @@ const struct Rule RULES[N_RULES] = {
|
||||||
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
||||||
true, // 走棋阶段不能行动(被“闷”)算负
|
true, // 走棋阶段不能行动(被“闷”)算负
|
||||||
true, // 剩三子时可以飞棋
|
true, // 剩三子时可以飞棋
|
||||||
0, // 不计步数
|
0 // 不计步数
|
||||||
0 // 不计时
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"莫里斯十二子棋", // 莫里斯十二子棋
|
"莫里斯十二子棋", // 莫里斯十二子棋
|
||||||
|
@ -129,7 +125,6 @@ const struct Rule RULES[N_RULES] = {
|
||||||
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
true, // 摆棋满子(闷棋,只有12子棋才出现)算先手负
|
||||||
true, // 走棋阶段不能行动(被“闷”)算负
|
true, // 走棋阶段不能行动(被“闷”)算负
|
||||||
false, // 剩三子时不可以飞棋
|
false, // 剩三子时不可以飞棋
|
||||||
50, // 50步
|
50 // 50步
|
||||||
0 // 不计时
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,7 +38,6 @@ struct Rule
|
||||||
bool isLoseButNotChangeTurnWhenNoWay;
|
bool isLoseButNotChangeTurnWhenNoWay;
|
||||||
bool allowFlyWhenRemainThreePieces;
|
bool allowFlyWhenRemainThreePieces;
|
||||||
Step maxStepsLedToDraw;
|
Step maxStepsLedToDraw;
|
||||||
int maxTimeLedToLose;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define N_RULES 5
|
#define N_RULES 5
|
||||||
|
|
|
@ -245,7 +245,7 @@ void GameController::gameReset()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 读取规则限时要求
|
// 读取规则限时要求
|
||||||
timeLimit = rule.maxTimeLedToLose;
|
timeLimit = 0; // TODO: rule.maxTimeLedToLose;
|
||||||
|
|
||||||
// 如果规则不要求计时,则time1和time2表示已用时间
|
// 如果规则不要求计时,则time1和time2表示已用时间
|
||||||
if (timeLimit <= 0) {
|
if (timeLimit <= 0) {
|
||||||
|
@ -341,7 +341,7 @@ void GameController::setRule(int ruleNo, Step stepLimited /*= -1*/, int timeLimi
|
||||||
int r = position.set_position(&RULES[ruleNo]);
|
int r = position.set_position(&RULES[ruleNo]);
|
||||||
|
|
||||||
char cmdline[64] = { 0 };
|
char cmdline[64] = { 0 };
|
||||||
if (sprintf(cmdline, "r%1u s%03u t%02u", r + 1, rule.maxStepsLedToDraw, rule.maxTimeLedToLose) <= 0) {
|
if (sprintf(cmdline, "r%1u s%03u t%02u", r + 1, rule.maxStepsLedToDraw, 0) <= 0) {
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
string cmd(cmdline);
|
string cmd(cmdline);
|
||||||
|
|
Loading…
Reference in New Issue