Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Why does it only detect diagonal connect 4s (Ns) in this direction ↖, but not in this direction ↗ ?

1 visualización (últimos 30 días)
Why does it only detect diagonal connect 4s (Ns) in this direction ↖, but not in this direction ↗ ?
My function
function victory = checkVictory(M, N);
victory = 0;
checkColor = 1;
rowCheck = any(~cellfun(@isempty,regexp(cellstr(char(M)),char(checkColor*ones(1,N)))));
colCheck = any(~cellfun(@isempty,regexp(cellstr(char(M).'),char(checkColor*ones(1,N)))));
diaList = spdiags(M);
diaCheck = any(~cellfun(@isempty,regexp(cellstr(char(diaList).'),char(checkColor*ones(1,N)))));
connectionFound = any([rowCheck,colCheck,diaCheck]);
if connectionFound == true;
victory = 1;
else
checkColor = 2;
rowCheck = any(~cellfun(@isempty,regexp(cellstr(char(M)),char(checkColor*ones(1,N)))));
colCheck = any(~cellfun(@isempty,regexp(cellstr(char(M).'),char(checkColor*ones(1,N)))));
diaList = spdiags(M);
diaCheck = any(~cellfun(@isempty,regexp(cellstr(char(diaList).'),char(checkColor*ones(1,N)))));
connectionFound = any([rowCheck,colCheck,diaCheck]);
if connectionFound == true;
victory = 2;
end
end
end
Output
Input piece in column [player 1]: 3
---------------
| | | | | | | | % x = player 1
| | | | | | |x| % o = player 2
| | | | | |x|o|
| | |x|o|x|x|x| % <--- Here you can see that it doesn't the detect the diagonal connect 4 of 'x'
| |x|o|x|o|o|o|
|o|x|x|x|o|o|o|
---------------
Input piece in column [player 2]: 3
---------------
| | | | | | | |
| | | | | | |x|
| | |o| | |x|o| % <--- Here you can see that it DOES the detect the diagonal connect 4 of 'o'
| | |x|o|x|x|x|
| |x|o|x|o|o|o|
|o|x|x|x|o|o|o|
---------------
Player 2 has won the game!Play again? [yes/no]

Respuestas (1)

The Legend
The Legend el 16 de Dic. de 2019
bump

La pregunta está cerrada.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by