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

扑克牌游戏出了问题,当比较两个相同花色牌的时候,card类里的colornum变量的值不能被输入,求大神解答?

扑克牌游戏出了问题,当比较两个相同花色牌的时候,card类里的colornum变量的值不能被输入,求大神解答?

慕粉3392422 2016-06-27 21:58:55
package ifinal; import java.util.ArrayList; public class player { int id; String name; ArrayList<card> hand=new ArrayList<card>(); public player(){ } public  player(int id, String name,card hand){ this.id=id; this.name=name; this.hand.add(hand); } }package ifinal; public class card { int num; String color; int colornum; public card(String color,int num){ this.color=color; this.num=num; if(this.color.equals("黑桃")){this.colornum=4;} if(this.color.equals("红桃")){this.colornum=3;} if(this.color.equals("梅花")){this.colornum=2;} if(this.color.equals("方块")){this.colornum=1;} } public card(){ } public card compare(card obj){ if( this.num > obj.num){ return this; } if(this.num< obj.num){ return obj; } if(this.num==obj.num){ if(this.colornum>obj.colornum){ return this; } if(this.colornum<obj.colornum){ return obj; } } return null; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((color == null) ? 0 : color.hashCode()); result = prime * result + colornum; result = prime * result + num; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; card other = (card) obj; if (color == null) { if (other.color != null) return false; } else if (!color.equals(other.color)) return false; if (colornum != other.colornum) return false; if (num != other.num) return false; return true; } }package ifinal; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class initial { ArrayList<card> possible=new ArrayList<card>(); player a=new player(); player b=new player(); public void create(){ System.out.println("-------创建扑克牌--------"); for (int i=1; i<=13;i++){ card temp=new card(); temp.color="黑桃"; temp.num=i; possible.add(temp); } for (int i=1; i<=13;i++){ card temp=new card(); temp.color="梅花"; temp.num=i; possible.add(temp); } for (int i=1; i<=13;i++){ card temp=new card(); temp.color="红桃"; temp.num=i; possible.add(temp); } for (int i=1; i<=13;i++){ card temp=new card(); temp.color="方块"; temp.num=i; possible.add(temp); } System.out.println("-------扑克牌创建完成--------"); } public void test(){ for(int i=0; i<=possible.size()-1;i++){ System.out.print(possible.get(i).color+possible.get(i).num); } System.out.println(); System.out.println("共有"+possible.size()+"张牌"); } public void shuffle(){ System.out.println("------开始洗牌----------"); Collections.shuffle(possible); System.out.println("------洗牌结束----------"); } public void newplayer(){ Scanner s=new Scanner(System.in); System.out.println("请输入玩家1的id:");  int playerid1= s.nextInt();  a.id=playerid1;  System.out.println("请输入玩家1的姓名:");  String playername1= s.next();  a.name=playername1;  System.out.println("请输入玩家2的id:");  int playerid2= s.nextInt();  b.id=playerid2;  System.out.println("请输入玩家2的姓名:");  String playername2= s.next();  b.name=playername2; } public void distribute(){ System.out.println("---------开始发牌-----------"); System.out.println("玩家---"+a.name+"---拿牌"); a.hand.add(possible.get(0)); System.out.println("玩家---"+b.name+"---拿牌"); b.hand.add(possible.get(1)); System.out.println("玩家---"+a.name+"---拿牌"); a.hand.add(possible.get(2)); System.out.println("玩家---"+b.name+"---拿牌"); b.hand.add(possible.get(3)); System.out.println("---------发牌结束-----------"); } public void start(){ System.out.println("---------开始游戏...-----------"); card Ace1=a.hand.get(0).compare(a.hand.get(1)); card Ace2=b.hand.get(0).compare(b.hand.get(1)); card Ace=Ace1.compare(Ace2); System.out.println("玩家:"+a.name+"的最大手牌为:"+Ace1.color+Ace1.num); System.out.println("玩家:"+b.name+"的最大手牌为:"+Ace2.color+Ace2.num); if(Ace.equals(Ace1)){String winner=a.name; System.out.println("-------玩家:"+winner+"获胜------------");} if(Ace.equals(Ace2)){String winner=b.name; System.out.println("-------玩家:"+winner+"获胜------------");} } public void showhand(){ System.out.println("玩家各自手牌为:"); System.out.println(a.name+":["+a.hand.get(0).color+a.hand.get(0).num+a.hand.get(1).color+a.hand.get(1).num+"]"); System.out.println(b.name+":["+b.hand.get(0).color+b.hand.get(0).num+b.hand.get(1).color+b.hand.get(1).num+"]"); } public static void main(String[] args) { // TODO Auto-generated method stub initial I=new initial(); I.create(); I.test(); I.shuffle(); I.newplayer(); I.distribute(); I.showhand(); I.start(); } }
查看完整描述

1 回答

?
慕粉3392422

TA贡献2条经验 获得超1个赞

解决了已经。。。。

查看完整回答
1 反对 回复 2016-06-28
  • 1 回答
  • 0 关注
  • 1140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信