1樓
大 中
小 發表於 2006-8-7 20:36
[JAVA] 用物件來處理發牌
引用: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) card=-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);
}
}
public class a10b
{
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=0;
//-------------由電腦亂數發牌------
for (j=0;j<num;j=j+1) //發給一家
{
x=randomG.nextInt(52);
while (dcard[x]!=0) x=randomG.nextInt(52);
p1.set_card(j,x);
dcard[x]=1;
}
for (j=0;j<num;j=j+1) //發給一家
{
x=randomG.nextInt(52);
while (dcard[x]!=0) x=randomG.nextInt(52);
p2.set_card(j,x);
dcard[x]=1;
}
for (j=0;j<num;j=j+1) //發給一家
{
x=randomG.nextInt(52);
while (dcard[x]!=0) x=randomG.nextInt(52);
p3.set_card(j,x);
dcard[x]=1;
}
for (j=0;j<num;j=j+1) //發給一家
{
x=randomG.nextInt(52);
while (dcard[x]!=0) x=randomG.nextInt(52);
p4.set_card(j,x);
dcard[x]=1;
}
//-----------顯示到瑩幕-------
System.out.println("第一家的牌如下:");
for (j=0;j<num;j=j+1)
System.out.print(p1.show(j)+" ");
System.out.println("");
System.out.println("第二家的牌如下:");
for (j=0;j<num;j=j+1)
System.out.print(p2.show(j)+" ");
System.out.println("");
System.out.println("第三家的牌如下:");
for (j=0;j<num;j=j+1)
System.out.print(p3.show(j)+" ");
System.out.println("");
System.out.println("第四家的牌如下:");
for (j=0;j<num;j=j+1)
System.out.print(p4.show(j)+" ");
System.out.println("");
}
}
|