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. Chrome浏览器官方下载地址

    Chrome浏览器离线安装包官方下载地址,和在线安装一样能自动更新. 正式版 http://www.google.com/chrome/eula.html?hl=zh-CN&standalon ...

  2. SQL ROW_NUMBER()实现取组内最新(最大)的数据

    SELECT * FROM(select ROW_NUMBER() over(partition BY sid order by cscore desc) as tid,sid,cname,cscor ...

  3. c# 的MD5加密算法

    发现用C#封装好的内部类实现MD5加密和其它语言的MD5加密结果有时会不一样,暂时发现没有特殊字符时的结果是一样的,一旦有特殊字符(09404719290010210‹»×úÛ±8*«À‡7œ–201 ...

  4. C#Matlab混合编程类 初始化问题解决方法

    ************** 异常文本 ************** System.TypeInitializationException: “myPlus.matClass”的类型初始值设定项引发异 ...

  5. (转)myeclipse插件—SVN分支与合并详解【图】

    svn作为版本控制软件被广泛用于众多公司的开发团队中,最多的场景就是一个项目上传svn后,一个组内的小伙伴在上边提交和更新代码以及解决冲突,其实这只是发挥了svn的很小的一部分功能. 先稍微介绍一下s ...

  6. 反汇编工具capstone安装后import error

    使用sudo pip install capstone后,使用如下代码import时出现error. from capstone import * 错误信息: File "/usr/loca ...

  7. easyui 中datagrid 点击行的事件

    $('#datagrid 的ID').datagrid({                onClickRow:function(index,data)                {        ...

  8. Number Sequence HDU 1711(KMP)

    http://acm.hdu.edu.cn/showproblem.php?pid=1711 首次接触KMP,自己都不是特别理解.在网上百度看了好几个帖子之后,对KMP也有了初步的理解. #inclu ...

  9. C#中的线程(二) 线程同步基础

    1.同步要领 下面的表格列展了.NET对协调或同步线程动作的可用的工具:                       简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join 等待另一个线程 ...

  10. svn ignore

    工程名为simple,采用maven进行依赖管理,在check in时我不想工程下maven产生的target目录被提交到SVN(包括目录下所有文件和目录本身). 解决方法: 要被忽略的目录必须是未版 ...