采用面向对象的方式编写一个发牌游戏。四名牌手打牌,电脑随机將52张牌(不含大、小王)发给四名牌手,并在屏幕上显示每位牌手的牌。


import java.util.ArrayList;
import java.util.Collections;
public class Card {
	//采用面向对象的方式编写一个发牌游戏。四名牌手打牌,电脑随机將52张牌(不含大、小王)发给四名牌手,并在屏幕上显示每位牌手的牌。

	//提示:设计出三个类: Card类(代表每一张扑克)、Player类(代表每一位选手)和Poke类(代表一副牌)。

	//输出样例如下:

	//第0牌手:梅花10 梅花8 方片9 黑桃K 梅花4 红桃9 黑桃5 黑桃6 黑桃2 红桃J 红桃7 方片5 黑桃10

	//第1牌手:红桃5 红桃4 方片10 方片1 梅花5 梅花9 梅花K 梅花Q 红桃8 红桃Q 黑桃3 黑桃7 梅花1

	//第2牌手:方片3 方片7 方片6 梅花2 梅花6 方片Q 梅花J 方片2 黑桃Q 方片J 黑桃4 黑桃8 红桃3

	//第3牌手:方片4 方片8 黑桃J 梅花3 梅花7 黑桃1 红桃2 红桃6 红桃10 方片K 红桃K 黑桃9 红桃1
	
	
	private String []pattern= {"黑桃","梅花","方片","红桃"};
	private String []rank= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
	private ArrayList list=new ArrayList();// ArrayList就是传说中的动态数组
	
	public String everypoke(int i)//等会儿将每一张poke填入数组里
	{
		String str="";
		str+=pattern[i%4]+rank[i%13];//为字符串str赋值
		return str;
	}
	
	
	public void stuff()//往数组里填充牌
	{
		
		for(int i=0;i<52;i++)
		{
			list.add(everypoke(i));
		}
	}
	
	
	public void dealcard() //发牌
	{
		int j=0;
		Collections.shuffle(list);//洗牌函数,将数组内的数据值打乱,每种情况等可能
		for(int i=0;i<list.size();i++)
		{
			if(i%13==0)
				System.out.printf("第"+j+"牌手:");
            System.out.printf("%s\t",list.get(i));//将输出结果格式化为String类型,用get获取值
            if((i+1)%13==0)
            {
            	j++;
                System.out.println(" ");
            }
		}
	}
	
}

类在这,写个main调用就可以了

PS:老师要的三个类,我只会一个的,大家仅作参考吧,面向对象我不是很明白,有走过路过的好心大佬可以给我讲一下吗

你可能感兴趣的:(采用面向对象的方式编写一个发牌游戏。四名牌手打牌,电脑随机將52张牌(不含大、小王)发给四名牌手,并在屏幕上显示每位牌手的牌。)