实现斗地主发牌(java)
2013-07-15 18:50
288 查看
/** *这是一个java实现的斗地主,发牌结果的程序,实现3个人十三张牌,然后底牌3张。 */ import java.util.Arrays; public class pokerDemo{ public static void main(String[] args) { /*生成一副牌的数字,简称牌库*/ int[]pkCode=new int[54]; for(int i=0;i<54;i++){ pkCode[i]=i; } /*花色*/ String[]color={"方","梅","红","黑"}; /*数字*/ String[]num={"3","4","5","6","7","8","9","10","J","Q","K","A","2"}; /*生成数组实现空的54个位置,存放随机洗牌后的牌,简称牌位*/ int[]pk=new int[54]; for(int i=0;i<pk.length;i++){ /*随机生成数字*/ int index=(int)(Math.random()*(pk.length-i)); /*将生成的下标对应的牌存入54个空牌位。然后将原来牌库中拿到的牌移除,并重新洗牌*/ pk[i]=pkCode[index]; remove(pkCode,index); } /*生成三个用户以及底牌三张*/ int[]pk1=new int[17]; int[]pk2=new int[17]; int[]pk3=new int[17]; int[]dz=new int[3]; /*将得到的牌拷贝倒数组当中 ,用于排列*/ System.arraycopy(pk, 0, pk1, 0, 17); System.arraycopy(pk, 17, pk2, 0, 17); System.arraycopy(pk, 34, pk3, 0, 17); System.arraycopy(pk, 51, dz, 0,3); sort(pk1); sort(pk2); sort(pk3); sort(dz); /*声明最后存放牌结果的数组*/ String []pk1Char = new String[17]; String []pk2Char = new String[17]; String []pk3Char = new String[17]; String []dzChar = new String[3]; /*调用花色生成方法,并复制结果到最后的结果String 数组当中*/ copy(pk1,pk1Char,color,num); copy(pk2,pk2Char,color,num); copy(pk3,pk3Char,color,num); copy(dz,dzChar,color,num); /*打印输出结果*/ System.out.println(Arrays.toString(pk1Char)); System.out.println(Arrays.toString(pk2Char)); System.out.println(Arrays.toString(pk3Char)); System.out.println(Arrays.toString(dzChar)); } /*排序*/ public static void sort(int[]a){ for(int i=1;i<a.length;i++){ for(int j=0;j<i;j++){ if(a[j]<a[i]){ int temp=a[j]; a[j]=a[i]; a[i]=temp; } } } } /*移除,从牌库中移除随机生成后牌*/ public static void remove(int[]a,int index){ for(int i=index;i<a.length-1;i++){ a[i]=a[i+1]; } } /*生成花色,复制到最后的发牌结果中*/ public static void copy(int[]a,String[]d ,String[]color,String[]num){ for(int i=0;i<a.length;i++){ int index=a[i]; /*53张为小王*/ if(index==52)d[i]="小王"; /*54张为大王*/ else if(index==53)d[i]="大王"; else{ /*花色根据下标对4取余的结果来得到四种花色中的随机值*/ d[i]=color[index%4]+num[index/4]; } } } }
相关文章推荐
- java 利用集合实现斗地主算法
- 斗地主JAVA简要实现
- Java实现--模拟斗地主的洗牌和发牌
- 【Java学习笔记】16.TreeMap集合实现斗地主洗牌发牌
- Java实现斗地主小程序源码、Java swing斗地主源码
- Java 实现斗地主扑克牌排序
- java中用map实现斗地主基础版
- Java中使用HashMap,TreeSet和List来实现模拟斗地主的洗牌和发牌的小例子
- java中用HashMap,ArrayList,TreeMap实现一个模拟斗地主发牌的用例
- Java集合实现斗地主功能
- 黑马程序员_Java实现斗地主发牌
- java用ArrayList集合来实现斗地主发牌案例
- 通过Java实现斗地主
- Java 中常用缓存Cache机制的实现
- JAVA基础初探(十四)多线程(线程与进程概述、线程的实现、状态、常用方法、优先级、生命周期)
- 【数据结构】队列(顺序队列、链队列)的JAVA代码实现
- java实现冒泡排序
- Java telnet连接的实现
- java实现Hbase中的查询(一)Filter方式
- Java 下实现锁无关数据结构(转)