返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript实现中秋博饼游戏的示例代码
  • 492
分享到

JavaScript实现中秋博饼游戏的示例代码

2024-04-02 19:04:59 492人浏览 安东尼
摘要

目录1、什么是中秋节(中秋博饼)2、游戏玩法2.1 道具2.2 流程2.3 规则3.中秋博饼H5设计(直接进入)3.1介绍3.2点击开始博饼 4.导入程序自己diy5. 代

1、什么是中秋节(中秋博饼)

中秋节的最大特征是将人与自然和谐的美好愿望寄托在天上,八月中正当农业丰收的季节,月饼和瓜果既是敬神的供品,也是丰收的具体象征。花好月圆之夜户户团聚,加强了亲情关系,中秋节亦因此而成为社会和谐的重要媒介。

中秋博饼习俗源于福建厦门,盛行于漳州的龙海、泉州的安海和金门县等地,清代康乾时期的《台湾府志》曾有过相关记载。每逢中秋佳节,闽南及台湾地区会以家庭或社团为单位,自发举行中秋博饼活动,参加者以六个骰子轮流投掷,博取状元、榜眼、探花、进士、举人、秀才六个等第并按等第获取大小不同的月饼。博饼的游戏规则简单公平,既充满竞争悬念,又富于生活情趣,历来为广大民众所喜爱。

2、游戏玩法

2.1 道具

大的瓷碗一个,类似盛汤那种大碗。其次是六个骰子,多一个少一个都不行。

2.2 流程

每个人按人数围成一桌,一般博饼都会有聚餐,每一桌大概10人左右。然后围成圈,将瓷碗放置在桌子中间。然后每人依次把6个骰子投进大碗里,博到什么就领取什么奖品,如果没有博到任何奖品也需要将骰子交付给下一位成员,然后由下一位成员继续投骰子,根据骰子的点数得获取奖品,直至所有的奖品全部博完为止。

2.3 规则

根据科举制度来划分等级,由高到低。

六抔红:六个4====>所有的饼全归投者所有。

六抔黑:六个其他数字。

状元插金花:四个4+两个1。

五子登科:五个相同的数。

状元:四个4带其他两个任意数。

对堂:摇出顺子,比如123456

四进:除了4以外的四个相同的数,比如666611

三红:三个4

二举:两个4

一秀:一个4

3.中秋博饼H5设计(直接进入)

中秋博饼H5

3.1介绍

3.2点击开始博饼 

4.导入程序自己diy

程序链接:

中秋博饼H5代码

提取码:d47f

启动开发

$ cd mid-autumn
$ npm install
$ npm start

编译打包

$ npm run build

抽出通用的博饼逻辑

返回博饼结果

提前设置结果

判断奖项

5. 代码实现

5.1 indexjs

import { MidAutumn } from './common';
import './style/main.less';
 
import $ from "Jquery";
 
 
 
class Game {
    result = [];
    position = [];
 
    midAutumn = new MidAutumn();
 
    start() {
        this.result = this.midAutumn.start();
        // this.result = this.midAutumn.setResult([4, 4, 4, 4, 1, 1]).getResult();
        console.log(this.midAutumn.getAward());
        this.setDice();
    }
 
    getPosition() {
        let position = []
        this.position = [1, 2, 3, 4, 5, 6, 7];
        for (let i = 0; i < 6; i++) {
            position.push(this.position.splice(Math.floor(Math.random() * this.position.length), 1)[0])
        }
        return position;
    }
 
    setDice() {
        $("#bowl").removeClass('active');
        const position = this.getPosition();
        $.each($("#bowl .dice"), (index, item) => {
            $(item).removeClass();
            $(item).addClass(`sprite dice dice${this.result[index]} dice-position${position[index]}`)
        })
        setTimeout(() => {
            $("#bowl").addClass('active');
        }, 200)
    }
}
 
$(() => {
    const game = new Game();
    $("#startGame").click(() => {
        game.start();
    })
});

5.2 mid-autumn.js代码逻辑

export default class MidAutumn {
 
    constructor(config = {}) {
        this.config = config;
    }
 
    result = [];
    awardList = [];
 
