Problem Statement
Definition
- Class:
- GridGame
- Method:
- winningMoves
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int winningMoves(String[] grid)
- (be sure your method is public)
Constraints
- grid will contain exactly 4 elements.
- Each element of grid will contain 4 characters ('X's or '.'s), inclusive.
- There will be no two horizontally or vertically adjacent 'X's in grid.
Examples
{"....", "....", "....", "...."}
Returns: 0
You can't win this game.
{"....", "....", ".X..", "...."}
Returns: 11
Any legal move guarantees you win the game.
{".X.X", "..X.", ".X..", "...."}
Returns: 1
{".X.X", "..X.", "X..X", "..X."}
Returns: 0
{"X..X", "..X.", ".X..", "X..X"}
Returns: 0
There are no valid moves.
{".X..","...X","X...","..X."}
Returns: 0
{".X..","...X","X.X.",".X.X"}
Returns: 0
{".X..","X..X",".X..","X..X"}
Returns: 0
{".X..","X..X","..X.","X..X"}
Returns: 0
{".X..","X..X","..X.",".X.X"}
Returns: 0
{"X.X.","...X",".X..","X..X"}
Returns: 0
{"X.X.",".X.X","..X.","X..X"}
Returns: 0
{"X.X.",".X.X","X.X.",".X.X"}
Returns: 0
{"X..X",".X..","..X.","X..X"}
Returns: 0
{"....","....","....","...."}
Returns: 0
{"....","....","....","X.X."}
Returns: 0
{"....","....","X...","..X."}
Returns: 0
{"....","....",".X..","...."}
Returns: 11
{"....","....",".X..","..X."}
Returns: 0
{"....","....",".X..","X.X."}
Returns: 5
{"....","....","X..X","...."}
Returns: 0
{"....","X...",".X..","...X"}
Returns: 2
{"....","X...","..X.",".X.."}
Returns: 5
{"....","X...","..X.","...X"}
Returns: 6
{"....","X...","...X","X..."}
Returns: 6
{"....","X...","...X",".X.."}
Returns: 4
{"....","X...",".X.X","...."}
Returns: 6
{"....","X...",".X.X","X..."}
Returns: 0
{"....","X...",".X.X","..X."}
Returns: 0
{"....",".X..","X...","...X"}
Returns: 2
{"....",".X..","..X.","X..."}
Returns: 1
{"....",".X..","..X.","...X"}
Returns: 1
{"....",".X..","..X.",".X.X"}
Returns: 1
{"....","X.X.","....","..X."}
Returns: 5
{"....","X.X.","....","X.X."}
Returns: 0
{"....","X.X.","....","...X"}
Returns: 1
{"....","X.X.","....","X..X"}
Returns: 3
{"....","X.X.",".X..","X.X."}
Returns: 3
{"....","X.X.",".X..","X..X"}
Returns: 0
{"....","X.X.","...X","X..."}
Returns: 0
{"....","X..X",".X..","...X"}
Returns: 0
{"....","X..X",".X..","X..X"}
Returns: 2
{"X...","....","....","X..X"}
Returns: 3
{"X...","....","...X","X..."}
Returns: 2
{"X...","....","...X","..X."}
Returns: 3
{"X...","....","X..X",".X.."}
Returns: 0
{"X...","....","X..X","..X."}
Returns: 0
{"X...","....",".X.X","..X."}
Returns: 2
{"X...",".X..","X..X","..X."}
Returns: 2
{"X...","..X.",".X.X","X.X."}
Returns: 1
{"X...","...X","....","X.X."}
Returns: 0
{"X...","...X","....",".X.X"}
Returns: 0
{"X...","...X","..X.",".X.."}
Returns: 0
{"X...","...X","..X.","X..X"}
Returns: 0
{"X...","...X","X.X.","...X"}
Returns: 3
{"X...",".X.X","....",".X.."}
Returns: 0
{"X...",".X.X","....","X..X"}
Returns: 0
{"X...",".X.X","X...",".X.."}
Returns: 3
{"X...",".X.X","X...",".X.X"}
Returns: 0
{"X...",".X.X","..X.","X..X"}
Returns: 1
{".X..","....","X..X","..X."}
Returns: 0
{".X..","X...","...X","X.X."}
Returns: 3
{".X..","X...",".X.X","..X."}
Returns: 3
{".X..","..X.","X..X","..X."}
Returns: 1
{".X..","...X","X...",".X.X"}
Returns: 1
{".X..","X..X","....","X..X"}
Returns: 2
{".X..","X..X","....",".X.X"}
Returns: 1
{"X.X.","...X","..X.","X..X"}
Returns: 1