Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Problem 1698. Connect Four: find winning move

Created by Matt Eicholtz

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

Tags

Problem Group

Solution Statistics

19 correct solutions 9 incorrect solutions
Last solution submitted on Aug 09, 2014

Problem Comments

Solution Comments