    // '000600' 六勃红
    // '600000' 遍地锦
    // '060000' '006000' '000060' '000006' 六勃黑
    // '111111' 对堂
    // '100500' '010500' '001500' '000510' '000501' 五红
    // '5xxxxx' 'x5xxxx' 'xx5xxx' 'xxxx5x' 'xxxxx5' 五子登科
    // '200400' 状元插金花
    // 'xxx4xx' 状元
    // '4xxxxx' 'x4xxxx' 'xx4xxx' 'xxxx4x' 'xxxxx4' 四进
    // 'xxx3xx' 三红
    // 'xxx2xx' 二举
    // 'xxx1xx' 一秀
    rule = [{
        reg: /000600/,
        name: '六勃红'
    }, {
        reg: /600000/,
        name: '遍地锦'
    }, {
        reg: /6/,
        name: '六勃黑'
    }, {
        reg: /111111/,
        name: '对堂'
    }, {
        reg: /^\d{3}5\d{2}$/,
        name: '五红'
    }, {
        reg: /5/,
        name: '五子登科'
    }, {
        reg: /200400/,
        name: '状元插金花'
    }, {
        reg: /^\d{3}4\d{2}$/,
        name: '状元'
    }, {
        reg: /4/,
        name: '四进'
    }, {
        reg: /^\d{3}3\d{2}$/,
        name: '三红'
    }, {
        reg: /^\d{3}2\d{2}$/,
        name: '二举'
    }, {
        reg: /\d{3}1\d{2}$/,
        name: '一秀'
    }]
 
    _change() {
        const { onChange } = this.config;
        typeof onChange === 'function' && onChange(this.result);
    }
 
    // 开始博饼
    start() {
        return this.getPoint();
    }
 
    // 获取随机的6个点数
    getPoint() {
        this.result.length = 0;
        for (let i = 0; i < 6; i++) {
            this.result.push(Math.floor(Math.random() * 6) + 1)
        }
        this._change();
        return this.result;
    }
 
    // 通过传入特定的6个色子设置结果的点数
    setResult(result) {
        if (!(result instanceof Array) || result.length !== 6) {
            throw new Error('设置的结果必须是一个数字数组,并且每个数字在1到6之间');
        }
        this.result = result;
        this._change();
        return this;
    }
 
    getResult() {
        return this.result;
    }
 
    // 统计结果,将不同的点数统计在对应的位置上
    // [1点, 2点, 3点, 4点, 5点, 6点]
    _countResult() {
        this.award = [0, 0, 0, 0, 0, 0];
        this.result.forEach(item => {
            this.award[item - 1]++;
        });
        return this;
    }
 
    // 判断结果是什么奖项
    getAward() {
        this._countResult();
        const awardString = this.award.join('');
        console.log(awardString);
        if (this.rule && this.rule.length) {
            for (let i = 0; i < this.rule.length; i++) {
                if (this.rule[i].reg.test(awardString)) {
                    return {
                        name: this.rule[i].name,
                    }
                }
            }
            return {
                name: '未中奖',
            }
        }
    }
}

到此这篇关于javascript实现中秋博饼游戏的示例代码的文章就介绍到这了,更多相关JavaScript中秋博饼内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaScript实现中秋博饼游戏的示例代码

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

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

