java随机发牌

public class CardGame
{
    public static void main(String[] args) {
        String[]suits={"spades","dimonds","Hearts","clubs"};
        String[]nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        // 52张牌
        int []cards=new int[52];

        for(int i=0;i<cards.length;i++)
        {
            cards[i]=i;
        }
        // 洗牌,打乱顺序
        int temp;
        for (int i=0;i<cards.length ;i++ ) {
            int index=(int)(Math.random()*cards.length);
            temp=cards[index];
            cards[index]=cards[i];
            cards[i]=temp;//cards数组此时已经不是从0到51顺序排列的了
        }
        // 发牌
        for (int i=0;i<cards.length ;i++ ) {
            String cardNum=nums[cards[i]%13];
            String suit=suits[cards[i]/13];
            System.out.println("第"+(i+1)+"张牌是:"+suit+cardNum);
        }
        /*
        *主要思路:
        *1.为了保证52张牌每张都不重复
        *    牌的花色有4种,每种花色循环13次>>>>0到51的整数除以13,得到的商为0到4(0-12:0;13-25:1···)
        *    牌的数字有13种,每个数字出现4次>>>>0到51的整数除以13,取模的值为0到13.从0到12循环四次。
        *2.为了保证随机性
        *    创建了cards[]数组,为其元素赋值0到51,然后打乱元素的顺序
        */
    }
}

java随机发牌

时间: 2024-12-30 02:59:53

java随机发牌的相关文章

Java 扑克发牌算法实现

原文:Java 扑克发牌算法实现  代码下载地址:http://www.zuidaima.com/share/1550463274224640.htm 两种方法: A. 扑克发牌算法是棋牌游戏中常用的基础算法,也是游戏开发人员需要熟悉的基础算法之一.下面介绍一下该算法的一种实现方式. B.利用Random类的对象的链表中一随机的顺序存储一副52张的纸牌.用含有连个字符的字符串代表纸牌,例如"1C"表示梅花A,"JD"表示方片J等.从栈中输出4手牌,每手牌有13张纸牌

java 随机生成一个中文、判断某个string是否是中文以及打印出全部的中文

现在网上大多数用于判断中文字符的是 U+4E00..U+9FA5 这个范围是只是"中日韩统一表意文字"这个区间,但这不是全部,如果要全部包含,则还要他们的扩展集.部首.象形字.注间字母等等; 2E80-A4CF: 包含了中日朝部首补充.康熙部首.表意文字描述符.中日朝符号和标点.日文平假名.日文片假名.注音字母.谚文兼容字母.象形字注释标志.注音字母扩展.中日朝笔画.日文片假名语音扩展.带圈中日朝字母和月份.中日朝兼容.中日朝统一表意文字扩展A.易经六十四卦符号.中日韩统一表意文字.彝

C语言的随机发牌程序(红桃、黑桃、梅花、方块)

做一个随机发牌的C语言程序,供大家学习,思考. 未做任何注释,有测试时候留下的一些输出语句,一遍方便测试. /* author:nunu qq:398269786 */ #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int a[60]; int b[60]; int w = 0; int wi,wj,wii; int i,j,index,x=0,m; for(i=0;i<54;

Java随机取字符串的工具类

原文:Java随机取字符串的工具类 源代码下载地址:http://www.zuidaima.com/share/1550463479532544.htm Java 随机取字符串的工具类 可以全部是数字,字符,也可以字符和数字组合的工具类,希望能给大家带来帮助 package com.zuidaima.test; import java.util.Random; public class RandomUtils { public static final String ALLCHAR = "012

java随机动态生成汉字验证码图片的实例代码分享

原创不易,转载请注明出处:java随机动态生成汉字验证码图片的实例代码分享 代码下载地址:http://www.zuidaima.com/share/1809721113234432.htm 汉字验证码实现原理 将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码图片并用文本框值和session值比较,功能相对来说还是比较简单的. 效果图,如下: 验证成功后: java随机动态生成汉字验证码图片的实例代码分享

利用Java随机,生成随机学生数据

为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 students表设计如下: 其中前三项是数据库自动生成的,后面的10项需要程序生成. >>基于实际要求,插入的Student数据中,major和jnshuId不能同时相同.但由于随机数的不确定性,在程序中限制两个Student的major和jnshuId不同时相同复杂而低效.因此,选择在数据库中将major

Java随机生成中文汉字(使用高位低位转码)

1 Java随机生成中文汉字 2 /** 3 * 原理是从汉字区位码找到汉字.在汉字区位码中分高位与底位, 且其中简体又有繁体.位数越前生成的汉字繁体的机率越大. 4 * 所以在本例中高位从171取,底位从161取, 去掉大部分的繁体和生僻字.但仍然会有!! 5 * 6 */ 7 @Test 8 public void create() throws Exception { 9 String str = null; 10 int hightPos, lowPos; // 定义高低位 11 Ran

Java 随机生成中文姓名,手机号,邮编,住址

package lovo; import java.util.HashMap; import java.util.Map; /** * 随机生成中文姓名,性别,Email,手机号,住址 * @author Quentin */ public class SuperRandom { public static String base = "abcdefghijklmnopqrstuvwxyz0123456789"; private static String firstName=&quo

Java随机验证吗

<span style="font-size:18px;">package com.java.process.jsp; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.ima