CBlair1986, > I'd like to be able to check for a X-in-a-row win on a > Y-by-Y board. I'd eventually like to be able to check > for a 10-in-a-row on a 50-by-50 board. Are there any > easy methods I could use, besides doing a check for > each possible win? Well, if you only need to check for a win after someone moves, you can just perform four checks for the up/down/diagonal1/diagonal2 cases for up to X squares away from the last move. If instead you don't know the last move and need a generic algorithm to see if player A has a win, a simple one is to initialize a YxY array to zeros, then loop over each row/column. For each square where player A has played, increment the four squares: same row next column; next row previous column; next row same column; and next row next column. Or, put another way: 123 456 789 If player A has played in square 5, increment squares 6, 7, 8, and 9. After each increment, test for a value equal to X, indicating a player A win. If you need to check for a player B win, you'll need to use the same algorithm on a separate array. If you have a player C, you'll need a third array, etc. This algorithm is O(Y^2), so it won't scale well when Y becomes large, but for a 50x50 board, your only talking about 2,500 iterations, which should be fine. I hope this helps. - Warren Brown