Problem 1698. Connect Four: find winning move

Inspired by this problem...

Connect Four is a fun two-player game in which the goal is to be the first player to connect four pieces in a row - horizontally, vertically, or diagonally. Players take turns dropping one of their pieces into any of the available columns.

Problem Statement

Given an array (size is arbitrary) in which

  • 0 : space is empty
  • 1 : player 1 piece
  • 2 : player 2 piece

return the column that player 1 should play in to win the game. If there is more than one winning move, return a row vector of appropriate columns. If there are currently no winning moves, return [].

Assumptions

  • Pieces fall to the bottommost available row in each column, as in the real game
  • The input grid will always represent a valid game state

Example

If

b = [0 0 0 0 0 0 0;
     0 0 0 0 0 0 0;
     0 0 0 2 0 0 0;
     0 0 0 1 0 0 0;
     0 0 0 2 2 0 0;
     0 0 2 1 1 1 0];

then

y = 7

Solution Stats

20.69% Correct | 79.31% Incorrect
Last Solution submitted on May 30, 2024

Problem Comments

Solution Comments

Show comments

Problem Recent Solvers25

Suggested Problems

More from this Author44

Problem Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!