猜你喜欢
  • JavaScript实现中秋博饼游戏的示例代码
    目录1、什么是中秋节(中秋博饼)2、游戏玩法2.1 道具2.2 流程2.3 规则3.中秋博饼H5设计(直接进入)3.1介绍3.2点击开始博饼 4.导入程序自己diy5. 代...
    99+
    2024-04-02
  • Java实现接月饼小游戏的示例代码
    目录前言主要设计功能截图代码实现游戏启动类核心类画面绘制总结前言 《接月饼小游戏》是一个基于java的自制游戏,不要被月亮砸到,尽可能地多接月饼。 此小项目可用来巩固JAVA基础语法...
    99+
    2024-04-02
  • 通过JavaScript实现扑克牌游戏的示例代码
    首先,我们知道一副牌里有54张牌,然后牌里的数字是从 3 - 2 的里面总共有13张牌,然后 4 中花色 分别是 ♠️ ♥️ ♣️ &diam...
    99+
    2024-04-02
  • Python实现小游戏的源代码示例
    这篇文章将为大家详细讲解有关Python实现小游戏的源代码示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、21点数字小游戏展示:首先配置文件的源码:'''配置文件'&...
    99+
    2023-06-14
  • Java实现经典游戏打砖块游戏的示例代码
    目录前言主要设计功能截图代码实现游戏核心类小球类砖块类总结前言 《JAVA打砖块》游戏是自制的游戏。玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的&l...
    99+
    2024-04-02
  • Java实现经典游戏2048的示例代码
    目录前言主要设计功能截图代码实现界面布局类业务逻辑类总结前言 2014年Gabriele Cirulli利用周末的时间写2048这个游戏的程序,仅仅只是好玩而已。他想用一种不同的视觉...
    99+
    2024-04-02
  • Java实现经典游戏FlappyBird的示例代码
    目录前言主要设计功能截图代码实现游戏启动类核心类工具类总结前言 《布谷鸟闯关-简单版》是一个基于java的布谷鸟闯关游戏,摁上键控制鸟的位置穿过管道间的缝隙,需要做碰撞检测,监听键盘...
    99+
    2024-04-02
  • HTML+JS实现猜拳游戏的示例代码
    目录效果图关于JS构建过程添加事件监听器函数 gameRules()函数 whoWon()效果图 游戏可以通过这个链接进入 关于JS构建过程 首先,我创建了一个对象,其中包含每种可...
    99+
    2024-04-02
  • Python实现21点小游戏的示例代码
    目录游戏玩法代码 - v1测试代码 - v2测试游戏玩法 游戏玩法: 该游戏由 2 到 6 个人玩,使用除大小王之外的 52 张牌, 游戏者的目标是使手中的牌的点数之和不超过 21 ...
    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
  • Java实现warcraft java版游戏的示例代码
    目录前言主要需求功能截图代码实现启动入口ModelAttacker类ModelUnit类总结前言 致敬经典的warcraft,《warcraft java版》是一款即时战略题材单机游...
    99+
    2024-04-02
  • Java实现扑克牌游戏的示例代码
    目录一、三人扑克二、具体实现Card类生成52张牌打乱顺序发牌三、完整代码一、三人扑克 想不想带上好朋友来上一局三人扑克呢。 二、具体实现 Card类 定义一个花色color变量和...
    99+
    2024-04-02
  • 聊聊怎么用javascript实现连连看游戏(代码示例)
    连连看游戏是一款非常受欢迎的益智游戏,它不仅能培养人们的思维能力,还能增强集中注意力和反应能力。在这篇文章中,我们将带领读者了解如何使用JavaScript语言来实现连连看游戏。首先,要实现这个游戏,我们需要明确它的基本功能,即点击两个相同...
    99+
    2023-05-14
  • VUE实现一个Flappy Bird游戏的示例代码
    Flappy Bird是一个非常简单的小游戏,在app上大家都玩过。这里就用VUE来实现一个简单的PC版Flappy Bird,娱乐一下~~~~~ 要实现这个游戏,首先来分析一下游戏...
    99+
    2024-04-02
  • Java实现萝卜勇者游戏的示例代码
    目录前言主要设计功能截图代码实现启动类键盘监听核心算法总结前言 《萝卜勇者》是由国内玩家自制的一款独立游戏,玩家扮演萝卜勇士闯关,打败各种邪恶的敌人,获得最后的胜利。 《萝卜勇者》游...
    99+
    2024-04-02
  • Java+Swing实现五子棋游戏的示例代码
    目录一、系统介绍1.开发环境2.技术选型3.系统功能二、系统展示三、部分代码AI.javaChess.javaGobang.javaGobangListener.java一、系统介绍...
    99+
    2024-04-02
  • Java实现角色扮演游戏的示例代码
    目录前言主要设计功能截图代码实现游戏启动类抽象类:游戏角色类魔法行为接口总结前言 《模式策略的角色扮演游戏》游戏是自制的角色扮演游戏。选择两个角色,然后进行PK,可用来学习JAVA的...
    99+
    2024-04-02
  • Java实现英文猜词游戏的示例代码
    目录前言主要设计功能截图代码实现游戏启动类处理单词判断总结前言 《英文猜词游戏》代码行数没有超过200行,是之前为了背英语单词,特意研发的小游戏。 主要设计 1.事先准备单词文本。 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作