您的位置:首页 > 移动开发 > 微信开发

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

2016-08-16 13:58 489 查看
参考了网上了一些内容,自己实现了一个模拟玩家洗牌、发牌的小程序,若有问题欢迎提出,希望我们可以一起进步。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<Card> cards;  //存储玩家手牌

public Player(String name) {
this.name = name;
}

//获取手牌
public void getCard(Card card){
if(cards == null) cards = new ArrayList<Card>();
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<Card> 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<Card>();
//先创建四种花色的牌
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());
}
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息