You may have have thought that games like Mario, Donkey Kong and so on were hard at the time you were playing them, but you probably didn't guess that they were NP-hard.
NP-hard problems are in a sense the ones that are most difficult to solve by computational means because the time it takes to find a solution tends to increase so quickly with the size of the problem that it just isn't practical to perform the computation.
Now we have some results from computer scientists at Universite Libre de Bruxelles and MIT Computer Science and Artificial Intelligence Laboratory (CSAIL) that many classic games contain within them an NP-hard problem. It is a bit like the discovery of a black hole at the center of every galaxy. Should either fact be surprising?
Computer games often involve an element of search, and many NP-hard problem are about searching for a path or some arrangement of things that satisfies a condition. These are the sorts of things that get put in games to add a splash of logical difficulty to the physical skill of clicking buttons at the right time. Indeed, the clicking of the button at the right time is factored out of these proofs of complexity - these are results that apply to a perfect player with infinite speed and reaction times of zero.
The proofs are based on showing that the problem of deciding if a goal point is reachable from a starting point is NP-hard. The games are also generalized in that the size of the board is increased.
With these small changes it is proved that the following games are NP-hard:
Legend of Zelda
The results apply to
Super Mario Bros. 1, 3, Lost Levels
Super Mario World
Donkey Kong Country 1.3
All Legend of Zelda games except Zelda II: The Adventure of Link
All Metroid games
All Pokemon role-playing games
So are all platform games NP-hard?
Almost certainly not, but are all "good" platform games NP-hard - a much more interesting problem.
Recently we reported that both Chromium and Safari were continuing to support Apple's Touch API, despite the fact that the opposing Pointer API had been adopted as a W3C standard. Now we have the good [ ... ]