当前位置: 首页>>代码示例>>C++>>正文


C++ Position::GetRow方法代码示例

本文整理汇总了C++中Position::GetRow方法的典型用法代码示例。如果您正苦于以下问题:C++ Position::GetRow方法的具体用法?C++ Position::GetRow怎么用?C++ Position::GetRow使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Position的用法示例。


在下文中一共展示了Position::GetRow方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: pos

//------------------------------------------------------------------------------------------------
vector<Position> Rook::GetValidMoves(Board* board) {

	vector<Position> vec;
	Position* curPos = this->GetPosition();
	int row = curPos->GetRow();
	int col = curPos->GetCol();

	// Up
	while (row > 0) {
		if (board->GetPieceAt(--row, col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
	
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}

	// Down
	row = curPos->GetRow();
	col = curPos->GetCol();
	while (row < 7) {
		if (board->GetPieceAt(++row, col) == NULL) { // Blank square
			Position pos(row, col);
			vec.push_back(pos);
		}
	
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) { //enemy
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else // My piece
			break;
	}

	// Left
	row = curPos->GetRow();
	col = curPos->GetCol();
	while (col > 0) {
		if (board->GetPieceAt(row, --col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}

	// Right
	row = curPos->GetRow();
	col = curPos->GetCol();
	while (col < 7) {
		if (board->GetPieceAt(row, ++col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}

	return vec;
}
开发者ID:accolver,项目名称:chess,代码行数:81,代码来源:Rook.cpp

示例2:

Position::Position(const Position& other)
    : m_row(other.GetRow())
    , m_column(other.GetColumn())
{}
开发者ID:hcwndbyw,项目名称:TigerCompiler_Cpp,代码行数:4,代码来源:Position.cpp

示例3: GetRow

bool Position::operator<(const Position& other) const
{
    return GetRow() < other.GetRow() || (GetRow() == other.GetRow() && GetColumn() < other.GetColumn());
}
开发者ID:hcwndbyw,项目名称:TigerCompiler_Cpp,代码行数:4,代码来源:Position.cpp

示例4: pos

//------------------------------------------------------------------------------------------------
vector<Position> Queen::GetValidMoves(Board* board) {

	vector<Position> vec;
	Position* curPos = this->GetPosition();
	int row = curPos->GetRow();
	int col = curPos->GetCol();

	// Up and Left
	while (row > 0 && col > 0) {
		if (board->GetPieceAt(--row, --col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
	
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}

	// Up and Right
	row = curPos->GetRow();
	col = curPos->GetCol();
	while (row > 0 && col < 7) {
		if (board->GetPieceAt(--row, ++col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
	
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}

	// Down and Left
	row = curPos->GetRow();
	col = curPos->GetCol();
	while (row < 7 && col > 0) {
		if (board->GetPieceAt(++row, --col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
	
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}

	// Down and Right
	row = curPos->GetRow();
	col = curPos->GetCol();
	while (row < 7 && col < 7) {
		if (board->GetPieceAt(++row, ++col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
	
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}

	// Up
	row = curPos->GetRow();
	col = curPos->GetCol();
	while (row > 0) {
		if (board->GetPieceAt(--row, col) == NULL) {
			Position pos(row, col);
			vec.push_back(pos);
		}
	
		else if ((board->GetPieceAt(row, col))->GetColor() != this->GetColor()) {
			
			Position pos(row, col);
			vec.push_back(pos);
			break;
		}
		else 
			break;
	}
//.........这里部分代码省略.........
开发者ID:accolver,项目名称:chess,代码行数:101,代码来源:Queen.cpp


注:本文中的Position::GetRow方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。