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();
}
}
添加回答
舉報
0/150
提交
取消
