Java 最高的牌赢是我的程序,现在我想比较牌
我正在使用Android studio进行我的最高牌赢游戏。我有三个java类,叫做Cards、Deck和Gamelogic。到目前为止,一切都很顺利,但我只是在为我的比较卡方法启动一个函数时遇到了一点麻烦。这就是我目前所拥有的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
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);
}
}