# Why is the Connect Four gaming board 7x6? (or: algorithm for creating Connect $N$ board)

The Connect Four board is 7x6, as opposed to 8x8, 16x16, or even 4x4. Is there a specific, mathematical reason for this? The reason I'm asking is because I'm developing a program that will be able to generate Connect $N$ boards, for any given number. At first I assumed that the board size was 2n by 2n, but then I realized it's 7x6. What's going on here?

P.S.: Forgive me if my question tags are incorrect; I'm not quite sure what this falls under.

-
I'm pretty sure the board size is arbitrary. As the wikipedia page says, many board size variations exist. en.wikipedia.org/wiki/Connect_Four – Matthew Conroy Apr 26 '12 at 5:13
@Matthew, The variations listed are 7x6, 8×7, 9×7, and 10×7. But why not 2n by 2n? Does it somehow make the game too easy, or less fun? – Dan Brumleve Apr 26 '12 at 6:09
John Tromp appears to have done a bit of analysis on a variety of board sizes. I'm not sure what it means for a two-player game to be "too easy", since if it is too easy for one player, certainly it must be too hard for the other. Maybe it is relevant that if there are an even number of columns, the players can always play symmetrically? homepages.cwi.nl/~tromp/c4/c4.html – Matthew Conroy Apr 26 '12 at 6:44
I recall one of the people who solved the game observing that 6x7 is the smallest board which isn't easily shown to be a draw. – Peter Taylor Apr 26 '12 at 8:19
So it has something to do with having an even number of columns, and not making the game be able to be easily drawn, but fair to both players, then? – Chris Blake Apr 26 '12 at 15:42

So it seems that a 7x6 board was chosen because it's "the smallest board which isn't easily shown to be a draw". In addition, it was also speculated that there should probably be an even amount of columns. Therefore, it seems that the dimensions of a Connect $N$ board are a function of $N$. I see two possible functions:

N.B.: I'm not sure if there's a rule about the numbers being consecutive, but I'm assuming that that is the case here.

Times 1.5 function pseudo-code:

column_height = N * 1.5;
If column_height is an even number:
row_height = N + 1;
Otherwise (if column_height is an odd number):
column_height = (N * 1.5) + 1; //truncate the decimal portion of (N * 1.5) before adding one
row_height = column_height + 1;