void SceneGame::doRegret() { if (_steps->size() == 0) return; Step* step = *_steps->rbegin(); _steps->pop_back(); Chess* s = _c->at(step->moveid); s->_row = step->rowFrom; s->_col = step->colFrom; s->setPosition(s->fromPlate()); Chess* kill; if (step->killid != -1) { kill = _c->at(step->killid); kill->_dead = false; kill->setVisible(true); } _bRedTurn = !_bRedTurn; delete step; _selectid = -1; _selectSprite->setVisible(false); }
void SceneGame::startClient(Ref* sender) { MenuItem* item = (MenuItem*)sender; item->setEnabled(false); Ref* obj = item->getUserObject(); item = (MenuItem*)obj; item->setEnabled(false); _bRedSide = false; if (NetBattle::Connect("127.0.0.1")) { cocos2d::log("client Start Game"); for (int i = 0; i < 32; i++) { Chess* s = _c->at(i); s->_row = 9 - s->_row; s->_col = 8 - s->_col; s->setPosition(s->fromPlate()); } NetBattle::RecvStart(); schedule(schedule_selector(SceneGame::CheckRecv)); } else { cocos2d::log("Connect failure...."); } }
void SceneGame::restartInit() { // init Chess for (int i = 0; i < 32; ++i) { _c->at(i)->initChess(i, true); } if (!_bRedSide) { for (int i = 0; i < 32; i++) { Chess* s = _c->at(i); s->_row = 9 - s->_row; s->_col = 8 - s->_col; s->setPosition(s->fromPlate()); } NetBattle::RecvStart(); schedule(schedule_selector(SceneGame::CheckRecv)); } _selectSprite->setOpacity(0); _selectid = -1; _bRedTurn = true; _steps->clear(); }
void SceneGame::ComputerMove(float dt) { Step* step = AI::getStepByAlphaBetaSearch(this, 2); Chess* moveChess = _c->at(step->moveid); moveChess->_row = step->rowTo; moveChess->_col = step->colTo; _bRedTurn = !_bRedTurn; moveChess->setPosition(moveChess->fromPlate()); if (step->killid != -1) { Chess* killChess = _c->at(step->killid); killChess->_dead = true; killChess->setVisible(false); } _steps->push_back(step); }