O jogo do quadrado mágico

Há dois jogadores, Alice e Bob, cada um com uma grade de 3 por 3. Um árbitro diz a Alice para preencher uma determinada linha da grade (por exemplo, a segunda linha), colocando 1 ou 0 em cada casa, de modo que a soma dos números nessa linha seja ímpar. O árbitro diz a Bob para preencher uma coluna da grade (por exemplo, a primeira coluna), colocando 1 ou 0 em cada casa, de modo que a soma dos números nessa coluna seja par.

Alice e Bob vencem o jogo se os números de Alice resultarem em uma soma ímpar, os de Bob resultarem em uma soma par e (o mais importante) ambos tiverem escrito o mesmo número na única casa onde a linha e a coluna deles se cruzam.

Exemplos

magicSquareGame([2, 100], [1, 101]) ➞ false

magicSquareGame([2, 001], [1, 101]) ➞ true

magicSquareGame([3, 111], [2, 011]) ➞ true

magicSquareGame([1, 010], [3, 101]) ➞ false

// Two arrays, Alice [row, her choice], Bob [column, his choice]

Observações

  • Consulte o artigo na aba de recursos para ver os dois primeiros exemplos em ação.
  • A linha de Alice é sempre ímpar, e a coluna de Bob é sempre par.