斗地主发牌程序

//洗牌函数 shuffle() 接收一个数组

let shuffle = function(pokers){

for(let i=0;i<pokers.length;i++)

{

let random = parseInt(Math.floor(Math.random()*54));//随机生成54张牌的一个随机数

//两张牌进行交换

let temp = pokers[i];

pokers[i] = pokers[random];

pokers[random] = temp;

}

}

//对玩家的牌进行排序 sort()函数 接收一个数组

let sort = function(pokers){

pokers.sort(function(a,b){

if(a.pointValue == b.pointValue)

{

return a.typeValue - b.typeValue;

}

else{

return a.pointValue - b.pointValue;

}

});

}

//打印扑克牌的方法 printCard() 接收一个数组

let printCard = function(pokers){

let str = "";//该字符串用于拼接扑克牌信息

for(let i=0;i<pokers.length;i++)

{

//判断是否为最后一张牌,决定了是否加逗号(,)

if(i == pokers.length-1)

{

if(pokers[i].type)

{

str += pokers[i].type + pokers[i].point;

}

else{

str += pokers[i].point

}

}

else{

if(pokers[i].type)

{

str += pokers[i].type + pokers[i].point + ‘,‘;

}

else{

str += pokers[i].point + ‘,‘;

}

}

}

return str;

}

//发牌函数 send() 接收一个数组

let send = function(pokers){

let player1 = pokers.slice(0,17);//玩家1的牌

let player2 = pokers.slice(17,34);//玩家2的牌

let player3 = pokers.slice(34,51);//玩家3的牌

let other = pokers.slice(51);//底牌

//接下来对每个玩家的扑克牌进行排序

sort(player1);

sort(player2);

sort(player3);

sort(other);

//将每个玩家的扑克牌打印出来

console.log("玩家1的牌为:",printCard(player1));

console.log("玩家2的牌为:",printCard(player2));

console.log("玩家3的牌为:",printCard(player3));

console.log("底牌为:",printCard(other));

}

//主函数

let main = function(){

//组合扑克牌对象

let points = ["3","4","5","6","7","8","9","10","J","Q","K","A","2"];//扑克牌的点数

let types = ["黑桃","红桃","梅花","方块"];//扑克牌的花色

let pokers = [];//声明一个空数组用于存放生成的扑克牌

for(let i=0;i<points.length;i++)

{

for(let j=0;j<types.length;j++)

{

//对象的属性依次为: 点数值 花色值 显示的点数 显示的花色

pokers.push({pointValue:i,typeValue:j,point:points[i],type:types[j]});

}

}

//从3-K 点数值依次为 0-10点 A 11 2 12 小王 13 大王 14

pokers.push({pointValue:13,point:"小王"});

pokers.push({pointValue:14,point:"大王"});

shuffle(pokers);//洗牌函数,将pokers数组传入进行洗牌

send(pokers);//发牌函数,将pokers数组传入发牌函数

}

main();

原文地址:https://www.cnblogs.com/dbda/p/11407322.html

时间: 2024-08-03 03:43:55

斗地主发牌程序的相关文章

妞一个斗地主发牌程序!!!

学习java三个星期,利用所学的知识做了一个三人斗地主发牌程序,闲话少叙,上代码 1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.List; 4 5 /** 6 * 三人斗地主程序 功能:将一副牌随机分发给地主(20张牌),农民A(17张牌),农民B (17张牌) 7 * 步骤:1.洗牌阶段:将54张牌储存到ArraryList 容器中(批量储存,for循环) 8 * 2.发牌阶段:

集合练习 之 斗地主发牌

      >HashMap 的key底层数据结构是哈希表 >ArrayList 底层数据结构是数组,查询快,增删慢 >TreeSet  底层数据结构式红黑树(平衡二叉树),默认构造器采用自然排序(Integer已经实现了Comparable接口 ).     package cn.itcast.day18; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import

自己写的一部分斗地主的程序,没有去写界面,临时是用黑框来显示的

这几天比較空,所以想写一点东西. 斗地主的程序一直以来都想写,但感觉规则推断比較复杂,一直没有较多的时间来写. 这次主要是把跟牌和牌型的推断写出来了.写了一个比較弱智的AI,属于有牌就出的那种.对于AI算法,临时没有什么好的想法,所以打算临时放一放. 后期补上界面之后再进行优化. 在这就把基本的函数和算法列出来吧. 首先是主程序,主要控制显示和游戏的流程. #include <iostream> #include "PokerDesk.h" using namespace

第十章 数组与集合 发牌程序 实例代码

解决方案目录: Suit.cs四种花色 namespace Cards { enum Suit { Clubs, Diamonds, Hearts, Spades } } Value.cs扑克牌的13中面值 namespace Cards { enum Value { Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace } } Pack.cs发牌程序核心类 namespace Cards { u

Java--&gt;简单的斗地主发牌流程

package com.dragon.java.hwddz; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /*1. 写一个可以给斗地主三家随机发牌的程序. a:牌可以随机发给三个玩家 b:在控制台打印每个玩家的牌. c:对每个玩家手中的牌按照大写排序. ``` 牌的花色:"♠", "♥", "♣"

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;

一个有趣的基于C++的模拟发牌程序

在内存中模拟出一副牌,然后模拟洗牌,发牌等动作. 流程是这样的:构建一副牌保存到一个数组中—洗牌—创建玩家—向玩家发牌–输出每个玩家的牌. #include <stdio.h> #include <stdlib.h> #include <time.h> //定义扑克的花色 enum Suit{ heart, spade, diamond, club, joker1, joker2 }; //一副牌的数量 #define CARD_COUNT 54 //定义扑克 type

发牌程序(二)

package SendCardcopy; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Action; import javax.swing.JButton; import javax.swing.

发牌程序(一)

package SendCard; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; public class DealCard { public DealCard(int cardMax, int personNumber) { CardBuffer cardbuffer = new CardBuffer(personNumber)