For starters you need to know what the states the values represent (you should remember this from k&r)
0 we are out of a word, but not via newline (lets call this character type "a one").
1 we are out of a word, via a newline ("a two" or "a newline").
2 we entered a word ("a zero").
3 we are in a word ("a zero").
So we know we need 4 rows in the table
{} {} {} {}
lets fill the 0th row first, we aren't in a word so the only states we can enter are 0,1 and 2. That's helpful cause we can fill out the 1st element
{,0,} {} {} {} (a one sends us to the first row)
{[12],0,[12]} {} {} {}(we know 3 isn't a possible destination as we are out of a word)
{1,0,2} {} {} {} (actually we have a choice of {1,0,2} or {2,0,1} I'll show 1,0,2 but this swaps the first 2 args of print at the end)
{1,0,2} {} {1,0,2} {} (since newline is also out of a word we have the same options)
{1,0,2} {3,0,2} {1,0,2} {} (now 3 is a possible destination if we get zero. A one will take us to state 0 and a newline to state 2 as before)
{1,0,2} {3,0,2} {1,0,2} {3,0,2} (now 0,2, and 3 are our only possible states)
As you can see, there is nothing magic about it.
The parent seems to be using the term "magic numbers" incorrectly.
https://en.wikipedia.org/wiki/Magic_number_(programming)
For starters you need to know what the states the values represent (you should remember this from k&r)
0 we are out of a word, but not via newline (lets call this character type "a one").
1 we are out of a word, via a newline ("a two" or "a newline").
2 we entered a word ("a zero").
3 we are in a word ("a zero").
So we know we need 4 rows in the table
{} {} {} {}
lets fill the 0th row first, we aren't in a word so the only states we can enter are 0,1 and 2. That's helpful cause we can fill out the 1st element
{,0,} {} {} {} (a one sends us to the first row)
{[12],0,[12]} {} {} {}(we know 3 isn't a possible destination as we are out of a word)
{1,0,2} {} {} {} (actually we have a choice of {1,0,2} or {2,0,1} I'll show 1,0,2 but this swaps the first 2 args of print at the end)
{1,0,2} {} {1,0,2} {} (since newline is also out of a word we have the same options)
{1,0,2} {3,0,2} {1,0,2} {} (now 3 is a possible destination if we get zero. A one will take us to state 0 and a newline to state 2 as before)
{1,0,2} {3,0,2} {1,0,2} {3,0,2} (now 0,2, and 3 are our only possible states)
As you can see, there is nothing magic about it.