There were a couple of big changes in the game since I posted that, though.
287 karma · joined January 4, 2011
There were a couple of big changes in the game since I posted that, though.
The "click separate circle to start a new chain" seems a bit risky - when I play the game on my phone, dragging/swiping tends to skip numbers. I'll try implementing the "clear selection" button suggested by the other commenter first.
There are of course other strategies, but I'll leave that for others to discover. :D
Here's an even longer version of the rules:
Click/tap numbers to connect them to a chain. You can only connect numbers that are at the left, right, top, bottom of the last selected number. As a faster alternative, you can also drag/swipe through the numbers.
When the sum of the chain ends in zero (ie. sum % 10 = 0) you get rewards and side effects depending on whether the chain's length is composite or prime.
- if it's composite (e.g. chain length is 4, 6, or 8 digits long), you gain 2 seconds on your time for each digit connected. However, each digit also gives you a 1 in 4 chance of replacing a digit in the grid with a "blocker", a cell that cannot be selected. - if it's prime (e.g. 2, 3, 5), you only gain 0.5 seconds for each digit, but instead of spawning blockers, each digit now has a 1 in 5 chance of removing a blocker in the grid.
Either way, the point value of the chain is ((sum / 10) ^ 3) * 5.
So connecting 1-2-3-4 gives you 5 points and 8 extra seconds but has 4 chances of spawning blockers. On the other hand, connecting 9-3-8 gives you 40 points, 1.5 extra seconds, and 3 chances to clear blockers.
Game ends when the time runs out. The goal is 1 million points, but the game will not stop you from playing when you reach that point.
After thinking about it a bit, it seems that your reasons for suggesting PHP for beginners are about the same as the reasons people gave three decades ago when suggesting BASIC as a language for beginners, namely the norm of having GOTO and global variables everywhere.
Just as GOTO and global variables make it easy for a beginner to easily pick up programming, embedding raw code in your pages and having only one file organization makes it a lot easier to pick up web programming. And yet at the same time, all four are eventually shown to be "considered harmful" - the only ones who advance are those who are willing to abandon the first things they learn while the rest are doomed to mediocrity.
Now don't get me wrong, I don't think PHP or even BASIC is inherently bad (well, they are, but at least they're not MUMPS or Brainfuck). I just don't think teaching bad practices to newbie developers is a good way to promote a language.
Being able to change the :id or timestamps of the post isn't anywhere near the SQL injection vulnerabilities I've seen in many tutorials in other languages/frameworks.
I agree, though, I wouldn't recommend Rails to people who can't bother to read documentation.
http://edgeguides.rubyonrails.org/security.html#mass-assignm...
Heck, I even learned this way back when I was learning Rails:
http://railscasts.com/episodes/26-hackers-love-mass-assignme...
They either get a personal life and move to a company that allows that, or burnout / go insane because they don't have anything to live for.
Not everyone is built to live just for "code".
For one, the book is targeted to Filipino students - teachers may want to modify the names/scenarios to better suit their country. Sure, gives them a low-hanging trolling fruit (e.g. putting vulgar words in the i18n section), but I really don't have the time to review these forks.
2. What Ryan Bigg said. :D I sometimes get a couple of extra hours at the end of a training course to teach topics like Haml, Devise, Paperclip, etc. But that's only if the students are experienced developers; I'd get in trouble if I put these topics in the course outline but couldn't cover them because the students had to take time to absorb the main topics.
Here's what it looks like with Rspec: http://www.bryanbibat.net/images/rspec-haml.png