Problem: Let $k$ be a positive integer.
Two players $A$ and $B$ play a game on an infinite grid of regular hexagons.
Initially all the grid cells are empty.
Then the players alternately take turns with $A$ moving first.
In her move, $A$ may choose two adjacent hexagons in the grid
which are empty and place a counter in both of them.
In his move, $B$ may choose any counter on the board and remove it.
If at any time there are $k$ consecutive grid cells
in a line all of which contain a counter, $A$ wins.
Find the minimum value of $k$ for which $A$ cannot
win in a finite number of moves, or prove that no such minimum value exists.

Solution: The answer is $k = 6$.

\paragraph{Proof that $A$ cannot win if $k=6$.}
We give a strategy for $B$ to prevent $A$'s victory.
Shade in every third cell, as shown in the figure below.
Then $A$ can never cover two shaded cells simultaneously on her turn.
Now suppose $B$ always removes a counter on a shaded cell
(and otherwise does whatever he wants).
Then he can prevent $A$ from ever getting six consecutive counters,
because any six consecutive cells contain two shaded cells.

\begin{center}
  \begin{asy}
    path hexagon = scale(0.5)*(dir(30)--dir(90)--dir(150)--dir(210)--dir(270)--dir(330)--cycle);
    unitsize(0.6cm);
    void mark(int x, int y) {
      pair P = dir(0)*x + dir(60)*y;
      filldraw(shift(P)*hexagon, purple, black+1);
    }
    void spot(int x, int y) {
      pair P = dir(0)*x + dir(60)*y;
      draw(shift(P)*hexagon);
    }
    int N = 4;
    for (int x=-N; x<=N; ++x) {
      for (int y=-N; y<=N; ++y) {
        if ( (abs(x+y)) > N ) continue;
        if (
          (x-y) % 3 == 0
        ) mark(x,y);
        else spot(x,y);
      }
    }
  \end{asy}
\end{center}

\paragraph{Example of a strategy for $A$ when $k=5$.}
We describe a winning strategy for $A$ explicitly.
Note that after $B$'s first turn there is one counter,
so then $A$ may create an equilateral triangle,
and hence after $B$'s second turn there are two consecutive counters.
Then, on her third turn,
$A$ places a pair of counters two spaces away on the same line.
Label the two inner cells $x$ and $y$ as shown below.
\begin{center}
  \begin{asy}
    path hexagon = scale(0.5)*(dir(30)--dir(90)--dir(150)--dir(210)--dir(270)--dir(330)--cycle);
    unitsize(0.6cm);
    void mark(int x, int y) {
      pair P = dir(0)*x + dir(60)*y;
      filldraw(shift(P)*hexagon, palecyan, black);
      filldraw(CR(P, 0.3), paleblue, blue);
    }
    void spot(int x, int y) {
      pair P = dir(0)*x + dir(60)*y;
      draw(shift(P)*hexagon);
    }
    for (int x=-3; x<=4; ++x) {
      for (int y=-2; y<=2; ++y) {
        if ( x+y < -3 ) continue;
        if ( x+y > 4 ) continue;
        spot(x,y);
      }
    }
    mark(-2, 0);
    mark(-1, 0);
    mark( 2, 0);
    mark( 3, 0);
    label("$x$", (-1)*dir(0));
    label("$y$", (2)*dir(0));
  \end{asy}
\end{center}
Now it is $B$'s turn to move;
in order to avoid losing immediately,
he must remove either $x$ or $y$.
Then on any subsequent turn, $A$ can replace $x$ or $y$
(whichever was removed)
and add one more adjacent counter.
This continues until either $x$ or $y$ has all its neighbors filled
(we ask $A$ to do so in such a way that
she avoids filling in the two central cells between $x$ and $y$
as long as possible).

So, let's say without loss of generality (by symmetry) that $x$
is completely surrounded by tokens.
Again, $B$ must choose to remove $x$ (or $A$ wins on her next turn).
After $x$ is removed by $B$, consider the following figure.
\begin{center}
  \begin{asy}
    path hexagon = scale(0.5)*(dir(30)--dir(90)--dir(150)--dir(210)--dir(270)--dir(330)--cycle);
    unitsize(0.6cm);
    void mark(int x, int y) {
      pair P = dir(0)*x + dir(60)*y;
      filldraw(shift(P)*hexagon, palecyan, black);
      filldraw(CR(P, 0.3), paleblue, blue);
    }
    void spot(int x, int y) {
      pair P = dir(0)*x + dir(60)*y;
      draw(shift(P)*hexagon);
    }
    for (int x=-4; x<=5; ++x) {
      for (int y=-3; y<=3; ++y) {
        if ( x+y < -4 ) continue;
        if ( x+y > 5 ) continue;
        spot(x,y);
      }
    }
    mark(-2, 0);
    mark( 0, 0);
    mark( 0, -1);
    mark(-1, 1);
    mark(-1, -1);
    mark(-2, 1);

    mark( 2, 0);
    mark( 2, 1);
    mark( 3, 0);
    label("$x$", (-1)*dir(0));
    label("$y$", (2)*dir(0));
    void win(int x, int y, pen p1, pen p2) {
      pair P = dir(0)*x + dir(60)*y;
      filldraw(shift(P)*hexagon, p1, p2);
    }
    win(1,0, lightgreen, deepgreen);
    win(0,1, lightgreen, deepgreen);
    win(0,2, lightred, red);
    win(0,3, lightred, red);
    win(4,0, lightred, red);
    win(5,0, lightred, red);
  \end{asy}
\end{center}
We let $A$ play in the two marked green cells.
Then, regardless of what move $B$ plays,
one of the two choices of moves marked in red lets $A$ win.
Thus, we have described a winning strategy when $k=5$ for $A$.