为了账号安全,请及时绑定邮箱和手机立即绑定

跪求优化,运行结果没完全按照老师,但基本要求遵守了规则

//卡牌类

package packagepuke;


public class card implements Comparable<card>{

private int num;

private int color;

public card(int num,int color) {

this.num=num;

this.color=color;

}

@Override

public int compareTo(card o) {

// TODO Auto-generated method stub

//首先数字比较,不行再花色比较

if(this.num>o.num)return 1;

else if(this.num<o.num)return -1;

else return this.color-o.color;

}

@Override

public String toString() {

//打印卡牌信息

String []card_num= {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

String s=new String();

switch (color) {

case 0:

s="方块";

break;

case 1:

s="梅花";

break;

case 2:

s="红心";

break;

case 3:

s="黑桃";

break;

default:

s="花色错误";

    break;

}

return s+card_num[num];

}


}

//玩家类

package packagepuke;


import java.util.*;


public class person {

private String name;

private List<card> mycard;

public person(String name) {

this.name=name;

mycard=new ArrayList<card>();

}

public void getCard(card c) {

//这里可以做一个判断

mycard.add(c);

}

public void reSet() {

if(mycard!=null)

mycard.clear();

}

public card getMax() {

Collections.sort(mycard);//根据卡牌的大小比较,对牌组进行排序

return mycard.get(mycard.size()-1);

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

//打印玩家信息

@Override

public String toString() {

String str=new String();

for(card c:mycard)

str+=c.toString();

return "玩家 :" + name + "--"+str;

}


}

//测试类

package packagepuke;


import java.util.*;


public class test {


public List<card>cards;

public static void main(String[] args) {

// TODO Auto-generated method stub

test t=new test();

person p=new person("Java");

person pp=new person("Node");

t.createCard();

t.wash();//第一次游戏

t.playGame(p,pp);

t.wash();//第二次游戏

t.playGame(p,pp);

}

//创建扑克牌

public void createCard() {

cards=new ArrayList<card>();

System.out.println("---------创建扑克牌-----------");

for(int i=0;i<13;i++)

for(int j=0;j<4;j++)

cards.add(new card(i,j));

System.out.println("--------遍历打印扑克牌资源----------");

for(card c:cards)

System.out.println(c);

}

//洗牌

public void wash() {

if(cards==null) {

System.out.println("--------没有扑克,游戏结束----------");

return;

}

System.out.println("--------开始洗牌----------");

Collections.shuffle(cards); 

System.out.println("--------遍历打印扑克牌资源----------");

for(card c:cards)

System.out.println(c);

}

//开始游戏

public void playGame(person p,person pp) {

p.reSet();//开始前都需要进行清空玩家手牌

pp.reSet();

p.getCard(cards.get(0));//主函数中无法访问非静态成员,选择分离

pp.getCard(cards.get(1));

p.getCard(cards.get(2));

pp.getCard(cards.get(3));

p.getCard(cards.get(4));

pp.getCard(cards.get(5));

System.out.println("--------打印玩家手牌----------");

System.out.println(p);

System.out.println(pp);

System.out.println("--------打印玩家最大手牌----------");

card c=p.getMax();

System.out.println(p.getName()+"最大手牌为"+c);

card cc=pp.getMax();

System.out.println(pp.getName()+"最大手牌为"+cc);

//打印结果

if(c.compareTo(cc)>0)System.out.println("赢家为"+p.getName());

else System.out.println("赢家为"+pp.getName());

}


}



正在回答

举报

0/150
提交
取消

跪求优化,运行结果没完全按照老师,但基本要求遵守了规则

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信