void GameStartLayer::regret(CCObject *) { if (_steps.size() == 0) { return; } Step *step = *_steps.rbegin(); _steps.pop_back(); //! 具体恢复工作 Stone *s = _s[step->moveid]; s->_proper._row = step->rowFrom; s->_proper._col = step->colFrom; s->setPosition(s->fromPlate()); Stone *killed; if (step->killid != -1) { killed = _s[step->killid]; killed->_dead = false; killed->setVisible(true); } delete step; //! 隐藏选中框 _selectid = -1; //_selectedSprite->setVisible(false); _selectedSprite->setPosition(s->getPosition()); }
void GameStartLayer::computerMove(float) { Step*step = AI::getStepABS(this, 2); //Step *step = AI::getStep(this, 2); Stone *moveStone = _s[step->moveid]; moveStone->_proper._row = step->rowTo; moveStone->_proper._col = step->colTo; moveStone->setPosition(moveStone->fromPlate()); _bRedTurn = !_bRedTurn; if (step->killid != -1) { Stone *killStone = _s[step->killid]; killStone->_dead = true; killStone->setVisible(false); } _selectedSprite->setPosition(moveStone->getPosition()); _steps.push_back(step); }