1. Getting Started2. Your First Program3. Listening to your User4. Decisions5. Functions6. Lists7. Loops8. Objects9. Exceptions10. Intermezzo11. Building Your World12. Making the World More Interesting13. Worldbuilding, part 214. Econ 10115. Endgame16. Appendix Homework Solutions 17. Appendix Common Errors
The first half of the book is more about teaching Python, and is really pretty good, including homework exercises. Better than other things I've tried, including Codecademy and Learn Python The Hard Way, for two reasons: (1) it is good at explaining stuff, and (2) but then it makes you go figure out how to achieve tasks instead of just telling you what to type.
The second half of the book is less about teaching and gets more into creating the game itself, and is not nearly as good as the first half. It feels like the author decided he was running out of space and had to just cram the whole rest of the game in quickly, instead of fully explaining and teaching all the concepts behind it, as he did in the first half. So the methods I was just praising, that were so good about the first half, mostly disappear, in exchange for a lot of just copying the code that he already wrote. It doesn't feel like "Make Your Own Python Text Adventure" so much as "Retype This Python Text Adventure That I Already Made For You". It would have been much better if it was presented as "Now we need a way to do X. Try to find a way to do that using this tool. Now check your answer. Now we're going to increase the complexity in this way." (Much like the rest of the book was.) Instead, it was typing a whole bunch of prefabricated stuff and then briefly explaining why it's right.
Also, crucially, the book needs another thorough review by editor(s). There are several errors, formatting mistakes, etc., that are confusing for beginners who don't already know the language. There are many times when you are supposed to be copying his code into your game files but you don't know where to be typing (e.g., not even what file to type in), and the line numbers in the book don't line up with the line numbers in your own code, presumably because he wrote the whole thing in advance and then is teaching it to you in a different order than he wrote it. Someone needs to go through the whole book from the beginning and do all the exercises and type all the code and save all the files, in the order that it's all presented in the book, and make sure it all works as typed and the line numbers are the same as the ones the users will be seeing on their own screens. And fix the errors with indentation (which is meaningful in Python) and pagination that make the indentation hard to read.
Overall the book is decent and I learned a lot. But it's not nearly as good as it could have been, especially since the first half was so promising.
Want to get into Python but the idea of writing numerous small snippets of code turns you off? Seeking something to actually apply the language to? Give this one a try. I thought that a text-based game would be simple, but this book showed that there is some complexity in it and lots of opportunity for different approaches. This book doesn't cover everything there is to know about Python, its more like a launch pad into other texts.
Personally I would not use this as an actual beginner's tutorial: it's too concise, with too few examples and exercises. Especially towards the end of the book I felt I simply was copying code without fully grasping what I was doing (but: absolute beginner speaking here). However, it is a VERY fun way too get a bit of feeling for Python, and further personalizing the game will probably prove to be a bit more educational.
This book is a complete walkthrough for creating a text adventure game using python as a coding language. I loved how the chapters explained the concepts of python programming as they build on each other while also introducing a text adventure from the very beginning. Great way to learn programming.
Dużo praktycznych treści (wyjątki, praca z modułami, obiektowość, dziedziczenie, slowniki) w zgrabnej formie na rzeczywistym projekcie. pythonowe must-have