The Computational Complexity of Some Games and Puzzles With Theoretical Applications