Workshop › Connect Four › Step 29 of 38

Try a move and take it back

What we are doing

Now a computer opponent. Its first trick: try a move and take it back. Put a disc on the board, ask wins4, remove it again. The computer imagines the move with the same code the real game uses.

```js
// Would dropping in this column win for `who`? Try it, look, and take it back.
function winsWith(col, who) {
  const row = dropRow(col)
  if (row === -1) return false
  board[row][col] = who
  const result = wins4(row, col) !== null
  board[row][col] = 0
  return result
}
```

What it means

Your turn

Above function colAt( write the comment and winsWith, followed by an empty line.

Skills: Game states, Functions

All steps

  1. A dark background
  2. A drawing function
  3. The blue board
  4. One hole
  5. A whole row
  6. All 42 holes
  7. The board in memory
  8. Discs in their colors
  9. Draw every frame
  10. Where does the disc land?
  11. Play a column
  12. Taking turns
  13. Click to play
  14. The next disc
  15. Whose turn?
  16. Playing with the keyboard
  17. Keys 1 to 7
  18. A disc on its way
  19. Gravity
  20. Watch it fall
  21. Inside the board?
  22. Walking along a line
  23. Four in a row?
  24. We have a winner
  25. Circle the four
  26. Who won?
  27. A draw
  28. Play again
  29. Try a move and take it back
  30. Win, or block
  31. Don't help the player
  32. Prefer the middle
  33. The computer's turn
  34. Only on your turn
  35. You and the computer
  36. Counting wins
  37. Show the score
  38. Build it yourself: the loser starts