public int DoSet(Pos setPos, Stone myColor, boolean provisionalFlg) {
		int reverseCnt = 0;

		// 設置可能な方向をすべて取得
		ArrayList<Pos> doSetDirection = canSetDirection(setPos, myColor);

		// 設置可能な方向があるか判断
		if (doSetDirection.size() > 0) {
			// 設置開始位置に一石置くため、反転カウントに1加算
			reverseCnt++;
			if (provisionalFlg) {
				setColor(setPos, myColor);
			}

			for (Pos direction : doSetDirection) {
				// 設置の開始位置をセット
				Pos nawPos = new Pos(setPos.getX(), setPos.getY());

				// 移動できなくなるか、石が置ける場合は処理を終了
				while (true) {
					nawPos.doMove(direction);

					// 探索先の石を取得
					Stone nawStone = getColor(nawPos);

					if (nawStone == Stone.NONE || nawStone == myColor) {
						// 自分の石の場合
						break;
					} else if (nawStone != myColor) {
						// 敵の石の場合
						if (provisionalFlg) {
							setColor(nawPos, myColor);
						}
						reverseCnt++;
					}
				}
			}
		}

		return reverseCnt;
	}