Я пытаюсь написать старую служанку. После раздачи карт и сортировки у меня две части карты, одна из них - playerDeck, одна - computerDeck. теперь пары нужно удалить. Но я застрял на этом этапе.может кто-нибудь помочь мне исправить этот код (строка) -java
, например (просто пример) playerDeck: 'A ♡', 'A ♢', '8 ♡', '8 ♢', '8 ♠', 'Q ♠', '2 ♠', '4 ♣', '7 ♢', '7 ♣', 'K ♣', 'A ♡', 'J ♡', '9 ♣', '3 ♢'
computerDeck: '3 ♡' , '3 ♣', '10 ♡ ',' 10 ♠ ',' 10 ♣ ',' 6 ♡ ',' K ♡ ',' K ♢ ',' A ♣ ',' A ♠ ',' 4 ♢ ' , «7 ♡», «7 ♠»
String q;
String p;
ArrayStringsTools AA=new ArrayStringsTools();//this is a class that i will use for removing item
for(int i=0;i<playerDeck.length-1;i++){
q=playerDeck[i];
q=q.substring(0,1);//i try to find the first character
p=playerDeck[i+1];//after finding first character, i can compare them,and if they are same, then i can remove them
p=p.substring(0,1);
if(q==p){
AA.removeItemByIndex(playerDeck,26,i);//this is the method that i used for removing same item,i will put this code below
AA.removeItemByIndex(playerDeck,26,i+1);//there are 51 cards in total,player has 26, computer has 25
}
}
public static int removeItemByIndex(String[] arrayOfStrings, int currentSize, int itemToRemove){//this is the method i used for removing item(first is the array of Deck, second is the size of Deck,third is the index of item to remove)
if(arrayOfStrings == null || currentSize > arrayOfStrings.length) {
System.out.println("ArrayStringsTools.removeItemByIndex: wrong call");
return currentSize;
}
if(itemToRemove < 0 || itemToRemove >= currentSize) {
System.out.println("ArrayStringsTools.removeItem: item "
+ itemToRemove + " out of bounds. Array Unchanged.");
return currentSize;
}
int i;
for(i = itemToRemove; i < currentSize-1; i++){
arrayOfStrings[i] = arrayOfStrings[i+1];
}
arrayOfStrings[i]= null;
return currentSize-1;
я думаю, что я написал правильно, но не показывает никакой разницы по сравнению с началом. Результат должен быть: playerDeck: '8 ♠', 'Q ♠', '2 ♠', '4 ♣', 'K ♣', 'A ♡', 'J ♡', '9 ♣', ' 3 ♢ ' computerDeck: '10 ♣', '6 ♡', '4 ♢'
или есть другой способ сделать это, потому что, когда пара удалена, есть два пустых пространства, поэтому ... I «ве боролся в течение длительного времени ......
Какой результат вы ожидаете и какой результат вы получаете? –
playerDeck: '8 ♠', 'Q ♠', '2 ♠', '4 ♣', 'K ♣', 'A ♡', 'J ♡', '9 ♣', '3 ♢' computerDeck: '10 ♣ ',' 6 ♡ ',' 4 ♢ ' –
Разбивайте свои длинные строки на более короткие. Это боль, чтобы читать очень длинные строки кода, потому что если вы прокрутите, чтобы увидеть конец строки, вы потеряете из виду остальную часть программы. Общий лимин - «строка длиннее 80 символов» – tucuxi