Actionscript 3 在AS3中检测游戏获胜状态
我正在尝试提出一个干净的函数,它将在2D阵列上执行检查,以验证ConnectFour游戏中是否发生了胜利。我正在努力研究逻辑,但我的大脑现在是瑞士奶酪。这是我用来检查横向胜利的方法。在我看来,应该有一种方法来简化这个模块,以便在所有可能的方向上工作Actionscript 3 在AS3中检测游戏获胜状态,actionscript-3,oop,Actionscript 3,Oop,我正在尝试提出一个干净的函数,它将在2D阵列上执行检查,以验证ConnectFour游戏中是否发生了胜利。我正在努力研究逻辑,但我的大脑现在是瑞士奶酪。这是我用来检查横向胜利的方法。在我看来,应该有一种方法来简化这个模块,以便在所有可能的方向上工作 private function checkForHorizontalWin(column:uint, row:uint, grid:Array):Boolean { var player:uint = grid[column
private function checkForHorizontalWin(column:uint, row:uint, grid:Array):Boolean
{
var player:uint = grid[column][row];
var counter:uint = 1;
for(var i:uint = Math.min(0, uint(column-1)); i>=0; i--)
{
if(!grid[i][row] || grid[i][row] != player)
{
break;
}
counter++;
}
for(var j:uint = column+1; j<_columns; j++)
{
if(!grid[j][row] || grid[j][row] != player)
{
break;
}
counter++;
}
if(counter >=4)
{
return true;
}
else
{
return false;
}
}
私有函数checkForHorizontalWin(列:uint,行:uint,网格:数组):布尔值
{
var-player:uint=grid[列][行];
变量计数器:uint=1;
对于(变量i:uint=Math.min(0,uint(第1列));i>=0;i--)
{
如果(!grid[i][row]| grid[i][row]!=玩家)
{
打破
}
计数器++;
}
对于(变量j:uint=column+1;j=4)
{
返回true;
}
其他的
{
返回false;
}
}
我实际上做了一件非常简单的事情…将网格数组转换为字符串,然后在一行中查找4…唯一棘手的部分是获得正确的对角线可能性数组,但我也解决了这个问题