2015-11-29 6 views
0

Я создал матрицу 3 x 3. Щелчок по одному из полей добавляет элемент в hashmap Например, нажмите 1-й ящик, добавив «imageView1» в качестве ключа и «true» в качестве значения для хэш-карты.HashMap не работает, как ожидалось

Есть два игрока, поэтому два хэшмапа игрока1 и player2.

player1.put("imageView1","true"); 

Так что, когда любой из игроков нажимает на поле, соответствующее поле имени добавляется к соответствующему HashMap.

Затем, чтобы проверить, если игрок выиграл

if(player1.containsKey("imageView1") 
    &&player1.containsKey("imageView2") 
    &&player1.containsKey("imageView3")){ 
     return true; 
    } 

Но это не работает. Можете ли вы мне помочь? Примечание: я не поставил весь алгоритм .. Я только что проверил 1 условие (т.е. если 1 2 3 проверяются затем игрок 1 выигранный, как Tic Tac Toe

Heres являются файлы

MainActivity.java (. оригинал) (http://pastebin.com/AtypDtuC)

MainActivity.java (сгущенное) (http://pastebin.com/gJCud9WE)

Content_Main.xml (http://pastebin.com/vsWd0Jii)

+2

Пожалуйста, прочтите это. http://stackoverflow.com/help/mcve –

+0

@PaulBoddington Thankyou за указание на это. Я сделал новый проект и сделал сжатую версию, удалив по умолчанию и неотредактированные строки кодов (кроме операторов импорта). –

ответ

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()

+0

Здравствуйте, Я попробовал этот экстракт с помощью «&&» в онлайн-компиляторе java и возвратил «true» wheen imageView1 в imageView 3 с помощью hashmap exach, и я взял значения с помощью Log.i («Value», «» + getResources() .getResourceName (view.getId())); для создания пары ключей hashmap .. и затем выполняется. И его работа правильно ... –

Смежные вопросы