Just a fun little project I did. It's beatable, but not easy.
It seems like going first is a disadvantage, since the AI can just play defensively until you are backed into a corner.
Play against the computer – Connect Four game in JavaScript
11–20 of 26 posts
Re: Play against the computer – Connect Four game in JavaScript
#12Earlier quoted context omitted.
Good idea. Done.
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".
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.
Re: Play against the computer – Connect Four game in JavaScript
#13Just a fun little project I did. It's beatable, but not easy.
It seems like going first is a disadvantage, since the AI can just play defensively until you are backed into a corner.
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.
Re: Play against the computer – Connect Four game in JavaScript
#14Just a fun little project I did. It's beatable, but not easy.
How good is the AI and how was it made?
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.
Re: Play against the computer – Connect Four game in JavaScript
#15Earlier quoted context omitted.
It seems like going first is a disadvantage, since the AI can just play defensively until you are backed into a corner.
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.
Re: Play against the computer – Connect Four game in JavaScript
#16Ran 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.
Re: Play against the computer – Connect Four game in JavaScript
#17Earlier quoted context omitted.
How good is the AI and how was it made?
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. A…
Re: Play against the computer – Connect Four game in JavaScript
#18ICYI Connect Four is a solved game, you can read about it here: https://en.wikipedia.org/wiki/Connect_Four#Mathematical_solu...
Re: Play against the computer – Connect Four game in JavaScript
#19Earlier quoted context omitted.
It seems like going first is a disadvantage, since the AI can just play defensively until you are backed into a corner.
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 th…