[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)