Java 最高的牌赢是我的程序,现在我想比较牌

Java 最高的牌赢是我的程序,现在我想比较牌,java,arrays,function,compareto,Java,Arrays,Function,Compareto,我正在使用Android studio进行我的最高牌赢游戏。我有三个java类,叫做Cards、Deck和Gamelogic。到目前为止,一切都很顺利,但我只是在为我的比较卡方法启动一个函数时遇到了一点麻烦。这就是我目前所拥有的 import android.graphics.Color; /** * Created by azib2 on 12/1/2016. */ enum Suite { Heart, diamond, spades, clubs; public S

我正在使用Android studio进行我的最高牌赢游戏。我有三个java类,叫做Cards、Deck和Gamelogic。到目前为止,一切都很顺利,但我只是在为我的比较卡方法启动一个函数时遇到了一点麻烦。这就是我目前所拥有的

import android.graphics.Color;

/**
 * Created by azib2 on 12/1/2016.
 */
enum Suite {
    Heart, diamond, spades, clubs;

    public String toString()

    {
        switch (this) {
            case Heart:
                return "Heart";
            case diamond:
                return "diamond";
            case spades:
                return "spades";
            case clubs:
                return "clubs";
            default:
                return "Wrong type";
        }

    }

    public String symbol(){

        switch (this) {
            case Heart:
                return "\u2764";
            case diamond:
                return "\u2666";
            case spades:
                return "\u2660";
            case clubs:
                return "\u2663";
            default:
                return "Wrong type";
        }
    }


    public int colors() {
        switch (this) {
            case Heart:
            case diamond:
                return Color.RED;
            case spades:
            case clubs:
                return Color.BLACK;
        }

        return 0;
    }

}
public class Cards {
    private int cardnum;
    private Suite suitetype;


    public Cards(int cardnum, Suite suitetype){
        this.cardnum = cardnum;
        this.suitetype = suitetype;
    }
    public String CardType(int num){
        switch(num){
            case 1: return "A";
            case 2: return "2";
            case 3 : return"3";
            case 4: return "4";
            case 5: return "5";
            case 6: return "6";
            case 7: return  "7";
            case 8: return "8";
            case 9: return "9";
            case 10: return "10";
            case 11: return "J";
            case 12: return "Q";
            case 13: return "K";
            default: return " error invaild ";
        }

    }
    public void CompareCards(){

    }

    public int Getcardnum (){
        return cardnum;
    }
    public Suite getsuite(){
        return suitetype;

    }
}

我应该怎么做来比较卡片呢?

首先,我建议卡片是卡片。但我会坚持用纸牌

这似乎是一个很好的界面用例:

public class Cards implements Comparable<Cards> {

    // Ace lowest:
    public int compareTo(Card other) {
        return Integer.compare(cardnum, other.cardnum);
    }
}
使用此方法,您甚至可以使用以下方法对卡片列表进行排序:

List<Cards> cards = new ArrayList<Cards>();
// Add all cards desired
Collections.sort(cards);
如果希望按值和适合度进行稳定排序:

public class Cards implements Comparable<Cards> {

    // Ace lowest:
    public int compareTo(Card other) {
        // Compare by value first
        int diff = Integer.compare(cardnum, other.cardnum);
        if(diff != 0) return diff;
        // Compare by suit
        return suitetype.compareTo(other.suitetype);
    }
}

在开始编写CompareCards函数的技术细节之前,您可以考虑一下它在一般意义上应该做什么。例如,从哪里调用它?它的投入是什么?它是否应该将一个卡实例作为输入,并返回一个布尔值,指示该卡是否高于该卡的值,类似于.equals函数的工作方式?或另外,我已经从您的问题中删除了javascript标记:javascript!=Ace是最高还是最低?谢谢,这真的很有帮助。你太棒了。
public class Cards implements Comparable<Cards> {

    // Ace lowest:
    public int compareTo(Card other) {
        // Compare by value first
        int diff = Integer.compare(cardnum, other.cardnum);
        if(diff != 0) return diff;
        // Compare by suit
        return suitetype.compareTo(other.suitetype);
    }
}