@Override
	public void move(GameBoard b) {
		initOtherPlayer(b);
		MoveNode root = new MoveNode(b);
		
		addChildren(root);
		//ok now we have a full map.
		
		scoreTree(root);
		//and we know, for each move, the number of wins, losses, and ties possible.
		
		//first, try to avoid losses.
		MoveNode bestNode = new MoveNode(b);
		int mostwins = -1;
		for (MoveNode m: root.getChildren()){
			if (m.lost == 0){
				if(m.wins > mostwins){
					mostwins = m.wins;
					bestNode = m;
				}
			}
		}

		if (mostwins > 0){
			b.place(bestNode.movedown, bestNode.moveacross, this);
			return;
		}
		//if you can't avoid losses
		//chose the one where you win the most.
	
		for (MoveNode m: root.getChildren()){
			if(m.wins > mostwins){	
					mostwins = m.wins;
					bestNode = m;
			}	
		}
		
		
		b.place(bestNode.movedown, bestNode.moveacross, this);
		//for each node, for each possible move, make more children. 

	}