iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >通过JavaScript实现扑克牌游戏的示例代码
  • 132
分享到

通过JavaScript实现扑克牌游戏的示例代码

2024-04-02 19:04:59 132人浏览 薄情痞子
摘要

首先,我们知道一副牌里有54张牌,然后牌里的数字是从 3 - 2 的里面总共有13张牌,然后 4 中花色 分别是 ♠️ ♥️ ♣️ &diam

首先,我们知道一副牌里有54张牌,然后牌里的数字是从 3 - 2 的里面总共有13张牌,然后 4 中花色 分别是 ♠️ ♥️ ♣️ ♦️ 另外加上2个大小王!第一步:我们肯定需要有一个数组来装牌吧? 然后再书写一个函数,我们知道有多少张牌,然后牌里有多少花色是不是应该用一个双重循环将 number 里面的内容 和 flower 里面的内容 进行一个循环嵌入?最后在用 push 生成一个对象放到数组的后面?再到最后放入 大小王 。

const number = ['3', '4', '5', '6', '7', '8', '9', '10', "J", "Q", "K", "A", '2'];
const flower = ["♠️", "♥️", "♣️", "♦️"]; // 黑桃 < 红心 < 梅花 < 方块

语法:

//系统牌
const number = ['3', '4', '5', '6', '7', '8', '9', '10', "J", "Q", "K", "A", '2'];
const flower = ["♠️", "♥️", "♣️", "♦️"]; // 黑桃 < 红心 < 梅花 < 方块
//牌组
let arr = [];

//生成牌的函数
poker();

//生成一副牌
function poker() {
    for (let n = 0; n < number.length; n++) {
        for (let j = 0; j < flower.length; j++) {
            arr.push({ name: flower[j] + number[n]})
        }
    }
    arr.push({ name: "小王" }, { name: "大王" })
}

输出效果图:

当我们已经拿到牌数组了,像平时我们打牌是不是都是随机发放手里的牌的?那我们在进行一个打乱。这时候我们需要用到一个随机生成的函数和一个去重生成下标的数组

语法:

//系统牌
const number = ['3', '4', '5', '6', '7', '8', '9', '10', "J", "Q", "K", "A", '2'];
const flower = ["♠️", "♥️", "♣️", "♦️"]; // 黑桃 < 红心 < 梅花 < 方块
//牌组
let arr = [];

//生成牌的函数
poker();

//打乱后的拆开后的牌组
let [zhangsan, wangwu, lisi, d] = create();

//打印输出
console.log(zhangsan);
console.log(wangwu);
console.log(lisi);
console.log(d);

//生成一副牌
function poker() {
    for (let n = 0; n < number.length; n++) {
        for (let j = 0; j < flower.length; j++) {
            arr.push({ name: flower[j] + number[n]})
        }
    }
    arr.push({ name: "小王" }, { name: "大王" })
}

//生成一个随机数
function random(min, max) {
    if (max == undefined) {
        max = min;
        min = 0;
    }
    if (min > max) {
        [min, max] = [max, min];
    }
    let number = parseInt(Math.random() * (max - min + 1) + min)
    return number;
}

//打乱
function create() {
    let a = new Set();
    while (a.size < 54) {
        a.add(random(0, 53));
    }
    let arrindex = [...a];
    arr = arrindex.map(item => arr[item]);
    let zhangsan = arr.slice(0, 17);
    let wangwu = arr.slice(17, 34);
    let lisi = arr.slice(34, 51);
    let d = arr.slice(51);
    return [zhangsan, wangwu, lisi, d];
}

详解:当我们知道需要发牌的时候是随机生成的字牌,然后我们已经知道有54张牌,然后需要不重复的下标需要用到 Set 来晒重,数组的长度是 54 但是下标是 53 所以在生成随机数的时候需要主要辨别。然后需要用到 map map的用意:通过指定函数处理数组(遍历数组)的每个元素,并操作数组的元素或者下标,并返回处理后的数组。 当我们已经得到下标了是不是需要将 arr 里面的元素进行找到,然后并将进行返回出来,然后再使用 slice slice的用意:用于把数组中的字符串元素转换成数字数组,元素是通过指定的分隔符进行分隔的。进行一个返回接收 我们知道 zhangsan、wangwu、lisi 是有 17 张牌的 而底牌只有三张可以得到手牌。并将函数里面的内容返回出去进行一个接收输出。

