【java练习】扑克牌类的创建、洗牌

##练习1
请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face和suit:分别描述一张牌的牌面值(如:A、K、Q、J、10、9、…、3、2等)和花色(如:“黑桃”、“红桃”、“梅花”和“方块”)。定义Card类中的public访问权限的set方法,为类中的变量赋值;定义public访问权限的方法
getFace(),得到扑克牌的牌面值; 定义public访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“红桃A”、“梅花10”等)。

public class Card {
	private String face;
	private String suit;
	
	public void setFace(String a) {
		face=a;
	}
	public void setSuit(String b) {
		suit=b;
	}
	public String getFace() {
		return face;
	}
	public String getSuit() {
		return suit;
	}
	public String toString() {
		return face+suit;
	}
}

##练习2
若应用程序的main方法中,定义字符串数组faces和suits: 分别表示扑克牌的牌面值和花色;定义52个元素的Card类型数组deck,用来存放4个花色的52张牌。如下所示。
String f[] = { “A”, “2”, “3”,
“4”, “5”, “6”, “7”, “8”,
“9”, “10”, “J”, “Q”, “K” };
String s[] =
{ “黑桃”, “红桃”, “梅花”, “方块” };
Card[] deck = new Card[ 52 ];
(1) 使用Card类的构造方法给deck数组的52张牌赋值,要求数组中先存放黑桃花色的A、2、3、…、K;然后是红桃花色的A、2、3、…、K;梅花花色的A、2、3、…、K;方块花色的A、2、3、…、K。请写出实现上述功能的程序段。
(2) 请编写模拟洗牌的程序段,即把数组deck中的扑克牌随机打乱存放顺序。

public static void satCard(Card[] deck) {
		String[] f=new String[] {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
		String[] s=new String[] {"黑桃","红桃","方块","梅花"};
	    deck=new Card[52];
		for(int i=0;i<deck.length;i++) {
			deck[i]=new Card();
			deck[i].setFace(f[i%13]);
			deck[i].setSuit(s[i/13]);
		}
		for(int i=0;i<deck.length;i++) {
			System.out.print(deck[i].toString());
			}
		System.out.println();
		//洗牌
		for(int i=0;i<deck.length;i++) {
			int num=(int)(Math.random()*(deck.length-1));
			Card temp=deck[i];
			deck[i]=deck[num];
			deck[num]=temp;
		}
		for(int i=0;i<deck.length;i++) {
		System.out.print(deck[i].toString());
		}
	}
	
public static void main(String[] args) {
		//洗牌
		Card[] deck=new Card[52];
		satCard(deck);
	}

总结:
刚学没多久,老是忘了初始化。

  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值