private boolean impossibleAlmostMill(GameBoard board, GamePiece p, Team other){
			int pNext = (p.getP()+1) % 8; //next spot on the ring

			int pPrev = p.getP()-1; //p minus one mod eight
			if (pPrev < 0) {
				pPrev+=8;
			}
			
			//--MILL DETECTION---------------------------------------
			if(p.getP() % 2 == 0) { //corner piece
				//if(pPrev <= 0) pPrev = 7;
				if(board.checkForTeamPiece(other, p.getR(),pNext)) {
					//There is an adjacent piece that is a piece that belongs to the enemy. It is almost in a mill.
					//However, it might be blocked already by our piece, so ignore it being almost in a mill.
					if (board.checkForTeamPiece(other, p.getR(),pPrev)){
						return true; //it can get a mill if a piece moves here. Kill it
					}
				}
			}
			else{ //center piece
				int rNext = (p.getR()+1) % 3;
				int rPrev = p.getR()-1;
				if (rPrev<0){
					rPrev+=3; //rollover
				}
				
				if(board.checkForTeamPiece(other, p.getR(),pNext)) { //piece adjacent to this square in the next position
					if (board.checkForTeamPiece(other, p.getR(),pPrev)) {
						//there is a piece on both sides of this square, this code might be redundant
						return true;
					}
				}
				if (board.checkForTeamPiece(other, rNext, p.getP())) {
					if (board.checkForTeamPiece(other, rPrev, p.getP())){
						return true;
					}
				}
			}
			//no mill can be formed directly here
			return false;
		}