"Will have" refers to an event in the future that precedes some other event in the future. "By the time the police arrive, I will have hidden the evidence." At some point in the future the police will arrive. Before that time, but still after the present time, I will hide the evidence.
"Would have" refers to a past hypothetical. It is used when you want to say that an event didn't happen, but that in some alternate universe where conditions where different, it did happen. (Okay, that's an odd wording, but I'm struggling how to express the idea without using the words "would have". To say, "would have" refers to something that would have happened ..." probably doesn't help. :-) Like, "If Sally had passed the test, she would have gotten the job." Sally didn't pass the test and didn't get the job, but if she had passed the test, then she would have gotten the job. "Jack would have won a fair contest." Jack lost the contest, but if it had been fair, he would have won. (Or perhaps there never was any contest, but if there had been a fair one, he would have won. Depends on context.) The condition doesn't necessarily have to be spelled out in a simple IF/THEN construct. You could say, "Mr Smith died before I was born. I would have liked to have known such a man." In this case the condition is clear from the context: if our life-spans had overlapped. It could certainly be more subtle.
I'm struggling to think of any other use of "would have". If another poster here thinks of one, please feel free to shout it out.
You could not use "would have" instead of "will have" in the above paragraph, because (a) there is no condition on Jack selecting the living quarters, and (b) even if there was, "would have" is used for past events, not future events.
This sense of can is what linguists call a negative polarity item (NPI). You're already aware that can't can be used to mean "is not possible", and you clearly have little difficulty accepting that can can be used to mean "is possible" when the context effectively negates it ("I don't think that …"). So the tricky part is just recognizing that in English, negative polarity items are also licensed by (i.e., allowed to occur in the context of) questions.
Another negative polarity item is any; as you can see from these examples, they have similar distributions:
- Direct negation:
- 1 isn't greater than any other positive integers.
- 2 can't be greater than 3.
- Negation in a matrix (containing) clause:
- I don't think 1 is greater than any other positive integers.
- I don't think that 2 can be greater than 3.
- A question:
- Is 1 greater than any other positive integers?
- Can 2 be greater than 3?
- Use after only:
- Only 1 is greater than any other positive integers. [This is false, of course, but the statement is grammatical.]
- Only 2 can be greater than 3. [Ditto.]
Note that not all NPIs are licensed by the exact same contexts: some require more thoroughly negative contexts than others. Also, a word can be an NPI in one dialect, or in one register, without being an NPI in a different dialect or register. So this is a rough observation, rather than an firm guarantee of identical behavior. But it's a good first approximation.
Best Answer
When you are asking someone to practice, you are talking about the present and future, so you use the present tense:
When the person tells you about their practice habits, they can use "can" if they're talking about the present:
If they're talking about the past, rather than the present, then they use the past tense, "could."