TheOdinProject / curriculum

The open curriculum for learning web development
https://www.theodinproject.com/
Other
9.99k stars 13.35k forks source link

Suggestion: Add Optional Reading on Coding Intelligent AI Logic for Battleship Game #27363

Closed headlessNode closed 7 months ago

headlessNode commented 8 months ago

Checks

Description of the Feature Request

I would like to suggest the addition of an optional reading resource on refining AI logic for the Battleship game. This resource could help people who want to make their AI Intelligent. implementation of AI strategies in the context of Battleship gameplay.

Article: https://towardsdatascience.com/coding-an-intelligent-battleship-agent-bf0064a4b319

Acceptance criteria

Additional Comments

No response

JoshDevHub commented 8 months ago

I transferred this from the repo for the main site to the curriculum repo.

This repo (the curriculum repo) is where all of our curriculum content is held in plain old markdown files. This makes it easy for people to contribute to the lesson content without having any specialized knowledge of how a Rails web app is set up. Because your suggestion is related to the curriculum content, I've moved it here.

JoshDevHub commented 8 months ago

As for your suggestion itself, I'll defer to our @TheOdinProject/javascript team.

thatblindgeye commented 8 months ago

So on the one hand, my thought is that at this point the main intent of the project is practicing unit testing and the article - while interesting - goes a fair bit out scope of that, especially since the article is pretty specific to Battleship (which a user should really move on from once finishing the project).

On the other hand, if we zoom out a bit in the article - focus less on it being specific to a game of Battleship - it could be helpful for gaining an understanding of implementing more intelligent strategy within code.

I feel like I personally lean slightly more towards not including it as a resource post-project, though. Maybe if we include verbiage like, "Coding an Intelligent Battleship Agent covers various ways to implement a smarter computer opponent in a game of Battleship. While you should not attempt to implement this logic in your own project (continue through the curriculum instead), it can be an interesting read if you can abstract the basic ideas to help you think through implementing algorithms and strategy in general."

Or something to that effect, but even then it's iffy for me.

headlessNode commented 8 months ago

Your points about the main intent of our project being unit testing and the potential divergence from that focus are valid.

But at the same time, for users who want to add an Intelligent AI. I think we should provide a resource so that users can progress through the curriculum efficiently, without spending too much time researching different techniques for smart AI in the context of the Battleship game.

Including the article with a disclaimer seems like a sensible compromise.

fabulousgk commented 8 months ago

Just as a historical point, we recently removed any mention of AI in the tic-tac-toe lesson because it was too advanced for that point, and because far to many learners got stuck working on it.

It seems anytime we mention a possible upgrade, many many people will take that to be part of the assignment. So we need to carefully weigh priorities in the lesson.

headlessNode commented 8 months ago

Your point about learners getting stuck on perceived upgrades is well-taken.

I believe this AI implementation is more feasible than advanced techniques like minimax. To address this, we could offer clear guidance in the lesson, highlighting that the AI implementation is optional. We could also advise users to refrain from utilizing, the Probabilistic Strategy outlined in the article.

01zulfi commented 8 months ago

@headlessNode Thanks for opening the issue.

I'm skimming through the linked article. I feel it's beyond the scope of our curriculum.

thatblindgeye commented 7 months ago

Based on the comment above plus my previous comment, I feel we should close this out as something we don't plan to implement at this time. Appreciate wanting to provide a resource for users on AI for Battleship (which could be abstracted to just AI in general), but it is quite a bit out of scope even as an "extra credit" sort of concept. We can always reopen this if others feel differently or it does end up being more beneficial than it currently seems, but in the mean time if this is something a user is super passionate/serious about, it seems better for those users to research it themselves.