井字游戏(Lua(触摸Lua))如何检测三个连在一起?

所以我认为我有一个很好的设置,每个“按钮”都有一列和一行。这是我目前的功能:

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的表,以及检查多少个具有相同行/列的表/摆列?对我来说,这似乎非常低效。

在开始使用多个表之前,是否有更好的方法我应该知道?

编辑:只是为了明确,按钮是具有“列”和“行”属性的表。

点赞
用户3979429
用户3979429

要达到这个目的,您将需要跟踪每个行和列的方块,并直接检查是否有三个相同的方块连成一排。虽然效率低下,但我看不出其他方法。

2014-09-21 20:29:36