有52张扑克牌要随机发牌给四个玩家,并且四个玩家牌的数量是相同的? 用java语言写出来 http://www.iteye.com/topic/739333
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import org.junit.Test;
/**
* k代表红桃,黑桃,梅花,方片
* @author Administrator
*
*/
public class TestJavaEye {
Map<String, Object> mp = new HashMap<String, Object>();
int a = 0,b=1,c=2,d=3; //A,B,C,D 对应每一个人的牌
int t = 1;
@Test
public void testinit(){
//创建牌
for(int w = 0;w<52;w++){
if(w<13){
mp.put(w+"","红桃:"+(13-w));
//System.out.println(w+"<坐标......值>"+mp.get(w+""));
}else
if(w<26){
mp.put(w+"","黑桃"+(26-w));
//System.out.println(w+"<坐标......值>"+mp.get(w+""));
}else
if(w<39){
mp.put(w+"","梅花"+(39-w));
//System.out.println(w+"<坐标......值>"+mp.get(w+""));
}else{
mp.put(w+"","方片"+(52-w));
//System.out.println(w+"<坐标......值>"+mp.get(w+""));
}
}
int length = mp.size();
Random random = new Random();
/**
* 开始发牌
*/
for (int i = 0; i < length; i++)
{
//0123
//52/4
//4567
if((i)%4==0){
System.out.println("----------------第"+t+"次发牌-----------------");
t++;
}
int index =random.nextInt(length);
for(;mp.get(index+"")==null;){
index = random.nextInt(length);
}
if(i == a){
System.out.println(a+"A拥有牌索引值:"+index+",牌值:"+mp.get(index+""));
a = a+4;
}
if(i == b){
System.out.println(b+"B拥有牌索引值:"+index+",牌值:"+mp.get(index+""));
b = b+4;
}
if(i == c){
System.out.println(c+"C拥有牌索引值:"+index+",牌值:"+mp.get(index+""));
c = c+4;
}
if(i == d){
System.out.println(d+"D拥有牌索引值:"+index+",牌值:"+mp.get(index+""));
d = d+4;
}
mp.remove(index+"");
}
}
}
分享到:
相关推荐
在面试题中,可能会遇到需要分析和操作字符串的问题。 5. **递归与分治策略** 分治策略是将问题分解为较小的子问题来求解,递归是其常见实现方式。Python 支持递归,但要注意防止栈溢出。在 Codility 题目中,递归...
C++程序员面试、笔试经常遇到的一些算法示例集 pdf,相关内容:字符串匹配的KMP算法,括号匹配检测、求一个数组的最长递减字序列、一些数字题求解,输出一个字符串的所有组合,马戏团表演问题、Thread.sleep 与obj....
### C++绝密面试题详解 #### 1. 求解整数中1的个数 题目描述:实现一个函数 `int func(int x)`,该函数返回输入整数 `x` 中二进制表示中1的个数。 **代码解析**: ```cpp int func(int x) { int count_x = 0; ...
从给定的文件信息中,我们可以总结出一系列与Java面试相关的知识点,这些知识点不仅涵盖了基本的Java编程概念,还涉及...以上知识点覆盖了Java面试中可能遇到的各种技术领域,准备面试时应重点复习并熟练掌握这些内容。
《程序员面试经典算法题》是针对程序员在面试过程中可能会遇到的算法问题进行深入解析的一份资源。这份资料旨在帮助程序员提升算法思维,从而在技术面试中脱颖而出。通过学习和掌握这些经典算法,不仅可以提高编程...
根据提供的文件信息,本文将围绕“程序员面试逻辑题”这一主题进行深入探讨,解析与程序员面试相关的逻辑题目及其重要性,帮助求职者更好地准备面试。 ### 知识点一:理解程序员面试逻辑题的重要性 在程序员招聘...
根据给定文件的信息,我们可以提炼出一系列重要的IT知识点,这些知识点主要...这些知识点不仅涵盖了数据结构和算法的基础知识,还包括了一些实用的编程技巧和问题解决方法,对于准备IT面试的人来说具有很高的参考价值。
"力扣面试经典150题"是一系列精选的题目,旨在帮助面试者熟悉常见的面试问题,提升解决问题的能力。 在LeetCode中,面试经典150题主要分为以下几个类别: 1. **数组**:数组是最基础的数据结构,涉及到的问题包括...
这是一道经典的C语言面试题,主要考查应聘者对位运算的理解和掌握程度,以及优化算法效率的能力。以下是对这道题目的详细解析和相关知识点说明: 1. 位运算基础 位运算是一种对数据的二进制位进行操作的运算。在...
### 最新2年经验的Java面试题精析 在IT行业,尤其是软件开发领域,Java作为一门历史悠久且应用广泛的编程语言,其面试题往往能够反映出求职者对这门语言掌握的深度与广度。以下是对“最新2年经验的Java面试题”中...
算法经典面试题是IT面试中常见的部分,涉及到的数据结构和算法知识广泛,涵盖字符串处理、哈希表、排序、查找、动态规划等多个方面。以下是对这些面试题的详细解释: 1. **时针分针重合问题**: 这是一道关于时间...
首先,从标题“2020年腾讯精选面试题及答案”中可以看出,本文所涉及的知识点是针对腾讯公司招聘过程中可能出现的面试题目。描述中提到这是2020年的精选面试题,并暗示了可以通过加入特定QQ群获取更多相关面试题目和...
本话题将围绕“编程风格面试题 数据结构”这一主题,深入探讨在面试中常见的数据结构相关问题,以及如何用C++/C来解决这些问题。 一、基本数据结构 1. 数组:数组是最基础的数据结构,它是一系列相同类型元素的...
5. **微软面试题**:微软的面试通常包括谜语、算法、应用和智力测试等部分。例如: - **谜语**:例如下水道盖子为什么是圆形,这类问题考察的是逻辑思维和创新能力。 - **算法**:如火车与鸟的问题,涉及速度计算...
### BAT机器学习面试1000题系列知识点详解 #### 1. 归一化为何能提高梯度下降法求解最优解的速度? 归一化技术可以显著改善梯度下降法在训练机器学习模型时的表现。主要原因在于: - **解决尺度差异**:特征之间...
根据提供的文件信息,我们可以梳理出以下关键知识点,主要围绕微软面试题目进行展开: ### 1. 资源分配问题 **题目描述:** - 有一堆石头,每块石头可以对应一个数值(例如12345),当两块石头同时被拿起时,其...
此题的难点在于如何在 O(n) 的时间内求解。如果采用暴力方法枚举所有子数组并计算其和,则时间复杂度为 O(n^2),显然不符合题目要求。 - **关键思想**:如果当前累加和变为负数,那么这个累加和在接下来的累加中只...
### 腾讯Java面试题解析:应对NP完全问题及寻找小顶点覆盖 #### 应对NP完全问题 在IT行业中,面对NP完全问题时,我们常常会遇到理论与实践之间的矛盾。按照理论,NP完全问题是很难找到多项式时间算法解决的。然而...
这里我们来详细探讨一下ASP.NET面试中可能会遇到的一些知识点。 1. **表达式求值**: 1-2+3-4+……+m的求解可以采用循环或递归的方法。在C#中,可以使用`for`循环,每次迭代累加奇数项(正数)和偶数项(负数),...
“面经”即面试经验分享,通常由已经成功通过面试的人撰写,内容涵盖面试中遇到的问题、解题思路以及面试官的偏好等信息。 ### 知识点二:二叉查找树转排序双向链表问题 #### 1. 问题描述 题目要求将给定的二叉...