【算法】扑克发牌算法实现

A404023573

A404023573

2016-02-19 11:14

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是【算法】扑克发牌算法实现,一起来学习了解下吧!
首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下:
u 红桃按照从小到大依次为:1-13
u 方块按照从小到大依次为:14-26
u 黑桃按照从小到大依次为:27-39
u 梅花按照从小到大依次为:40-52
u 小王为53,大王为54
算法实现如下:
u 首先按照以上编号规则初始化一个包含108个数字的数组
u 每次随机从该数组中抽取一个数字,分配给保存玩家数据的数组
实现该功能的代码如下所示:
代码如下:

import java.util.*;
/**
* 发牌算法的实现
* 要求:把2副牌,也就是108张,发给4个人,留6张底牌
*/
public class Exec{
public static void main(String[] args){
//存储108张牌的数组
int[] total = new int[108];
//存储四个玩家的牌
int[][] player = new int[4][25];
//存储当前剩余牌的数量
int leftNum = 108;
//随机数字
int ranNumber;
//随机对象
Random random = new Random();

//初始化数组
for(int i = 0;i total.length;i++){
total[i] = (i + 1) % 54;
//处理大小王编号
if(total[i] == 0){
total[i] = 54;
}

}

//循环发牌
for(int i = 0;i 25;i++){
//为每个人发牌
for(int j = 0;j player.length;j++){
//生成随机下标
ranNumber = random.nextInt(leftNum);
//发牌
player[j][i] = total[ranNumber];
//移动已经发过的牌
total[ranNumber] = total[leftNum - 1];
//可发牌的数量减少1
leftNum--;
}
}

//循环输出玩家手中的牌
for(int i = 0;i player.length;i++){
for(int j = 0;j player[i].length;j++){
System.out.print(" " + player[i][j]);
}
System.out.println();
}
//底牌
for(int i = 0;i 8;i++){
System.out.print(" " + total[i]);
}
System.out.println();
}
}
展开更多 50%)
分享

猜你喜欢

【算法】扑克发牌算法实现

Web开发
【算法】扑克发牌算法实现

CRC算法与实现

C语言教程 C语言函数
CRC算法与实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

CRC算法的实现

编程语言 网络编程
CRC算法的实现

用java实现RSA算法

编程语言 网络编程
用java实现RSA算法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

利用SDK实现迷宫算法

C语言教程 C语言函数
利用SDK实现迷宫算法

Java实现数据排序算法

编程语言 网络编程
Java实现数据排序算法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

64位WIN7中禁用驱动程序签名强制

64位WIN7中禁用驱动程序签名强制

重装MS SQL Server 2000前必须彻底删除原安装文件的方法

重装MS SQL Server 2000前必须彻底删除原安装文件的方法
下拉加载更多内容 ↓