Java模拟玩家洗牌发牌小程序

参考了网上了一些内容,自己实现了一个模拟玩家洗牌、发牌的小程序,若有问题欢迎提出,希望我们可以一起进步。QQ:767696856

(其中洗牌是直接通过集合类中的shuffle实现)



package com.cute.card;

/*
 * 手牌
 */
public class Card {
	public String num;  //牌的数字
	public String suit;  //花色
	
	public Card(String num,String suit){
		this.num = num;
		this.suit = suit;
	}
	
	@Override
	public String toString() {
		String str = suit + " " + num;
		return str;
	}
}

package com.cute.card;

/*
 * 玩家
 */
import java.util.ArrayList;
import java.util.List;

public class Player {
	public String name;  //玩家姓名
	public List cards;  //存储玩家手牌
	
	public Player(String name) {
		this.name = name;
	}
	
	//获取手牌
	public void getCard(Card card){
		if(cards == null) cards = new ArrayList();
		cards.add(card);
	}
	
	public String toString(){
		return name + ":" + cards.toString();
	}
}

package com.cute.card;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class DeskOfCard {
	
	List cards;
	
	//创建一副手牌
	public void initCard(){
		String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
		String[] suits = {"方块","梅花","红桃","黑桃"};
		String[] jokers = {"小王","大王"};
		
		cards = new ArrayList();
		//先创建四种花色的牌
		for(int i = 0; i<52; i++){
			cards.add(new Card(nums[i%13],suits[i/13]));
		}
		
		//再加上大小王
		cards.add(new Card("",jokers[0]));
		cards.add(new Card("",jokers[1]));
	}
	
	
	public static void main(String[] args) {
		DeskOfCard test = new DeskOfCard();
		test.initCard();  //初始化
		
		Collections.shuffle(test.cards);  //洗牌
		
		//创建玩家
		Player pl1 = new Player("Cute");
		Player pl2 = new Player("Jane");
		Player pl3 = new Player("Katter");
		
		//发牌
		for(int i=0; i<54; i++){
			if(i%3 == 0){
				pl1.getCard(test.cards.get(i));
			}else if(i%3 == 1){
				pl2.getCard(test.cards.get(i));
			}else if(i%3 == 2){
				pl3.getCard(test.cards.get(i));
			}
		}
		
		System.out.println("玩家拿到的手牌为:");
		System.out.println(pl1.toString());
		System.out.println(pl2.toString());
		System.out.println(pl3.toString());
	}
}

运行结果:







你可能感兴趣的:(Java)