⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 move.cpp

📁 qgo-1.5.4-r3.tar.gz linux下一个很好玩的游戏
💻 CPP
字号:
/** move.cpp*/#include "move.h"#include "matrix.h"Move::Move(int board_size){	brother = NULL;	son = NULL;	parent = NULL;	marker = NULL;	stoneColor = stoneNone;	x = y = -1;	gameMode = modeNormal;	moveNum = 0;	terrMarked = false;	capturesBlack = capturesWhite = 0;	checked = true;	fastLoadMarkDict = NULL;	scored = false;	scoreWhite = scoreBlack = 0;	PLinfo = false;		matrix = new Matrix(board_size);}Move::Move(StoneColor c, int mx, int my, int n, GameMode mode, const Matrix &mat, const QString &s): stoneColor(c), x(mx), y(my), moveNum(n), gameMode(mode), comment(s){	brother = NULL;	son = NULL;	parent = NULL;	marker = NULL;	capturesBlack = capturesWhite = 0;	terrMarked = false;	checked = true;	fastLoadMarkDict = NULL;	scored = false;	scoreWhite = scoreBlack = 0;	PLinfo = false;		matrix = new Matrix(mat);	// Make all matrix values positive	matrix->absMatrix();}Move::Move(StoneColor c, int mx, int my, int n, GameMode mode, const QString &s): stoneColor(c), x(mx), y(my), moveNum(n), gameMode(mode), comment(s){	brother = NULL;	son = NULL;	parent = NULL;	marker = NULL;	capturesBlack = capturesWhite = 0;	terrMarked = false;	checked = false;	matrix = NULL;	fastLoadMarkDict = NULL;	scored = false;	scoreWhite = scoreBlack = 0;	PLinfo = false;}Move::~Move(){	delete matrix;	delete fastLoadMarkDict;}// We do not overwrite the operator == as well, as this is used to compare the// pointers for faster operation.bool Move::equals(Move *m){	if (m == NULL)		return false;		if (x == m->getX() && y == m->getY() &&		stoneColor == m->getColor() &&		moveNum == m->getMoveNumber() &&		gameMode == m->getGameMode())		return true;		return false;}const QString Move::saveMove(bool isRoot){	QString str;		if (!isRoot)		str += ";"; //"\n;";		if (x != -1 && y != -1 && gameMode != modeEdit)	{		// Write something like 'B[aa]'		str += stoneColor == stoneBlack ? "B" : "W"; 		str += "[" + Matrix::coordsToString(x-1, y-1) + "]";	}		// Save edited moves	str += matrix->saveEditedMoves(parent != NULL ? parent->getMatrix() : 0);		// Save marks	str += matrix->saveMarks();		// Add nodename, if we have one	if (!nodeName.isNull() && !nodeName.isEmpty())	{		// simpletext		str += "N[";		str += nodeName;		str += "]";	}	// Add next move's color	if (PLinfo)	{		if (PLnextMove == stoneBlack)			str += "PL[B]";		else			str += "PL[W]";	}	// Add comment, if we have one	if (!comment.isNull() && !comment.isEmpty())	{		// text		QString tmp = comment;		int pos = 0;		while ((pos = tmp.find("]", pos)) != -1 && static_cast<unsigned int>(pos) < tmp.length())		{			tmp.replace(pos, 1, "\\]");			pos += 2;		}		str += "C[";		str += tmp;		str += "]";	}	// time info	if (timeinfo && !isRoot && (int) timeLeft)	{		if (stoneColor == stoneBlack)			str += "BL[";		else			str += "WL[";		str += QString::number(timeLeft);		str += "]";		// open moves info		if (openMoves > 0)		{			if (stoneColor == stoneBlack)				str += "OB[";			else				str += "OW[";			str += QString::number(openMoves);			str += "]";		}	}	// Add unknown properties, if we have some	if (!unknownProperty.isNull() && !unknownProperty.isEmpty())	{		// complete property		str += unknownProperty;	}		return str;}void Move::insertFastLoadMark(int x, int y, MarkType markType, const QString &txt){	if (fastLoadMarkDict == NULL)	{		fastLoadMarkDict = new QIntDict<FastLoadMark>;		fastLoadMarkDict->setAutoDelete(TRUE);	}		FastLoadMark *flm = new FastLoadMark;	flm->x = x;	flm->y = y;	flm->t = markType;	flm->txt = txt;		fastLoadMarkDict->insert(Matrix::coordsToKey(x, y), flm);}bool Move::isPassMove(){  if ((x==20) && (y==20))    return true;  return false;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -