I made Go Fish with python 3.6 [feedback wanted]


I made this thinking it would be easy…
three weeks later…

I tried to be smart and step by step on it but i quickly lost track of everything.
I basically spent the last week brute forcing programming it until it kinda worked. I’m pretty sure it has tons of bugs but i don’t really know how to find them…

Could you look through it for what i did wrong cause i know i did a lot of things wrong. I just don’t know exactly what they are. Also any improvement ideas would be appreciated.

How do you build complicated projects without getting pulled into increasing complexity?

I honestly don’t see too much complexity here, mostly I think you just think it’s overly complex due to a lack of experience. However, here’s some advice on organizing a project as you work:

  1. Write up or draw a description of what you want to make. Screens, a prospectus, doodles, whatever.
  2. Turn that into a list of features and rank them by must have and nice to have. A must have is defined as, “If I remove this, do I still have a go fish game?” If you say, “No this is essential to a go fish game” then it’s must have. Everything else is nice to have.
  3. Throw out all the nice to have features and then really re-evaluate your must have. Throw out more.
  4. Take this list of features, and start writing a TODO list for each feature that lists out what you need to create to make that feature happen. Until you really start coding you won’t be too accurate about this, but it’s your start.
  5. Start at the most essential, but easiest TODO and do it. Then make sure it worked, then clean up the code you just wrote. Don’t pile crap on top of crap. Pile new crap on top of more polished crap.
  6. Then just work the TODO list, finishing and throwing out as you go. The key to reducing complexity is to ruthlessly simplify and throw ideas out.

Now, once you have the essential game working, go back and start adding in the nice to have features.

One final thing, don’t try to think in Python. Write English comments describing what you want the code to do, then write the Python to make that happen. Do this religiously.

Thank you for the feedback. I’m trying to follow your list but its really hard for me to even know what i need to make for go fish. And i never know what is the easiest.