精华内容
下载资源
问答
  • 本文实例讲述了Java实现洗牌发牌方法。分享给大家供大家参考。具体如下:import java.util.*;public class Main {/*** @param args the command line arguments*/static int numbersOfPlayers = 4;static int ...

    本文实例讲述了Java实现洗牌发牌的方法。分享给大家供大家参考。具体如下:

    import java.util.*;

    public class Main {

    /**

    * @param args the command line arguments

    */

    static int numbersOfPlayers = 4;

    static int numbersOfHandCard = 13;

    public static void main(String[] args) {

    // TODO code application logic here

    String[] player = {"小王","小张","小赵","小白"};

    String sentence = "的手牌是:";

    String[] huase = {"♥","♣","♦","♠"};

    String[] paiValue ={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

    List deak = new ArrayList();

    for(int i = 0;i < 4;i++){

    for(int j = 0; j < 13;j++)

    {

    deak.add(huase[i]+paiValue[j]);

    }

    }

    Collections.shuffle(deak);

    for(int i = 0;i < numbersOfPlayers;i++){

    System.out.print(player[i]+sentence);

    System.out.println(dealHand(deak, numbersOfHandCard));

    }

    }

    public static List dealHand(List Ls,int n){

    int sizePai = Ls.size();

    List handView = Ls.subList(sizePai - n, sizePai);

    List hand = new ArrayList(handView);

    handView.clear();

    return hand;

    }

    }

    展开全文
  • 本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中;通过把集合数据排序打乱实现洗牌操作,然后在通过循环把牌抽出来...

    本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下

    实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中;通过把集合数据排序打乱实现洗牌操作,然后在通过循环把牌抽出来实现发牌操作。

    下面是实现代码:

    import java.util.ArrayList;

    import java.util.Collections;

    public class Card {

    private static ArrayList list = new ArrayList<>();

    private static String[] colors = {"黑桃","红桃","梅花","方块"};

    private static String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

    private static String[] jokers = {"Joker","joker"}; //大小王

    private static ArrayList A = new ArrayList<>(); //小人A

    private static ArrayList B = new ArrayList<>(); //小人B

    private static ArrayList C = new ArrayList<>(); //小人C

    private static ArrayList D = new ArrayList<>(); //小人D

    //初始化扑克牌

    public static void initCards(boolean need){

    for(String color:colors){

    for (String num:nums) {

    list.add(color + num);

    }

    }

    //是否添加大小王

    if (need) {

    list.add(jokers[0]);

    list.add(jokers[1]);

    }

    }

    //洗牌

    public static void xiPai(){

    Collections.shuffle(list);

    }

    //性感荷官,在线发牌

    public static void faPai(){

    A.clear();

    B.clear();

    C.clear();

    D.clear();

    for (int i = 0; i < list.size();i++) {

    if (i%4 == 0) {

    A.add(list.get(i));

    }

    if (i%4 == 1) {

    B.add(list.get(i));

    }

    if (i%4 == 2) {

    C.add(list.get(i));

    }

    if (i%4 == 3) {

    D.add(list.get(i));

    }

    }

    }

    //主方法

    public static void main(String args[]){

    initCards(true);

    xiPai();

    faPai();

    System.out.print("小人A" + A + "\n");

    System.out.print("小人B" + B + "\n");

    System.out.print("小人C" + C + "\n");

    System.out.print("小人D" + D + "\n");

    }

    }

    下面是运行结果

    8b4c09aebc6a4dbde608672e3f7252bf.png

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • --------首先是扑克类的list集合, ----------------------------------------------------------package cardGame;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class ...

    --------首先是扑克牌类的list集合, ----------------------------------------------------------

    package cardGame;

    import java.util.ArrayList;

    import java.util.Collections;

    import java.util.List;

    public class ShuffleAllCards {

    public List cards;

    public ShuffleAllCards(){

    this.cards = new ArrayList();

    }

    /**

    * 生成所有52张牌

    * */

    public void CardsCreate(){

    System.out.println("-----------游戏开始!-----------");

    //通过遍历得到所有52张牌.

    String[] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

    String[] color = {"黑桃","红桃","梅花","方块"};

    for(int i=0;i

    for (int j = 0; j < color.length; j++) {

    //第一个是 黑桃A, 然后 红桃A,

    String OneCard = color[j]+number[i];

    //每一次都加到List里,list是有序的.

    cards.add(OneCard);

    }

    }

    if(cards.size() == 52){

    System.out.println("-----------生成扑克牌成功-------");

    }

    }

    /**

    * 打乱所有52张牌的顺序

    * */

    public void ShuffleCards(){

    System.out.println("-----------开始洗牌-----------");

    Collections.shuffle(cards);

    System.out.println(cards.size());  //-----------------------这里输出的是52,是对的--------------------

    System.out.println("-----------洗牌结束-----------");

    }

    }

    ---然后在游戏类里的发牌方法里调用上面的list集合,给玩家的手牌, 想先看看list的大小, 居然是0,但是在扑克牌类里是52呀...-------------

    package cardGame;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Scanner;

    public class LetUsPlay {

    Scanner console = new Scanner(System.in);

    //定义一个玩家List

    public List players;

    public LetUsPlay() {

    //初始化玩家List

    players = new ArrayList();

    }

    /**

    * 创建玩家方法

    * */

    public void CreatePlayers(){

    System.out.println("-----------登记玩家信息-----------");

    System.out.println("一共有几位玩家呢?");

    int playerCounter = console.nextInt();

    for(int i=0;i

    //确定一共有几个玩家

    System.out.println("请输入第"+(i+1)+"位玩家ID: ");

    int playerId = console.nextInt();

    System.out.println("请输入第"+(i+1)+"位玩家姓名: ");

    String playerName = console.next();

    Players player = new Players(playerId,playerName);

    players.add(player);

    }

    for (Players players : players) {

    System.out.println(players.name);

    }

    }

    /**

    * 为玩家发牌,之前扑克牌已经打乱顺序了

    * */

    public void GiveCards(){

    Players player = new Players();

    ShuffleAllCards giveCards = new ShuffleAllCards();

    System.out.println(giveCards.cards.size());  //-----------这里输出的list的size是0???应该是52呀??

    }

    }

    展开全文
  • JS实现纸牌发牌动画

    2021-08-04 04:45:16
    本文实例为大家分享了JS实现纸牌发牌动画的具体代码,供大家参考,具体内容如下先看演示 游戏构建准备1.准备52张纸牌2.一张桌布3.编辑工具为 Visual Code技术概要1.对象操作2.数据操作3.JS animation动画4.全局变量...

    本文实例为大家分享了JS实现纸牌发牌动画的具体代码,供大家参考,具体内容如下

    先看演示

    dbb238777689c8809c6d1511e96cc911.png

    fdddd82ee25bb9381bc3488c291e1772.png

    游戏构建准备

    1.准备52张纸牌

    2.一张桌布

    3.编辑工具为 Visual Code

    技术概要

    1.对象操作

    2.数据操作

    3.JS animation动画

    4.全局变量

    function desen_x(){

    let that = this;

    var desen=["h_1","h_2","h_3","h_4","h_5","h_6","h_7","h_8",

    "h_9","h_10","h_11","h_12","h_13","p_1","p_2","p_3","p_4"

    ,"p_5","p_6","p_7","p_8","p_9","p_10","p_11","p_12","p_13"

    ,"t_1","t_2","t_3","t_4","t_5","t_6","t_7","t_8","t_9","t_10"

    ,"t_11","t_12","t_13","x_1","x_2","x_3","x_4","x_5","x_6","x_7"

    ,"x_8","x_9","x_10","x_11","x_12","x_13"];

    //将你的扑克前戳名全部存储到数组中

    var Obj = new Object(); //新建一个对象

    var array=[];//空数组一个

    for(var i=0;i<4;i++){//游戏演示里只需要发4张扑克,所以只要<4

    var x=Math.round(Math.random()*52);//随机数取整*52

    Obj[i]=x;//存入到全局变量中 否则每次只能存一个数值

    }

    console.log(Obj);//打印对象看看是不是4个对象

    window.array=[desen[Obj[0]],desen[Obj[1]],desen[Obj[2]],desen[Obj[3]]];

    //将存好的数组 带入扑克全局

    }

    function send_poker(){ //该方法是发牌事件

    console.log(window.array);

    //测试你的全局变量是否正常

    //并且将传递的全局变量带入temp[]

    var temp=[window.array[0],window.array[1],window.array[2],window.array[3]];

    var ti=0;

    var iamges="../poker/"+temp+".png";//这是图片的默认路径 +你的 desen

    var creator=document.getElementById("d_back"); //取得操作的dom父元素

    var po_1=document.createElement("div");//虚拟生成div

    var num = 0; //初始化变量

    //po_1.src="../h_1.png";

    //img_1.scr="../images/poker/h_1.png";

    for(var i=0;i

    动画事件

    function move_poker(){ //移动扑克

    var node = document.getElementById("d_back").childNodes;//获取父元素下的所有子节点

    console.log(node);//打印出有多少

    var n5=node[9];//以要操作的 img对象类为 9开始操作

    var n6=node[10];

    var n7=node[11];

    var n8=node[12];

    var popo=anime({//animation动画可在最后查看

    targets: n5, //操作的对象

    translateX:-150, //移动到的横向位置

    translateY: -250,//移动到的纵向位置

    easing: 'easeInOutQuad',//缓动,不更改css机制

    duration:100,//完成时间

    });

    var popo1= anime({

    targets: n6,

    translateX:-100,

    translateY: -250,

    easing: 'easeInOutQuad',

    duration:200,

    });

    var popo2=anime({

    targets: n7,

    translateX:-50,

    translateY: -250,

    easing: 'easeInOutQuad',

    duration:300,

    });

    var popo3= anime({

    targets: n8,

    translateX:0,

    translateY: -250,

    easing: 'easeInOutQuad',

    duration:400,

    });

    }

    function gui(){ //GUI 是将所有节点复位,方便下次发牌

    var node = document.getElementById("d_back").childNodes;

    var n5=node[9];

    var n6=node[10];

    var n7=node[11];

    var n8=node[12];

    var popo4=anime({

    targets: [n5,n6,n7,n8],

    translateX:0,

    translateY: 0,

    })

    node.removeChild(popo4);

    }

    animation封装

    function setAnimationsProgress(insTime) { //该方法有多个dom时,则执行异或异步线程模式进行

    var i = 0;

    var animations = instance.animations;

    var animationsLength = animations.length;

    while (i < animationsLength) {

    var anim = animations[i];

    var animatable = anim.animatable;

    var tweens = anim.tweens;

    var tweenLength = tweens.length - 1;

    var tween = tweens[tweenLength];

    if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }

    var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;

    var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);

    var strings = tween.to.strings;

    var round = tween.round;

    var numbers = [];

    var toNumbersLength = tween.to.numbers.length;

    var progress = (void 0);

    for (var n = 0; n < toNumbersLength; n++) {

    var value = (void 0);

    var toNumber = tween.to.numbers[n];

    var fromNumber = tween.from.numbers[n] || 0;

    if (!tween.isPath) {

    value = fromNumber + (eased * (toNumber - fromNumber));

    } else {

    value = getPathProgress(tween.value, eased * toNumber);

    }

    if (round) {

    if (!(tween.isColor && n > 2)) {

    value = Math.round(value * round) / round;

    }

    }

    numbers.push(value);

    }

    var stringsLength = strings.length;

    if (!stringsLength) {

    progress = numbers[0];

    } else {

    progress = strings[0];

    for (var s = 0; s < stringsLength; s++) {

    var a = strings[s];

    var b = strings[s + 1];

    var n$1 = numbers[s];

    if (!isNaN(n$1)) {

    if (!b) {

    progress += n$1 + ' ';

    } else {

    progress += n$1 + b;

    }

    }

    }

    }

    setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);

    anim.currentValue = progress;

    i++;

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • java实现扑克牌发牌

    2021-02-13 01:14:17
    Java练习——扑克牌发牌器,供大家参考,具体内容如下声明:学习自其他博主,感谢分享实现思路构建一张扑克牌构建一套扑克牌测试构建一张扑克牌/*** @author 冬冬* 定义一个单张扑克牌类* 有花型,大小*/public ...
  • C语言自动发牌程序,供大家参考,具体内容如下一副扑克有52张牌,打桥牌时应将牌分给4个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方块用D (Diamonds)表示,梅花用...
  • java实现发牌小程序

    2021-02-25 19:27:31
    本文实例为大家分享了java实现发牌小程序的具体代码,供大家参考,具体内容如下关键字:掌握Java数组、方法的基本定义内容要求:编写程序,项目名和类名均为PokerGame。实现功能:(1) 共有m幅扑克牌,每幅扑克牌不...
  • 斗地主发牌Java课程设计

    千次阅读 多人点赞 2020-12-28 09:07:29
    课程设计斗地主发牌运行效果 斗地主发牌 Java课程设计 Player类 public class Player { // 玩家姓名 private String name1; private String name2; private String name3; //玩家积分 private int grade; //...
  • Java练习——扑克牌发牌器声明:学习自其他博主,感谢分享,这里自己也写了一下。实现思路- 构建一张扑克牌- 构建一套扑克牌- 测试构建一张扑克牌/***@author冬冬* 定义一个单张扑克牌类* 有花型,大小*/public ...
  • 模拟洗牌发牌游戏1.创建一副扑克牌包括四种花色 2-10 JQKA 不考虑大小王2.创建两名玩家玩家至少要有ID、姓名、手牌等属性、手牌为扑克牌的集合3.洗牌将之前创建的一副扑克牌 打乱顺序4.发牌将洗牌之后的扑克牌集合,...
  • 有一个card牌类和player玩家类,还有一个发牌类用于实现发牌方法。为了模拟每个玩家的牌都是随机的,我是这样想的:1)初始化方法:用于将54张牌存到一个数组里,每张牌都一个唯一的序号。2) 利用随机数,将每个...
  • usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;...//用C#模拟实现扑克牌发牌、随机排序程序。//(1)52张扑克牌,四种花色(红桃、黑桃、方块和梅花),...
  • 本节我们先来实现一下斗地主中的简单洗牌、发牌和看牌功能。按照斗地主的规则,完成洗牌发牌的动作。具体规则为使用 54 张牌打乱顺序,3 个玩家参与游戏,3 人交替摸牌,每人 17 张牌,后 3 张留作底牌。实现思路...
  • 今天闲着无聊,用基础的随机数,写一个简单的斗地主发牌,给需要用到的同学做一个参考。package com.linlx.Individual.service;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;...
  • 1. 题目编写程序, 4名牌手打牌,计算机随机将52张(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的。提示:设计出3个类:Card类、Hand类和Poke类。Card类代表一张,其中FaceNum字段指出是面数字1~13,Suit...
  • 我们知道再学习完数组之后,与之类似又比之精妙的集合出现了。其中附带了许多种方法方便了我们对其中的值和索引进行... 我们拿到一副之后需要进行洗,用collections中的shuffle方法即可实现洗效果。洗之后我...
  • C语言自动发牌程序,供大家参考,具体内容如下:一副扑克有52张牌,打桥牌时应将牌分给4个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方块用D (Diamonds)表示,梅花...
  • 新概念发牌
  • C语言实现随机纸牌

    2021-04-12 12:17:53
    为避免重复发牌,设二维数组sign[4][13]记载是否发过纸牌,其中行下表表示花色,列下标表示点数。设字符串指针数组card[n]存储随机发的n张纸牌,例如card[0] = “梅花2”, 按照以下方法以此发出每一张牌:首先产生一...
  • 案例: 模拟斗地主发牌 需求:使用一个集合对象存储一副扑克牌。将所有扑克牌的顺序打乱,然后分发给用集合表示的三个玩家和底牌,并打印玩家和底牌的集合内容 步骤:1.买一副扑克牌 ​ 将花色和数字分别进行组合,...
  • 3、3个人用一个二维数组来存放三人的。2、主要分为打散(乱序),分配,显示三个操作打散即洗:通过rand以及srand函数来获得,为了避免相同的序列,使用标准时间来作为序列种子。void shuffle(int *cards, int ...
  • 自动发牌

    2021-04-25 21:33:09
    # 姓名:东电小z # 开发时间:2021/4/25 15:33 class Card: # 类属性 shuzi = ['A', '2', '3', '4', '5', '6', '7,', '8', '9', '10',... # 初始方法 def __init__(self): self.cards = [] # 生成 def shengc.
  • 本文实例为大家分享了Java斗地主发牌的具体代码,供大家参考,具体内容如下Player类public class Player {// 玩家姓名private String name1;private String name2;private String name3;//玩家积分private int grade...
  • 实验目的编斗地主洗发牌的程序可以让我们了解随机数的生成,全局变量和指针的用法,熟悉线性表的基本操作,以及排序的基本思路和方法。2.实验方法本程序主要是利用全局变量来统筹整个程序,辅之的是指针变量。总共有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,089
精华内容 28,435
关键字:

发牌方法