输出效果图:

在到最后我们需要一个排序。当 3 和 3 比肯定是没有办法比的是不是?我们在最开始拿到牌组的内容的时候就定义了 黑桃 < 红心 < 梅花 < 方块 这时候我们需要对 牌的 内容 和 数字 进行一个大小对对象的添加。然后再书写一个函数进行一个排序。排序需要用到 sort sort的用意:对数组的元素进行排序,不是真实按照数字排列去排序的,按照字符进行一个比较。当需要比较数字需要重写。例如sort((a,b)=> a-b)升序 sort((a,b)=> b-a) 降序! 在生成牌组里面需要添加 花色的大小 和 数字 的大小 ,最后进行一些列的优化代码如下:

语法:

const number = ['3', '4', '5', '6', '7', '8', '9', '10', "J", "Q", "K", "A", '2'];
const flower = ["♠️", "♥️", "♣️", "♦️"]; // 黑桃 < 红心 < 梅花 < 方块

let arr = [];

poker();

let [zhangsan, wangwu, lisi, d] = create();


sort(zhangsan);
sort(wangwu);
sort(lisi);
sort(d);

console.log("张三:",zhangsan);
console.log("王五:",wangwu);
console.log("王五:",lisi);
console.log("底牌:",d);

//排序
function sort(arr) {
    arr.sort((a,b)=>{if (a.number == b.number) {
        return a.flower - b.flower;
    }else{
        return a.number - b.number;
    }})
    
}
//生成一个随机数
function random(min, max) {
    if (max == undefined) {
        max = min;
        min = 0;
    }
    if (min > max) {
        [min, max] = [max, min];
    }
    let number = parseInt(Math.random() * (max - min + 1) + min)
    return number;
}

//打乱
function create() {
    let a = new Set();
    while (a.size < 54) {
        a.add(random(0, 53));
    }
    let arrindex = [...a];
    arr = arrindex.map(item => arr[item]);
    let zhangsan = arr.slice(0, 17);
    let wangwu = arr.slice(17, 34);
    let lisi = arr.slice(34, 51);
    let d = arr.slice(51);
    return [zhangsan, wangwu, lisi, d];
}

//生成一副牌
function poker() {
    for (let n = 0; n < number.length; n++) {
        for (let j = 0; j < flower.length; j++) {
            arr.push({ name: flower[j] + number[n],flower:j,number:n})
        }
    }
    arr.push({ name: "小王" ,number:53}, { name: "大王" ,number:54})
}

以上就是通过javascript实现扑克牌游戏的示例代码的详细内容,更多关于JavaScript扑克牌游戏的资料请关注编程网其它相关文章!

--结束END--

本文标题: 通过JavaScript实现扑克牌游戏的示例代码

