日期:2014-05-18  浏览次数:20817 次

有没有更简单的算法呢?
单元格
[1,1]=6 [1,2]=1 [1,3]=3
[2,1]=7 [2,2]=3 [2,3]=9
[3,1]=3 [3,2]=8 [3,3]=3

红色单元格的数值 从上到下 依次是 6-7-8,形成了3连号

如何判断是否形成了3连号呢?

我只会

C# code

if (([3,1]==8 || [3,2]==8 ||[3,3]==8) && 
     ([2,1]==7 || [2,3]==7 ||[2,4]==7) && 
     ([1,1]==6 || [1,3]==6 ||[1,4]==6))
{
    [3.4] = "三连";
}



有没有更简明的判断方法呢? 是不是可以用 泛型 List<T> contains 的语句呢?如果是,具体代码该怎么写呢?谢谢

(单元格的表示方法从简)
 



------解决方案--------------------
二位数组,不确定行的对应

ArrayList<ArrayList<Integer>> arrays = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> array = null;
for(循环插入数据) {
array = new ArrayList<Integer>();
array.add(6);
array.add(1);
array.add(3);
arrays.add(array);
}
for (int i = 0; i < arrays.size() - 2; i++) {
if (arrays.get(i).contains(6) 
&& arrays.get(i).contains(7) 
&& arrays.get(i).contains(8)) {
[3, 4] = "三连";
}
}
------解决方案--------------------
探讨
引用:

C# code
var l1 = new List<int>(3) { [1,1], [1,2], [1,3] };
var l2 = new List<int>(3) { [2,1], [2,2], [2,3] };
var l3 = new List<int>(3) { [3,1], [3,2], [3,3] };
if (l1.Contains(6) &……

------解决方案--------------------
探讨

引用:
引用:

C# code
var l1 = new List<int>(3) { [1,1], [1,2], [1,3] };
var l2 = new List<int>(3) { [2,1], [2,2], [2,3] };
var l3 = new List<int>(3) { [3,1], [3,2], [3,3] };
if (……