Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Computer Player #14

Open
madhukannan opened this issue Oct 14, 2016 · 5 comments
Open

Create Computer Player #14

madhukannan opened this issue Oct 14, 2016 · 5 comments

Comments

@madhukannan
Copy link
Contributor

Two players taking turns on one mouse to put down markers is tedious and inefficient. Creating a computer player to play against will be a better alternative.

Estimated Points: 500

@asyung
Copy link
Contributor

asyung commented Nov 7, 2016

F16 OK (500 points)

@Sierrasch
Copy link
Contributor

This could be really challenging depending on the complexity of the AI you create. At it's simplest, you could have the AI make a random move, but that is not very good and will likely not earn you many points. On the other end of the spectrum, you could implement an algorithm such as minimax (https://en.wikipedia.org/wiki/Minimax). This is much more challenging and should give really strong results, which will mean it is worth a lot more points.

W18 OK (150-600 pts)

@meredithxu
Copy link
Contributor

Steps: 1. A button that sends you to the computer player mode.
2. The interface looks the same as the original one but doesn't have an undo button.
3. Make a valid random move.
(Do a pull request)
4. A function that evaluates the board state.
5. One level minimax.
6. different levels minimax.

@Sierrasch
Copy link
Contributor

Good list of steps. If up to step 3 is done I estimate that to be worth 250 points (this will mostly be infrastructure changes to allow for a computer player). If up to step 6 is done that will be worth 500-600 points depending on how good the AI is (evaluation function, efficiency allowing for extra minimax depth, etc..)

meredithxu added a commit to meredithxu/cs56-games-gomoku that referenced this issue Mar 4, 2018
meredithxu added a commit to meredithxu/cs56-games-gomoku that referenced this issue Mar 12, 2018
meredithxu added a commit to meredithxu/cs56-games-gomoku that referenced this issue Mar 12, 2018
@meredithxu meredithxu mentioned this issue Mar 12, 2018
@Sierrasch
Copy link
Contributor

In W18, a board evaluation function was added which is a key step in building an AI (at least with the minimax approach). Also, a "one layer" minimax was added (essentially just a for loop deciding the best move looking only 1 move in the future). All that is really left to do here is implement the full minimax algorithm (look it up on wikipedia). It's not as scary as it seems, but still is not something to be undertaken lightly. Strong algorithms and data structure knowledge would be very helpful in implementing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants