public class Card {//扑克类
private String face;
private String suit;

// 牌面值和花色初始化
public Card(String face, String suit) {
this.face = face;
this.suit = suit;
}

// 输出牌面值和花色
public String toString() {
return suit + " " + face;
}

public String getFace() {
return face;
}

public String getSuit() {
return suit;
}

// 洗牌的方法
public static void xipai(Card[] deck) {
for (int first = 0; first < deck.length; first++) {

int second = (int) (Math.random() * 52);// 随机生成0-51的数字
Card temp = deck[first]; // 表示此类的变量是自己本身,也就是自己的一个对象。
deck[first] = deck[second];
deck[second] = temp;
}
}

// 发牌
public static void fapai(Card[] deck) {

Card A[] = new Card[52];
Card B[] = new Card[52];
Card C[] = new Card[52];
Card D[] = new Card[52];

for (int i = 0; i < deck.length; i += 4) {
A[i] = deck[i];
B[i] = deck[i + 1];
C[i] = deck[i + 2];
D[i] = deck[i + 3];
}
int count = 0;
System.out.print("A玩家持牌\t");
for (int i = 0; i < deck.length; i += 4) {

System.out.print(A[i] + "\t");
count++;
if (count % 13 == 0) {
System.out.println("");
}

}
System.out.print("B玩家持牌\t");
for (int i = 0; i < deck.length; i += 4) {
System.out.print(B[i] + "\t");
count++;
if (count % 13 == 0) {
System.out.println("");
}

}
System.out.print("C玩家持牌\t");
for (int i = 0; i < deck.length; i += 4) {
System.out.print(C[i] + "\t");
count++;
if (count % 13 == 0) {
System.out.println("");
}

}
System.out.print("D玩家持牌\t");
for (int i = 0; i < deck.length; i += 4) {
System.out.print(D[i] + "\t");
count++;
if (count % 13 == 0) {
System.out.println("");
}

}

}

}

//测试类

public class Demo {

public static void main(String[] args) {

String [] f={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String s[]={"黑桃","红桃","梅花","方块"};
Card deck[]=new Card[52]; //对象数组
for ( int i = 0; i < deck.length; i++ ) {
deck[ i ] = new Card( f[ i % 13 ], s[ i / 13 ] );//数组中的每一个对象必须分别进行实例化操作
//System.out.println(deck[i].toString());
}
//********************************——洗牌——********************************
Card gina[]=new Card[52];
Card.xipai(deck);
//洗牌后的序列
for ( int i = 0; i < deck.length; i++ ){
System.out.println(deck[i].toString());
}

System.out.println("***************************************************");
for ( int i = 0; i < gina.length; i++ ){
gina[i]=deck[i];
}

//********************************——发牌——********************************
Card.fapai(gina);
//发牌后的序列
for ( int i = 0; i < deck.length; i++ ){
System.out.println(gina[i].toString());
}

}

}

斗地主——扎金花——3DMark的更多相关文章

  1. 棋牌平台开发教程之扎金花大小比较算法在php中的实现

    PHP中扎金花比大小如何实现 在棋牌游戏中,不管是现实的还是线上的,扎金花无疑是最热门棋牌游戏之一,鄙人从小就酷爱扎金花,机缘巧合后面从事了IT行业,话不多说,直接进去正题吧. 扎金花两副牌的比较规则 ...

  2. 测开之路三十三:Flask实现扎金花游戏

    访问http://localhost:8888/game随机获取一张扑克牌.豹子(炸弹):三张点相同的牌.例:AAA.222.顺金(同花顺.色托):花色相同的顺子.例:黑桃456.红桃789.最大的顺 ...

  3. 200行代码搞定炸金花游戏(PHP版)

    <?php/* * 游戏名称:炸金花(又名三张牌.扎金花) * 开发时间:2009.1.14 * 编 程:多菜鸟 * 来 源:http://blog.csdn.net/kingerq/archi ...

  4. 斗牛app上架应用宝、牛牛手机游戏推广、百人牛牛app应用开发、棋牌游戏上传、手游APP优化

    联系QQ:305-710439斗牛app上架应用宝.牛牛手机游戏推广.百人牛牛app应用开发.棋牌游戏上传.手游APP优化 iOS开发iPhone/iPad平台安卓手机软件开发机型覆盖范围 超过113 ...

  5. 2015最新iOS学习线路图

    iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...

  6. 晋城6397.7539(薇)xiaojie:晋城哪里有xiaomei

    晋城哪里有小姐服务大保健[微信:6397.7539倩儿小妹[晋城叫小姐服务√o服务微信:6397.7539倩儿小妹[晋城叫小姐服务][十微信:6397.7539倩儿小妹][晋城叫小姐包夜服务][十微信 ...

  7. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  8. 测开之路四十九:用Django实现扑克牌游戏

    用Django实现和之前flask一样的扑克牌游戏 项目结构 html <!DOCTYPE html><html lang="en"><head> ...

  9. 汕尾6397.7539(薇)xiaojie:汕尾哪里有xiaomei

    汕尾哪里有小姐服务大保健[微信:6397.7539倩儿小妹[汕尾叫小姐服务√o服务微信:6397.7539倩儿小妹[汕尾叫小姐服务][十微信:6397.7539倩儿小妹][汕尾叫小姐包夜服务][十微信 ...

随机推荐

  1. sqlite3 转义字符

    SqLite数据库的单引号转义是用单引号转义,并不是常用的"/" 参考:http://blog.csdn.net/qingflyer/article/details/6372498 ...

  2. EntityFramework+MySql 笔记1

    最近需要使用mysql ,而之前用惯了EF,所以就尝试EntityFramework+MySql的方案. 首先上网搜了一大通资料后,这样开始: 安装mysql,我用的版本是5.6.25 ( windo ...

  3. Qt中让Qwidget置顶的方法

    一般来是说窗体置顶和取消只要        setWindowFlags(Qt::WindowStaysOnTopHint);        setWindowFlags(Qt::Widget); 要 ...

  4. Jquery Mobile示例

    http://www.w3school.com.cn/jquerymobile/jquerymobile_examples.asp

  5. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework的依赖注入和控制反转

    Dependency Injection and Inversion of Control 1.概述: 1.1相关概念 bean:由IoC容器所管理的对象,也即各个类实例化所得对象都叫做bean 控制 ...

  6. 为什么重写equals时必须重写hashCode方法?

    原文地址:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452206.html 首先我们先来看下String类的源码:可以发现Stri ...

  7. Activity启动模式

    ------siwuxie095 共4种启动模式:standard singleTop singleTask singleInstance 1.标准启动模式(standard) 也即默认的启动模式 ( ...

  8. myeclipse部署web项目到server : deploy location 为 INVALID,并且不能更改

    首先查看项目路径下有没有 .mymetadata文件,没有就从其它地方挪一个,但是文件中的id必须是唯一的. 如果还不行就去下面这位大哥写的博客看下,进行下一步就可以解决了 生如夏花

  9. 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合

    转自:http://blog.csdn.net/zhao19861029/article/details/8473245 首先实现生成对应的JAVAbean的XML文件方法 /** * DMO4J写入 ...

  10. [刘阳Java]_MyBatis_常规标签的用法_第6讲

    一般MyBatis最基本标签,或者说初学者上手最快的标签就是增删改查 1.<insert>标签,在MyBatis中完成数据添加操作 <insert id="addMyUse ...