3x3 어레이를 사용하여 현재 보드를 저장하는 것이 좋습니다. 배열을 사용하여 가능한 조합을 저장하는 것은 좋지 않습니다. 이것이 첫 번째 프로그램이지만 좋은 습관을 배우기 시작하는 것이 결코 아 닙니다. 이 문제로 모든 가능한 조합을 열거 할 수 있다는 것은 사실 일 것입니다. 그러나 체커를 코딩하려는 경우 어떻게합니까? 가능한 우승 시나리오의 수가 엄청납니다. 체스는 어때? 체스에 가능한 모든 승부 움직임을 저장할 수있는 충분한 컴퓨터 메모리가 오늘 없습니다.
훨씬 더 나은 방법은 해당 조건을 확인하는 기능을 작성하는 것입니다. 간단하게하기 위해, 나는 이렇게 쓰는 것이 좋습니다. 너무 간단하지, 난이 의사 코드 같은 것을 쓸 것이다 : 플레이어 후
// returns true if specified side won
// board - a pointer to your array
// player - specifies if you want to check if X or O is the winner
bool game_won(board, player)
{
For each row, check if each field is equal to player.
if yes return true.
For each column, check if each field is equal to player.
if yes return true.
Check if each field on diagonal is equal to player.
if yes return true.
// winning conditions not met, let's keep playing
return false
}
각 이동합니다, 당신은 game_won()를 호출해야하고 이동 플레이어 승자를 만들 경우 당신을 위해 확인합니다.
p.s. 각 플레이어 당 8, 10의 우승 이동이 가능하지 않습니다 : 3 개의 수평, 3 개의 수직 및 2 개의 대각선.
배열은 tic-tac-toe 보드와 같이 고정 크기 인 것으로 사용해야합니다. 크기를 변경할 수있는 항목을 나열합니다. – Joel
당신은 [this] (http://xkcd.com/832/)을 좋아할 것입니다. –
좋은 매트 내가 사랑 xkcd –