Можно ли более кратко выразить следующую логику, используя потоковые конструкции Java 8:
int[] gameState = {2, 2, 2, 2, 2, 2, 2, 2, 2};
int[][] winningPositions = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}, {0, 3, 6},
{1, 4, 7}, {2, 5, 8}, {0, 4, 8}, {2, 4, 6}};
for (int[] winningPosition : winningPositions) {
System.out.println("RST " + gameState[winningPosition[0]] );
if (gameState[winningPosition[0]] == gameState[winningPosition[1]]
&& gameState[winningPosition[1]] == gameState[winningPosition[2]]
&& gameState[winningPosition[0]] != 2) {
// Somone has won!
gameActive = false;
String winner = "";
if (activePlayer == 1) {
winner = "Yellow";
} else {
winner = "Red";
}
}
Я хотел бы изменить этот код на поток.