...that's what I mean when I say that computer scientists have been trained to think about certain aspects of logic in a way that doesn't come natural to people and leads to conclusions that almost anybody finds counterintuitive who isn't a computer scientist (like "All flying horses are three-legged").

...it comes down to how you represent natural language quantifiers in logic.

The semantics of "All men are mortal." is that "all" is the quantifier, which takes two higher-order arguments. Using x as the variable that is quantified over, the first argument would have to be a predicate of x and is called the restrictor. The second argument also has to be a predicate of x and is called the body. So "all" is the quantifier. "man" is the restrictor. "mortal" is the body.

Following that notation we would write "All men are mortal" as

all_x { man(x) } { mortal(x) }

Now the question is how to represent this natural language quantifier in first-order logic. Most computer scientists would think

∀x { man(x) -> mortal(x) }

But this is NOT the way Aristotle thought about it, and not the way most human beings naturally think about it. The natural way to think about it is

∃x { man(x) } ∧ ∀x { man(x) -> mortal(x) }

The first part of the statement is what's called "existential import". (cf https://en.wikipedia.org/wiki/Syllogism#Existential_import)

When I say "ex falso quodlibet" I mean this: https://en.wikipedia.org/wiki/Principle_of_explosion

Moving over to the example about flying horses:

all_x { fly(x) ∧ horse(x) } { three-legged(x) }

Without existential import the statement would mean.

∀x { ( fly(x) ∧ horse(x) ) -> three-legged(x) }

Now let's evaluate that within a logical theory that contains some common sense:

∀x horse(x) -> ¬fly(x)

The statement would then become provable. That's unnatural. No "normal" person who hasn't been taught through formal education to think in a particular way about implication would say "Oh yes, all flying horses are three-legged, that sounds perfectly reasonable."

Now WITH existential import, the statement would have to mean

∃x { fly(x) ∧ horse(x) } ∧ ∀x { ( fly(x) ∧ horse(x) ) -> three-legged(x) }

So now, using the same piece of common sense, the statement is no longer provable, but it's negation is (the statement is unsatisfiable). That's how a "normal" person thinks. A normal person would respond by saying "Hang on! There is no such thing as a flying horse! Therefore you are talking utter nonsense."

Going back to the original post: "How many blue cats are bouncing?" means

howmany_x { blue(x) ∧ cat(x) } { bouncing(x) }

Which statement contradicts a state of the universe / game-screen, wherein there are no blue cats, if you interpret the statement by using existential import.

My suggestion was to rephrase as "How many cats are blue and bouncing?" which means

howmany_x { cat(x) } { blue(x) ∧ bouncing(x) }

So now instead of "blue cat" being the restrictor and "bouncing" being the body, you would have "cat" as the restrictor and "blue and bouncing" as the body.

This would be better, because now you can use existential import the way "normal people" do, and still get to the desired result "zero" instead of the result "I can't answer that question". You avoid making a presupposition that contradicts the known state of the universe.