Я делаю метод, используя метод сравнения строк «compareTo». Однако у меня есть несколько вопросов, касающихся того, как именно это работает.
public int compareTo(Card player2){
int finalRank = this.getRank().compareTo(player2.getRank());
int turn = this.getRank().compareTo(player2.getRank());
// Checks for "War" before anything is processed
if(this.getRank() == player2.getRank())
{
return 0; // results in war
}
//This logic sets Ace as the highest card
//after checking for "WAR"
else if(this.getRank() == Rank.ACE)
{
return 1;
}
else if(player2.getRank() == Rank.ACE)
{
return -1;
}
//If it is not an ace, the winner per turn
//is determined by standard value.
else if(turn > 0)
{
//System.out.println("playerOne wins");
return 1;
}
else
{
//System.out.println("playerTwo wins");
return -1;
}
}//end compareTo
Это моя часть кода в методе compareTo. ** Так что я могу упомянуть, что я получил довольно много интерактивной помощи для этого сегмента кода. Пока мне это объясняли, это имело смысл. Таким образом, если это имеет для меня смысл, я смогу переписать этот сегмент кода в другом формате. Однако я обнаружил, что не могу этого сделать. Поэтому ищу совета и помощи.
Функция
int turn = this.getRank().compareTo(player2.getRank());
вообще то, что меня сбивает. Что именно делает метод compareTo?
для хода игроков это сравнение двух карт в игре -> следование логике программы.
Могу ли я сравнивать карты с помощью метода compareTo?
Вот как у меня настроены конструкторы классов.
Опять же, для доработки. У меня проблемы с пониманием того, как работает метод compareTo. и, во всяком случае, мне бы хотелось предложить другой способ сравнить карты игроков в игре.
Список карт взят из двух разных классов -> Масть и Ранг
private Rank rCard;
private Suit sCard;
/** ************* *********** * Инициализация объекта вне класса Card * @ param rCard * @param sCard * ************ ************* strong> */ public Card(Rank rCard, Suit sCard) { this.rCard = rCard; this.sCard = sCard; }
compareTo()
? Я не знаю логики игры, стоящей за этим, но метод довольно прост, он просто выполняет кучу сравнений и возвращаетint
на основе разных сценариев. - person 0x6C38   schedule 13.10.2013