`
bd2007
  • 浏览: 395045 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

java编写扑克的洗牌程序

阅读更多


java编写扑克的洗牌程序

1package com.web; 2 3public class Card { 4 5    private String face; // A, K, Q, J, 10,  2 6    private String suit; // Spade, Heart, Club, Diamond 7 8    public Card(){ 9        10    }11    12    //定义一个构造函数用于初始化点数2~A的牌13    public Card(String suit, String face) {14        this.face = face;15        this.suit = suit;16    }1718    //定义一个构造函数用于初始化大王和小王 19    public Card(String suit){20        this.face = "";  //如果不给face赋值的话,洗牌和切牌后的大小王前面会显示&#8220;null&#8221; 21        this.suit = suit;22    }23    24    protected String getFace() {25        return face;26    }2728    protected String getSuit() {29        return suit;30    }3132    public String toString() {33        return suit + " " + face;34    }3536    public static void shuffle(Card[] deck, int startIndex, int size, int splitIndex) {37        if (splitIndex * 2 > size) {38            Card.swap(deck, startIndex, splitIndex, size - splitIndex);39            shuffle(deck, size - splitIndex, splitIndex, size - splitIndex);40        } else if (splitIndex * 2 < size) {41            Card.swap(deck, startIndex, size - splitIndex, splitIndex);42            shuffle(deck, startIndex, size - splitIndex, splitIndex);43        } else {44            Card.swap(deck, startIndex, splitIndex, splitIndex);45        }4647    }4849    public static void swap(Card[] deck, int srcIndex, int dstIndex, int size) {50        String face = "";51        String suit = "";52        for (int i = 0; i < size; i++) {53            face = deck[srcIndex + i].face;54            suit = deck[srcIndex + i].suit;55            deck[srcIndex + i].face = deck[dstIndex + i].face;56            deck[srcIndex + i].suit = deck[dstIndex + i].suit;57            deck[dstIndex + i].face = face;58            deck[dstIndex + i].suit = suit;59        }60    }61    62    public static void main(String[] args){63        Card[] deck = new Card[54];64        String f[] = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };65        // String s[] = {"Spade","Heart","Club","Diamond"};66        String s[] = { "黑桃", "红桃", "梅花", "方块" };67        for (int i = 0; i < s.length; i++) {68            for (int j = 0; j < f.length; j++) {69                deck[i * 13 + j] = new Card(s[i], f[j]);70            }71            deck[52] = new Card("小王"); 72            deck[53] = new Card("大王"); 73        }74        int rnd = 0;75        int numOfShuffle = 10;76        for (int i = 0; i < numOfShuffle; i++) {77            rnd = (int) Math.abs(Math.random() * 52);78            Card.shuffle(deck, 0, deck.length, rnd);79        }80        // Test81        for (int i = 0; i < deck.length; i++) {82            System.out.println(deck[i]);83        }84    }85}86
0
1
分享到:
评论

相关推荐

    java扑克牌发牌程序

    主要用到了数组的思想去生成纸牌,用随即产生的数来洗牌,然后发牌!

    用Java编写的扑克牌游戏

    总的来说,用Java编写的扑克牌游戏不仅展示了编程基础,还涵盖了高级概念,如数据结构、面向对象设计、算法和多线程。通过参与这样的项目,开发者可以提升自己的编程技能并加深对Java语言的理解。如果你对这个游戏感...

    Java模拟扑克牌洗牌发牌过程

    在本文中,我们将深入探讨如何使用Java编程语言来模拟扑克牌的洗牌和发牌过程。这个过程涉及到了数组、随机数生成、以及基本的算法设计。首先,我们需要理解扑克牌的基本规则和结构。 扑克牌通常包含52张牌,分为四...

    java模拟人工洗牌(改进版)

    编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。 使用结构card 来描述一张牌,用随机方法来模拟人工洗牌的过程,最后将洗好的52张牌顺序分别发给四个人。 设计要求: 1)要求使用java类包中的Math.Random()...

    java斗地主发牌小程序

    在这个小程序中,我们将探讨如何生成牌,随机洗牌,以及公平地发牌给三个玩家。 【描述】:“牌的生成、随机洗牌、发牌、输出显示” 1. **牌的生成**:在Java中,首先我们需要创建一个表示扑克牌的数据结构。这...

    java模拟人工洗牌代码

    编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。 使用结构card 来描述一张牌,用随机方法来模拟人工洗牌的过程,最后将洗好的52张牌顺序分别发给四个人。 设计要求: 1)要求使用java类包中的Math.Random()...

    扑克牌程序

    在本文中,我们将深入探讨如何使用Java编程语言来实现一个扑克牌程序,这涉及到扑克牌的构造、基本算法以及比较、搜索和排序等关键操作。首先,我们需要理解扑克牌的基本结构和规则,以便在代码中有效地模拟它们。 ...

    java 扑克牌游戏

    3. **算法设计**:在扑克牌游戏中,算法设计至关重要,包括洗牌算法、发牌算法、判断胜败的规则等。例如,洗牌可以通过Fisher-Yates(Knuth)洗牌算法实现,确保随机性;发牌则需要考虑公平性和效率。 4. **事件...

    四人发牌洗牌程序

    编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。 使用结构card 来描述一张牌,用随机方法来模拟人工洗牌的过程,最后将洗好的52张牌顺序分别发给四个人。 设计要求: 1)要求使用java类包中的Math.Random()...

    扑克牌图片 Java程序开发

    在本项目中,我们主要关注的是“扑克牌图片 Java程序开发”,这涉及到计算机编程中的图形用户界面(GUI)设计以及Java语言的相关应用。这个项目的核心是利用Java来创建一个扑克牌游戏,其中包含了图片资源和相应的源...

    模拟人工洗牌

    编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。 使用结构card 来描述一张牌,用随机方法来模拟人工洗牌的过程,最后将洗好的52张牌顺序分别发给四个人。 设计要求: 1)要求使用java类包中的Math.Random...

    Java小游戏扑克牌Java实用源码整理learns

    5. **算法与逻辑**:游戏规则的实现涉及一些算法,如洗牌算法(可以使用Fisher-Yates shuffle)、发牌算法、比较牌型的逻辑等。这些都需要清晰的思维和准确的代码实现。 6. **异常处理**:在编写程序时,要考虑到...

    java 扑克牌

    最后,我们编写主程序,创建一个牌堆栈,洗牌,然后将牌平均分给4个玩家: ```java public class Main { public static void main(String[] args) { PokerDeck deck = new PokerDeck(); deck.shuffle(); ...

    扑克牌发牌洗牌系统

    本文将深入探讨一个基于Java实现的“扑克牌发牌洗牌系统”的相关知识点,帮助学习者巩固Java基础。 首先,我们来看扑克牌发牌洗牌系统的概述。在扑克游戏中,发牌和洗牌是两个关键步骤。发牌涉及到从一副扑克牌中...

    扑克牌洗牌发牌.zip

    在Python编程领域,开发一款基于图形用户界面(GUI)的扑克牌洗牌和发牌游戏是一种常见的练习,用于提升对面向对象编程、随机数生成以及图形库应用的理解。本项目中,我们关注的是使用tkinter模块来实现这个功能。...

    java斗地主发牌程序

    【Java斗地主发牌程序】是一个典型的基于Java编程语言实现的桌面游戏应用,它主要用于模拟斗地主游戏中的发牌过程。在这个程序中,我们可以深入学习到Java的基础语法、面向对象编程思想以及随机数生成等核心概念。...

    Java模拟扑克牌洗牌实现生成52张扑克的方法示例

    以上就是利用Java模拟扑克牌洗牌生成52张牌的主要知识点,通过这个过程,读者可以学习到数组操作、集合操作、方法重载、泛型警告抑制等编程技巧,以及理解Java程序的组织结构和运行机制。更深入的Java编程知识和技巧...

    java 洗牌发牌代码

    ### Java洗牌发牌程序概述 这段代码实现了一个简单的洗牌发牌功能,使用Java语言编写。程序的目标是模拟扑克牌游戏中的洗牌和发牌过程。 ### 主要组件 #### 变量定义 1. **players**: 一个字符串数组,用于存储...

    Java 简单发牌程序

    在Java编程中,创建一个简单的发牌程序是一个很好的学习实践,尤其对于理解枚举类的应用。这个程序的主要目的是模拟扑克牌游戏中的发牌过程。在这个过程中,我们将涉及以下几个关键知识点: 1. **枚举类(Enum)**...

Global site tag (gtag.js) - Google Analytics