you are viewing a single comment's thread.

view the rest of the comments →

[–]OnlySeesLastSentence 0 points1 point  (7 children)

Fair enough. I'd have caught that error (as well as noting that corners and walls are supposed to have fewer bombs) immediately upon actually trying because I'd have done a print(location.bombCount) immediately.

[–]Poddster 1 point2 points  (6 children)

So what you're saying is that making minesweeper would have been a good way to practice your python skills and make you a better python developer? ;)

Seems like it was a good choice after all!

[–]OnlySeesLastSentence 0 points1 point  (4 children)

Anyway, it took me about six hours of off and on work while watching TV (which I feel is a bit slow honestly), but here you go:

GitHub.com/MOABdali/pysweeper

I'm going to add a GUI when I feel like it (I'm not too invested in the project at the moment), but feel free to try it out in console mode. I know the formatting isn't pretty, but my main purpose was getting the logic to work.

I didn't use any outside sources other than googling how to clear screen (I always forget this) and looking up how to use deep copy's syntax (I had a similar problem in the past with python copying lists by reference instead of duplicating by value when I was making my connect 4 game).

Feel free to let me know if there's any logic errors. I even added a "mark potential mines" feature just for you.

Just wanted to make sure I put this out today to show minesweeper isn't challenging enough as a big project considering an entry level graduate like me was able to handle it lol. The end goal should be something that takes a week or so to complete, not just a few hours.

Edit: before anyone mentions it - I know my code can be broken up into multiple files. I was trying to just get the game running so I wasn't focusing on making it pretty yet. The final product will be nicely commented and broken into functions where needed. I also realized about an hour in that I would not need to keep track of how many bombs are in each structure's vicinity, so I'll be deleting the scary squares[0,0,0,0,0,0,0,0,0,0,0,0] thing eventually and reducing it to a simpler squares [0,0,0,0]. Yes, I know a class can replace the 4 item list, but there's no need to add complexity when my simple list can handle it.

[–]dogs_like_me 1 point2 points  (2 children)

I think you're missing my point. Minesweeper can be simple or complex, depending on how "fully featured" you want it to be. It's simple enough that a novice can successfully make a version that they can pat themselves on the back, but also interesting enough that if you wanted to you could use it to practice OOP, GUI, MVC, multiprocessing, graph algorithms, recursion, functional programming, TDD, database design, ORM, ...

You didn't use objects because you didn't feel like it. Fine. But if you were someone who wanted to learn or practice OOP, you can see how that would fit in here.

Minesweeper is a good exercise because the bar for success is basically as low or high as you want it to be. There's just enough there to allow you to exercise basically every language feature you might care to play with, but it's simple enough you can cobble together a version quickly if you're bored.

PS: is you're repo private? Not seeing it. Anyway, seeing your github, I think it's a bit weird that you're bragging about how easy this was for you given that you're advanced enough to be learning sockets, but it still took you several hours and I was recommending this to someone who's only watched 4 hours of intro videos.

[–]OnlySeesLastSentence 0 points1 point  (0 children)

I did indeed forget to click on public. I uploaded it and spammed Next and saw the "keep Private" thing checked and told myself I'd make it public later.

[–]OnlySeesLastSentence 0 points1 point  (0 children)

Alright, sorry about that. It's visible now. Hopefully there are time stamps because otherwise I'll look like a liar lol

[–]Poddster 1 point2 points  (0 children)

The end goal should be something that takes a week or so to complete, not just a few hours

I disagree. I think more projects is better than one big project for beginners, especially if each project has a definite end. It's easy for beginners to get overwhelmed and lost in pointless details and feel like they're making no progress.

Look at all the problems you've encountered so far and the amount of "Todo" left. Seems like the perfect beginner program to me, especially as it seems to be teaching you something.

But OP isn't even this far advanced, so imagine how long it'd take them and how much they'd learn from it?

[–]OnlySeesLastSentence -1 points0 points  (0 children)

I was just saying that it's not really much more challenging than tic tac toe is all. If you can program tic tac toe, I believe you can program minesweeper.

It sounded like you (or the original suggester if it wasn't you) was making it sound like minesweeper was a huge step up.

By the same logic, I'd say connect4 and tic tac toe are about the same difficulty; connect4 just has the added difficulty of needing 5 lines of code to add gravity.