`
gtgt1988
  • 浏览: 111087 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

java 斗地主发牌

 
阅读更多

/**
* 
* @Title: Controller.java
* @Package cn.com.starit.servlet
* @Description: TODO(用一句话描述该文件做什么)
* @author gt
* @date 2012-7-8 下午08:57:39
* @copyright STARIT   
*/
package cn.com.starit.servlet;

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

/**
 * 发牌主程序
 *
 */
public class Controller {

	/**
	 * @Title: main
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param args    
	 * @return void 
	 * @throws
	 */
	public static void main(String[] args) {
		   Player p1=new Player(1,"huang");
           Player p2=new Player(2,"zhou");
           Player p3=new Player(3,"li");
          
           Player []players={p1,p2,p3};
          
           List<Card> cards=new ArrayList<Card>();
           //除了大王和小王分别加入到Card中 牌的数目为13*4
           for(int rank=Card.THREE;rank<=Card.DEUCE;rank++){
                 
                  cards.add(new Card(rank,Card.DIAMOND));
                  cards.add(new Card(rank,Card.HEART));
                  cards.add(new Card(rank,Card.CLUB));
                  cards.add(new Card(rank,Card.SPADE));
                 
           }
            //加入大小王  牌的数目为2
           cards.add(new Card(Card.BLACK,Card.JOKER));
           cards.add(new Card(Card.COLOR,Card.JOKER));
          
           //统计牌数一共是54=13*4+2
           System.out.println(cards.size());
         
           //就是随机打乱原来的顺序,和洗牌一样
           Collections.shuffle(cards);
           
        
          //给玩家发牌
           for(int i=0;i<players.length;i++){
                  for (int j = 0; j < 17; j++) {
                	     //cards.remove(0)  一张一张的获取牌数   每次获取17张牌
                         players[i].getList().add(cards.remove(0));
                  }
           }
          
          //玩家获得牌
           for (int i = 0; i < players.length; i++) {
                  System.out.println(players[i].getName()+players[i].getList());
           }
          
           System.out.println("剩余牌数");
           for(int i=0;i<cards.size();i++){
                  System.out.print(cards.get(i)+"  ");
           }

	}

}


/**
* 
* @Title: Player.java
* @Package cn.com.starit.servlet
* @Description: TODO(用一句话描述该文件做什么)
* @author gt
* @date 2012-7-8 下午08:56:41
* @copyright STARIT   
*/
package cn.com.starit.servlet;

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

/**
 *  玩家
 *
 */
public class Player {
	 private   int  id;
     private   String  name;
     //用来存储玩家的Card
     private  List<Card> list=new ArrayList<Card>();
     public  void  add(Card  card){
          list.add(card);
     }
     public Player() {
     }
     public Player(int id, String name) {
         this.id = id;
         this.name = name;
     }
     public int getId() {
         return id;
     }
     public void setId(int id) {
         this.id = id;
     }
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this.name = name;
     }
     public List<Card> getList() {
         return list;
     }
     public void setList(List<Card> list) {
         this.list = list;
     }
    
    

}
/**
* 
* @Title: Card.java
* @Package cn.com.starit.servlet
* @Description: TODO(用一句话描述该文件做什么)
* @author gt
* @date 2012-7-8 下午08:56:11
* @copyright STARIT   
*/
package cn.com.starit.servlet;

/**
 * 扑克牌类
 *
 */
public class Card {
	 // 点数
    public static final int THREE = 0;
    public static final int FOUR = 1;
    public static final int FIVE = 2;
    public static final int SIX = 3;
    public static final int SEVEN = 4;
    public static final int EIGHT = 5;
    public static final int NINE = 6;
    public static final int TEEN = 7;
    public static final int JACK = 8;
    public static final int QUEEN = 9;
    public static final int KING = 10;
    public static final int ACE = 11;
    public static final int DEUCE = 12;
 
    public static final int BLACK = 13;
    public static final int COLOR = 14;
 
    // 花色
    // 方块
    public static final int DIAMOND = 0;
    // 红桃
    public static final int HEART = 1;
    // 梅花
    public static final int CLUB = 2;
    // 黑桃
    public static final int SPADE = 3;
    // 王
    public static final int JOKER = 4;
    // 花色
    public  static String[] suit_names = { "方块", "红桃", "梅花", "黑桃", "王" };
    public  static String[] rank_names = { "3", "4", "5", "6", "7", "8", "9",
            "10", "J", "Q", "K", "A", "2", "小", "大" };
    // 点数
    private int rank;
    // 花色
    private int suit;
 
    public Card() {
 
    }
 
    public Card(int rank, int suit) {
        setRank(rank);
        setSuit(suit);
    }
 
    public int getRank() {
        return rank;
    }
 
    public void setRank(int rank) {
        if (Card.THREE > rank || rank > Card.COLOR)
            throw new RuntimeException("超了");
        this.rank = rank;
    }
 
    public int getSuit() {
        return suit;
    }
 
    public void setSuit(int suit) {
        if (Card.DIAMOND > suit || suit > Card.JOKER)
            throw new RuntimeException("超了");
        this.suit = suit;
    }
 
    @Override
    public String toString() {
    	if(rank_names[rank]=="小"){
    		return rank_names[rank]+suit_names[suit];
    	}
    	else if(rank_names[rank]=="大"){
    		return rank_names[rank]+suit_names[suit];
    		
    	}
       return  suit_names[suit] + rank_names[rank];
    }

}
 
 
 
分享到:
评论

相关推荐

    java斗地主发牌程序

    java 斗地主发牌程序代码,包括测试打印程序,属于游戏类开发部分代码。

    java斗地主发牌小程序

    java斗地主发牌小程序 牌的生成 随机洗牌 发牌 输出显示 代码只有几十行而已

    Java斗地主发牌

    java运用hashmap进行发牌,若有乱码请修改文件的编码格式为UTF-8

    Java斗地主发牌课程设计.doc

    Java斗地主发牌课程设计--附源码

    斗地主发牌程序java程序

    斗地主发牌程序,希望大家 多多下载吧!好东西要分享

    ddz.zip_java 斗地主发牌与排序

    斗地主发牌与手牌上牌主排序,适合初学者开始学习

    斗地主洗牌发牌java小程序

    一个实现斗地主洗牌发牌的java小程序,主要用了hashmap,Arraylist等java常用类,适合初学者学习

    java模拟斗地主洗牌发牌-可拓展

    1)、将一副牌封装进入Map集合中,键为0-53的Integer数据,值为字符串 2)、洗牌:将Map集合的...3)、发牌:发给三个人,就是三个List加一个底牌的List 4)、看牌:将三人的List和底牌List的值进行排序(从大到小)

    斗地主 java源码 界面 发牌程序

    斗地主 java源码 这里只有界面部分和发牌程序 是学习java的好的入门程序, 也是学习java游戏开发的要实例 希望对大家有用处,

    斗地主洗牌发牌算法

    斗地主算法类 适合初学者. 可以实现斗地主的洗牌发牌 无JFrame 简单易懂.

    斗地主自动发牌

    使用JAVAScript实现模仿斗地主发牌程序,使用公司同事的昵称。在Java中使用随机授权函数。Java. Util. Random (),通过循环比对来删除重复的随机值。冗余性太大,我很抱歉。 Use JAVAScript to achieve imitation ...

    java模拟斗地主的洗牌发牌.rar

    用java中的集合来模拟斗地主的游戏的洗牌、发牌、看牌的过程,分别使用集合中的HashMap、ArrayList、TreeSet,来做为扑克牌的存储容器

    斗地主发牌

    java学习资源,斗地主发牌,构造函数 对象数组 for-each循环等

    java斗地主程序代码

    能够自动发牌,出牌,实现斗地主游戏,完整代码

    Java 斗地主游戏源代码.rar

    Java 斗地主游戏源代码,里面有两个版本,一个是绝对不修改版 ,一个是修改版 。界面友好,游戏逻辑也可以,基本保障可以正常玩,不过还是有很多功能需要改进的,仅供学习参考吧。Java游戏编写实例代码 。代码中游戏...

    java模拟实现斗地主发牌小程序

    主要为大家详细介绍了java模拟实现斗地主发牌小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    运用集合模拟斗地主发牌过程

    利用集合模拟斗地主发牌的过程,运用TreeSet集合的自然排序特征和Map集合的键值对来匹配一张扑克牌。

    史上最全斗地主发牌代码实现.rar

    本人全手写斗地主发牌代码实现,出牌规则、以及积分等代码还未实现,有兴趣的小伙伴可以尝试写一下,完成后私信我,可以一起研究web端的实现。

    java实现斗地主发牌系统

    主要为大家详细介绍了java实现斗地主发牌系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Global site tag (gtag.js) - Google Analytics