// 用物件來處理發牌。 import java.util.*; class player{ private int[] card=new int[13];//記錄手上的牌 private String[] cname={"梅花","方塊","紅心","黑桃"}; /**建構元,用來先把牌清乾淨***/ public player() { int i; for (i=0;i<13;i=i+1) this.card[i]=-1; } /**** method 用來show出第幾張牌 ******/ public String show(int id) { int A,B; if (card[id]==-1) return ("沒有這張牌"); else { A=card[id]%4; B=card[id]/4; B=B+2; if (B==14) return (cname[A]+"A"); else if (B==13) return (cname[A]+"K"); else if (B==12) return (cname[A]+"Q"); else if (B==11) return (cname[A]+"J"); else return (cname[A]+B); } } //SHOW /**** method 用來發牌給本玩家 ******/ public void set_card(int id,int x) { if (id<13 && x<52) card[id]=x; else System.out.println("錯誤 id="+id+" x="+x); } /**** method 用來發牌給本玩家,利用overload來處理沒有設定第幾張的時候 ******/ public void set_card(int x) { int i,flag; if (x>52 || x<0) { System.out.println("錯誤 x="+x); return; } //flag用來看看有沒有發到牌 flag=0; for (i=0;i<13;i=i+1) { if (card[i]==-1) //那個位置沒有牌 { card[i]=x; flag=1; break; //發完牌就可以跳出去了 }//if card }//for if (flag==0) System.out.println("錯誤!本家發超過13張牌"+x); } } public class a10c { public static void main(String[] args) { int i,j,x; int[] dcard=new int[52]; //用來記錄該位牌是否已被發出 int num=13; //設定發13張牌 int A,B; Random randomG=new Random(); player p1=new player();//定義四家玩家 player p2=new player(); player p3=new player(); player p4=new player(); //---------------起始值設定------ for (i=0;i<=51;i=i+1) dcard[i]=0; //-------------由電腦亂數發牌------ for (j=0;j