2013-06-12 49 views
0

首先,我在编程方面比较新,而且我是第一次编程android。我会先解释我的游戏,然后问这个问题,因为否则很难理解这个问题。如何检查图像是否显示边框?

我的游戏: http://imageshack.us/photo/my-images/593/gamelayoutd.png/(我游戏的画面布局)

白色的 “方块” 应表明冰的瓷砖。他们都是用相同的Src,但不同的IDS seperat imageviews。

这是一个双人游戏。游戏的重点是让玩家在左上角和左下角之间创建一排连接的棋子(玩家从右上角到左下角)。对角线连接就足够了。你轮流在“索赔”冰瓦。一旦声称冰瓦,它不能被放弃。

@Override 
public void onClick(View arg0) { 
    if (i % 2 == 0) { 
     ((ImageView) arg0).setImageResource(R.drawable.Rock); 
     i++; 
     arg0.getLocationOnScreen(SolutionArraySand); 
     arg0.setClickable(false); 
    } else { 
     ((ImageView) arg0).setImageResource(R.drawable.Sand); 
     i++; 
     arg0.getLocationOnScreen(SolutionArrayRock); 
     arg0.setClickable(false); 
    } 

这是我的代码“索赔”点击的瓷砖。我在每个图像视图上设置了一个onClickListener。休息应该清楚。

我的问题/问题: 现在,一旦瓷砖获得点击,我需要检查,如果玩家一个或两个有他们的起点和终点之间的瓦连“线”。 我想将每个点击的imageview推入数组(SolutionArrayRock/Sand),然后以某种方式检查,但是如何?或者我需要以不同的方式解决问题,使用标签或其他东西?

希望你明白我的问题,如果不是请请问。 希望得到任何帮助。

问候,

雨果

回答

0

可以每瓦(X,Y)的位置存储到一个数组。每个玩家将拥有自己的阵列。然后,通过数组进行迭代,并做这样的事情:

for (int i=0; i < array.size()-1; i++) 

    valid_adjacent_cell_positions = get_list_of_valid_adjacent_cell_position(array[i].x, array[1].y) 

    if array[i+1] not in valid_adjacent_cell_positions: 
     return false; 

return true; 


List<Position> get_list_of_valid_adjacent_cell_position(int x, int y): 
    // should return list of valid positions 
    // e.g. if 0,0 then function should return [1,0 and 1,1] 

借口了一些错误的语法,但我写更多的是伪代码的。