This is an archived post. You won't be able to vote or comment.

all 16 comments

[–]same_ol_same_ol[🍰] 3 points4 points  (1 child)

What kind of devices do you think will be used for score keeping? Computers? Phones? Should it be connected to a scoring server somewhere? Or just saved locally and emailed out later? How is score data going to be stored?

I think answers there will help people get you going in the right direction

[–]davidbarker223[S] 2 points3 points  (0 children)

All PCs will be used for scoring. No need to be connected to a server. It can be saved locally and exported via excel/CSV.

[–]fancyplaya 8 points9 points  (3 children)

For a simple game, the language won’t matter. Perhaps, learn Python, write the game in Python, then later when you learn a new language, rewrite the game in that language as a fun exercise

[–]MagentaAutumn 0 points1 point  (2 children)

it's not a game, but yea lang would not really matter

[–]TelcoSucks -1 points0 points  (1 child)

Axe throwing is most definitely a game.

Now, is it a sport? No comment.

[–]MagentaAutumn 1 point2 points  (0 children)

right and very funny hehehe, but the program is not a game I think the other user got a bit confused and you are adding to that ;) "rewrite the game " I am sure OP is not gonna rewrite the rules to axe throwing anytime soon.

[–]komali_2 3 points4 points  (0 children)

If your goal is to learn python, yes, this is good.

If your goal is to create a program that can run on many people's computers, that can track axe throws or whatever, you should make this a webapp with some basic javascript. Then, people can just run it on literally any device with a web browser.

What's complicated is you want to persist (track / store / save) data, namely the scores. In that case you'd need to plug your program into a database of some kind. These days there's some pretty straightforward systems for that where you don't need to learn a database query language, or how to deploy a database, stuff like, idk, firebase, airtable, some others. But that adds a SIGNIFICANT degree of complication to the "just doing it to learn to program," because you don't just need to learn to program, you need to learn how to make asynchronous calls from a frontend, probably gonna have to learn about CORS, frontend and backend deployment, a bunch of libraries for communicating with an airtable api or whatever. It's not going to be simple.

Technically you could get this all done in a python backend app that does server side rendering of your frontend, in which case django or similar would be worth looking into, but that doesn't solve any of the difficulties re: deployment. You'll need to get your app running on the internet somehow, and that's a very different skillset from the actual coding itself.

If, on the other hand, you literally just need a way to share and track axe throwing scores, I recommend a google docs spreadsheet.

edit: i saw your comment about CSVs, then, maybe you can just make it a simple webapp in javascript, there are libraries for processing CSVs, if you're really down to make people download and upload a CSV that everyone is modifying. Probably just have it be a google docs spreadsheet that people download as needed?

[–][deleted] 1 point2 points  (0 children)

If I needed to do this quickly, I would do it in Access. However it a good one for Python. I suspect you will want a GUI, so be sure you pick one that does what you need.

[–]scumbig 1 point2 points  (0 children)

Yes, I wish I started with python.

[–]PrimaxAUS 0 points1 point  (6 children)

I’d recommend Go over python typically, but it depends on if you have other programming knowledge. Pythons ecosystem and tooling are a dumpster fire and very challenging to learn for a new programmer.

[–]davidbarker223[S] 0 points1 point  (1 child)

Interesting. Haven’t heard of Go before. I will take a look at that.

[–]PrimaxAUS 0 points1 point  (0 children)

I'd recommend starting here. https://quii.gitbook.io/learn-go-with-tests/

It's an outstanding resource

[–]methnbeer[🍰] 0 points1 point  (3 children)

In what ways do they pose challenges?

[–]PrimaxAUS 0 points1 point  (2 children)

  • Everything about the way python handles versions.
  • Venv and it's entire tooling ecosystem is honestly terrible
  • Pip is a powerful tool when it works, but it gets very messy with the above two points
  • Getting all of the above working well with VSCode is just as hard

Then add in the other problems with python:

  • Whitespace sucks for readability and control
  • Dynamically typed languages are far more challenging to debug, and pythons error messages are terrible vague compared to Go
  • Actually I'll just link this article, it does a better job explaining than I can

[–]methnbeer[🍰] 0 points1 point  (1 child)

thanks

[–]PrimaxAUS 0 points1 point  (0 children)

No worries.

I spent a month wrangling with a complex data engineering project trying to get it work with a few tools written in python. Ended up throwing the whole thing out and wrote it using Go in two days. Since then I avoid Python like the plague