[HN Gopher] Play against the computer - Connect Four game in Jav...
___________________________________________________________________
Play against the computer - Connect Four game in JavaScript
Author : pebcakID10T
Score : 14 points
Date : 2022-10-20 22:57 UTC (1 days ago)
(HTM) web link (flydaddy.net)
(TXT) w3m dump (flydaddy.net)
| gus_massa wrote:
| It would be nice to be able to click in any square in the board,
| instead of just the ones in the bottom.
| pebcakID10T wrote:
| Good idea. Done.
| TedDoesntTalk wrote:
| I've thought about winning algorithms for this game before.
| The best I could come up with is roughly "get the highest
| locations you can while still defending against 3-in-a-row".
| pebcakID10T wrote:
| The computer AI code is in this file:
| http://flydaddy.net/games/connect-
| four/js/computerOpponent.j...
|
| Basically when it's the computer's turn it evaluates every
| possible move and assigns an attack and defense value for
| each move. The attack value is based on how many in a row
| and whether it can win on next turn, and the defense value
| is how many opponent's chips in a row and whether it will
| lose on opponent's turn. And if 2 or more moves are equal,
| favor the move closest to the center of the board.
| pebcakID10T wrote:
| Just a fun little project I did. It's beatable, but not easy.
| POiNTx wrote:
| How good is the AI and how was it made?
| pebcakID10T wrote:
| The computer AI code is in this file:
| http://flydaddy.net/games/connect-
| four/js/computerOpponent.j...
|
| Basically when it's the computer's turn it evaluates every
| possible move and assigns an attack and defense value for
| each move. The attack value is based on how many in a row and
| whether it can win on next turn, and the defense value is how
| many opponent's chips in a row and whether it will lose on
| opponent's turn. And if 2 or more moves are equal, favor the
| move closest to the center of the board.
|
| It's fairly difficult, but not perfect, and you can win as
| the second player.
| [deleted]
| duderific wrote:
| It seems like going first is a disadvantage, since the AI can
| just play defensively until you are backed into a corner.
| drewnoakes wrote:
| I've found that the only way to win is to go first, just like
| in tic tac toe. Going second can produce a draw at best,
| against an optimal opponent. This is just my experience
| though, not a strong assertion.
| pebcakID10T wrote:
| With perfect play the first player will always win. My AI
| is not perfect and you can win as the second player.
| POiNTx wrote:
| I think first is an advantage since the opposite side has to
| react to your moves, a bit like chess.
|
| A strategy that works for me is building a tower. In that
| tower try to construct 2 rows of 3 length, can be one
| horizontal and one diagonal but doesn't have to be, that when
| you go to one side of the tower, it would give you 4 in a row
| _2 times_ right after another circle is placed on top of the
| first one. While doing this also making sure the opponent isn
| 't doing the same below your rows.
|
| Doing this makes it impossible for the other to defend as
| when you're building on the side of the tower, it gives the
| opponent 2 options:
|
| - Defending the first row and placing a circle, allowing you
| to place another on that circle and making the second 4 in a
| row.
|
| - Or not defending and you can obviously finish your first in
| a row.
|
| Following this strategy I was able to win both as player 1
| and 2.
| jbluepolarbear wrote:
| The fastest I could beat this AI was going first and
| playing 7,4,4,3,6,7,5. The computer always plays the same
| moves and has to block a connect, but gives up a connect.
| isquaredr wrote:
| Thanks for sharing! This sent me down the solvability path. It
| would be cool to have an 'expert' mode that plays the optimal
| strategy.
| Pxtl wrote:
| Ran into bug - AI beat me by creating a diagonal with the piece
| in the top rank and it did not count that as endgame. I was able
| to keep playing.
| pebcakID10T wrote:
| Yes, I need a bug report button.
| i13e wrote:
| ICYI Connect Four is a solved game, you can read about it here:
| https://en.wikipedia.org/wiki/Connect_Four#Mathematical_solu...
| pebcakID10T wrote:
| Yes, I may do a minimax version with a difficulty setting. That
| would be fun to do.
___________________________________________________________________
(page generated 2022-10-21 23:00 UTC)