我制作了一个3 x 3的盒子矩阵。 单击该框中的任何一个都会将元素添加到hashmap 例如,单击1st box将“imageView1”添加为键,将“true”添加为hashmap的值。
有两个玩家,因此有两个hashmaps player1和player2。
player1.put("imageView1","true");
因此,当任一玩家点击该框时,相应的框名称将添加到相应的散列图中。
然后检查玩家是否赢了
if(player1.containsKey("imageView1")
&&player1.containsKey("imageView2")
&&player1.containsKey("imageView3")){
return true;
}
但这不起作用。你能帮帮我吗? 注意:我没有放完整个算法..我只检查了1个条件(即如果1 2 3被检查,那么玩家1赢了,就像tic tac toe
Heres是文件
MainActivity.java(original)(http://pastebin.com/AtypDtuC)
MainActivity.java(简明)(http://pastebin.com/gJCud9WE)
Content_Main.xml(http://pastebin.com/vsWd0Jii)
答案 0 :(得分:0)
您的代码似乎没问题,但我建议检查一下
getResources().getResourceName(view.getId())
正在放入你的地图。具体来说,您应该确认:
getResources().getResourceName(view.getId()).equals("imageView1")
getResources().getResourceName(view.getId()).equals("imageView2")
getResources().getResourceName(view.getId()).equals("imageView3")
getResources().getResourceName(view.getId()).equals("imageView4")
...
getResources().getResourceName(view.getId()).equals("imageViewN")
至少是一次。即您需要确保输入的Strings
与拨打.contains()
时完全相同,否则您永远不会与.contains()
匹配