public boolean canBePut(int x, int y,int wOrB) {
		boolean canBeDown = false;
		
		if (model[x][y] == 1 || model[x][y] == -1){//该点已有子，则不能再落子
			return false;
		}else {//没有子，就恢复成0（之前有可能被暂时标记为2，在此处恢复为0）
			model[x][y] = 0;
		}
		
		for (int i = 0; i <= 7; i++) {//check 8 directions one by one
			boolean thisOk = false;//标记这个方向是否可以
			
			Point checkP = new Point(x, y);
			do{
				if(!changeCheckPoint(checkP, i)) {//这条路出了棋盘，不可以
					thisOk = false; //pass
					break;
				}
				if(model[checkP.x][checkP.y] + wOrB == 0){//中间遇到对手的棋，标记为有可能
					thisOk = true;
				}else {//遇到自己的棋，不用再往前查了
					break;
				}
			}while(true);
			
			if(thisOk && model[checkP.x][checkP.y] == wOrB){//如果曾被标记为有可能，并且现在遇到自己的棋，证明这个方向可以
				canBeDown = true; //标记该点可以落子
				model[x][y] = 2; //can be put now
			}
			
		}

		return canBeDown;
	}