Thread:SquareFingers/@comment-25827645-20141212102114/@comment-5334617-20141216025317

As I said before, my idea of what makes an article 'good' is not the final word. You're absolutely entitled to disagree with me, and to leave sections the way they are despite my comments. You asked for my help, not for me to be boss of your writing, and I hope to honour that relationship properly.

I will stand by what I said, though. The health of a character partitions the state of that character into two distinct categories: alive and dead. The health is represented by a number. Numbers are partitioned, very naturally, at 0. An experienced programmer will map concepts in a way that causes the least amount of dissonance.

There is a partition at 1, yes, you can say numbers are divided into those greater than one, and those less than one, and one itself; or, partition numbers into those greater than 52.125, those less than 52.125, and 52.125 itself. But the most fundamental partition of numbers is at 0.

Or, put another way, the broadest qualitative aspect of health is alive or dead, the broadest qualitative aspect of numbers is nonnegative or negative. Where such a symmetry exists, choosing to break it is... well, untidy. When  is 5, that means 4.2 damage will kill you? Hm.

You're right that it is easier to recognize the code symbol  as the mathematical relation &lt; than it is to recognize   as &le;. As this relates the current issue, I would suggest that the expression  indicating death leads to a very natural interpretation of what   represents: the amount of damage that the player can endure before dying (for as long as that interpretation can make sense, i.e. for nonnegative numbers). "I can endure no damage before dying" does not mean the player is dead; indeed, the more natural interpretation of that sentence would be that the player is alive.

And I think starting out the tutorial with  is just fine... it's not that I advocate eliminating that kind of expression entirely, right from the beginning. I feel there should be one example of  before the end - and you do have one example, in the line , so that covers that.

This is a good time to introduce two new types of values: TRUE and FALSE

I think a better phrasing would be, "This is a good time to introduce two new values: TRUE and FALSE". The values are 1 and 0, which are not of any particular 'type' (on a system level) beyond being numerical (and only the result values of some operators and some system variables). We can assign TRUE or FALSE to a variable like a number or string value also sends an implicitly misleading message, to call them like numbers, when (in this system) they are numbers. - You do mention this in the notes at the end, but I feel it's better to get everything straight from the first, rather than using unnecessarily misleading phrases first and correcting later.

Just so you know: I do consider your tutorials to be gifts, and I do not seem to be ungracious in receiving them. But, frankly, I don't consider myself the target audience. I'd be happy if I can help your gift be better received by those who would benefit from them. Overall, I approve. In particular, I like your  example - I think it's effective at hinting how powerful subroutines can be, without requiring the reader to be a power programmer to recognize that. Above all else, do not let me stop you publishing what you think is fit to publish. It is a valuable contribution to the wiki.