2014-09-05 3 views
1

그래서 나는 훌륭한 설정이 있다고 생각합니다. 각 "Button"에는 열과 행이 있습니다. 여기 내 현재 기능 :Tic Tac Toe (루아 (터치 루아))가 연속으로 3 개를 감지 했습니까?

function CheckForWin() 
    local X = {} 
    local O = {} 
    for i,v in pairs(ClosedButtons) do 
     if v.title == "X" then 
     table.insert(X, v) 
     elseif v.title == "O" then 
     table.insert(O, v) 
     end 
     for i,v in pairs(X) do 
     --Find 3 Xs in a row 
     end 
     for i,v in pairs(O) do 
     --Find 3 Os in a row 
     end 
    end 
end 

내 질문은 어떻게 감지해야합니까?

3 개의 버튼에 동일한 행 또는 열이있는 경우 행에 3이 표시됩니까? 그러나 대각선은 특별한 경우 일 것입니다. 3 개의 버튼이 같은 행과 열을 가졌습니까?

테이블을 유지하여 1/2/3의 열이있는 버튼 수와 1/2/3의 행이 몇 개 있는지 확인하는 표 및 얼마나 많은 수의 버튼이 있는지 확인해야합니까? 동일한 행/열이 있습니까? 내게는 그렇게 비효율적 인 것처럼 보입니다.

많은 테이블을 사용하기 전에 알아야 할 더 나은 방법이 있습니까?

편집 : 그냥 명확하게하기 위해, 버튼은

답변

0

이 작업을 수행하려면 속성 "열"과 "행"이있는 테이블은 모든 행과 열 타일을 추적하기 위해 가지고 3 확인 할 수 있습니다 행을 직접. 비효율적이지만 다른 방법은 보이지 않습니다.