Пример #1
0
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);
}
Пример #2
0
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....");
	}
}
Пример #3
0
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();

}
Пример #4
0
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);
}