本文链接: https://www.lsjlt.com/news/154304.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 通过JavaScript实现扑克牌游戏的示例代码
    首先,我们知道一副牌里有54张牌,然后牌里的数字是从 3 - 2 的里面总共有13张牌,然后 4 中花色 分别是 ♠️ ♥️ ♣️ &diam...
    99+
    2024-04-02
  • Java实现扑克牌游戏的示例代码
    目录一、三人扑克二、具体实现Card类生成52张牌打乱顺序发牌三、完整代码一、三人扑克 想不想带上好朋友来上一局三人扑克呢。 二、具体实现 Card类 定义一个花色color变量和...
    99+
    2024-04-02
  • 怎么通过JavaScript实现扑克牌游戏
    本篇内容介绍了“怎么通过JavaScript实现扑克牌游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,我们知道一副牌里有54张牌,然...
    99+
    2023-07-02
  • Python扑克牌21点游戏实例代码
    废话还是说太多了 直接上代码 import random import sys # 牌面列表 card_code = ['A', '2', '3', '4', '5', '6'...
    99+
    2024-04-02
  • C语言扑克牌游戏示例
    目录一、 设计目的二、 设计内容与要求三、 设计思路四、 实现过程五、 结论与改进一、 设计目的 扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则。我之所以选择的这个...
    99+
    2024-04-02
  • Java使用ArrayList实现扑克牌的示例代码
    目录前言一、项目要求二、具体实现2.1 Card类2.2 生成扑克牌2.3 打乱顺序2.4 发牌三、Test.java前言 学习了关于集合类的知识,我们可以做一个小项目来加深对集合类...
    99+
    2024-04-02
  • Java实现简易扑克牌游戏的完整实例
    功能描述 1、创建扑克牌。包括四种花色(黑桃,红心,梅花,方块),十三种点数(2-10,J,Q,K),不考虑大小王。 2、创建两个玩家。包括玩家id、姓名、手牌等集合,手牌为扑克牌的...
    99+
    2024-04-02
  • Java模拟实现扑克牌洗牌和发牌的示例代码
    目录一. 需求二. 全局代码poker.javapokers.java三. 设计分析1. 设计一张扑克牌2. 得到一副新牌3. 洗牌4. 发牌一. 需求 设计一副新的的扑克牌, 4个...
    99+
    2024-04-02
  • Python如何实现扑克牌21点游戏
    这篇文章主要介绍Python如何实现扑克牌21点游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!直接上代码import randomimport sys# 牌面列表card_code&...
    99+
    2023-06-22
  • C语言如何实现扑克牌游戏
    这篇文章主要介绍C语言如何实现扑克牌游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 设计目的扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则。我之所以选择的这个扑克牌,是因为我觉得可以提高我的...
    99+
    2023-06-22
  • Java实现简易扑克牌游戏的完整步骤
    本篇内容主要讲解“Java实现简易扑克牌游戏的完整步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现简易扑克牌游戏的完整步骤”吧!Java的特点有哪些Java的特点有哪些1.Java...
    99+
    2023-06-14
  • 通过Python实现猜灯谜游戏的示例代码
    目录导语猜灯谜界面程序讲解构造初始界面构造灯谜类对象监控鼠标事件源码导语 新的一年迎来了元宵节,元宵佳节在陪伴家人的同时,自然也少不了赏花灯,猜灯谜的项目。当然,受到疫情的影响,许多...
    99+
    2024-04-02
  • JAVA实现经典游戏坦克大战的示例代码
    目录前言主要设计功能截图代码实现总结前言 小时候大家都玩过坦克大战吧,熟悉的旋律和丰富的关卡陪伴了我们一整个寒暑假,还记得传说中的经典坦克大战 吗?那些怀旧的记忆,伴随着我们一起走过...
    99+
    2024-04-02
  • JavaScript实现中秋博饼游戏的示例代码
    目录1、什么是中秋节(中秋博饼)2、游戏玩法2.1 道具2.2 流程2.3 规则3.中秋博饼H5设计(直接进入)3.1介绍3.2点击开始博饼 4.导入程序自己diy5. 代...
    99+
    2024-04-02
  • Python实现小游戏的源代码示例
    这篇文章将为大家详细讲解有关Python实现小游戏的源代码示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、21点数字小游戏展示:首先配置文件的源码:'''配置文件'&...
    99+
    2023-06-14
  • Java实现经典游戏打砖块游戏的示例代码
    目录前言主要设计功能截图代码实现游戏核心类小球类砖块类总结前言 《JAVA打砖块》游戏是自制的游戏。玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的&l...
    99+
    2024-04-02
  • Java实现拓扑排序的示例代码
    目录铺垫简介工作过程数据结构拓扑排序测试样例1测试样例2总结铺垫 有向图:我们这节要讲的算法涉及到有向图,所以我先把有向图的一些概念说一下,文章后面就不做解释啦。首先有向图节点与节点...
    99+
    2024-04-02
  • C/C++实现精灵游戏的示例代码
    目录前言创建win32项目游戏效果核心代码前言 采用面向过程的遍程思想,通过acllib图形库来实现。 acllib下载地址:acllib tom,jerry,dog,heart以及...
    99+
    2024-04-02
  • Python实现炸金花游戏的示例代码
    今天的第二个作品,哈哈哈哈,搞起来感觉还挺有意思的,不过代码里纸牌J,Q,K,A几个数字被我替换成了11,12,13,14......主要是没有想到简单的办法让其比较,索性都用数字了...
    99+
    2024-04-02
  • Java实现贪吃蛇游戏的示例代码
    目录项目演示项目实战1. 游戏的主启动类2. 游戏的面板3. 数据中心4. 绘制静态面板5. 绘制静态小蛇6. 绘制动态小蛇7. 设置游戏状态8. 让蛇动起来9. 绘制食物布局10....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作