微信小程序斗地主完整代码及步骤

这篇具有很好参考价值的文章主要介绍了微信小程序斗地主完整代码及步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



一、准备工作

1. 安装微信开发者工具,并登录微信小程序账号;

2. 准备斗地主游戏的图片资源;

3. 准备斗地主游戏的音效资源;

二、创建小程序

1. 打开微信开发者工具,点击“新建小程序”,输入小程序名称,选择小程序的项目目录,点击“创建”;

2. 在小程序的项目目录中,新建文件夹“images”,将准备好的斗地主游戏的图片资源放入“images”文件夹中;

3. 在小程序的项目目录中,新建文件夹“sounds”,将准备好的斗地主游戏的音效资源放入“sounds”文件夹中;

三、编写代码

1. 在小程序的项目目录中,新建文件“game.js”,编写斗地主游戏的逻辑代码;

// game.js

// 定义游戏状态
const GAME_STATE = {
WAITING: 0, // 等待状态
PLAYING: 1, // 游戏中状态
END: 2 // 游戏结束状态
};

// 定义游戏类
class Game {
constructor() {
this.state = GAME_STATE.WAITING; // 初始化游戏状态
this.players = []; // 玩家列表
this.cards = []; // 扑克牌
this.landlordCards = []; // 地主牌
}

// 开始游戏
start() {
// 初始化游戏状态
this.state = GAME_STATE.PLAYING;
// 初始化玩家
this.players = [
new Player('张三'),
new Player('李四'),
new Player('王五')
];
// 初始化扑克牌
this.cards = this.initCards();
// 发牌
this.dealCards();
// 叫地主
this.callLandlord();
// 发地主牌
this.dealLandlordCards();
// 开始游戏
this.play();
}

// 初始化扑克牌
initCards() {
let cards = [];
// 生成54张扑克牌
for (let i = 0; i < 54; i++) {
cards.push(new Card(i));
}
// 打乱牌顺序
cards.sort(() => Math.random() - 0.5);
return cards;
}

// 发牌
dealCards() {
// 每人发17张牌
for (let i = 0; i < 17; i++) {
for (let j = 0; j < 3; j++) {
this.players[j].cards.push(this.cards.pop());
}
}
}

// 叫地主
callLandlord() {
// 玩家叫地主
for (let i = 0; i < 3; i++) {
let player = this.players[i];
let isCall = player.callLandlord();
if (isCall) {
// 叫地主成功,设置地主
this.landlord = player;
break;
}
}
}

// 发地主牌
dealLandlordCards() {
// 将剩余的牌发给地主
this.landlord.cards = this.landlord.cards.concat(this.cards);
// 将地主牌排序
this.landlord.cards.sort((a, b) => a.value - b.value);
// 记录地主牌
this.landlordCards = this.landlord.cards;
}

// 开始游戏
play() {
// 玩家出牌
for (let i = 0; i < 3; i++) {
let player = this.players[i];
let card = player.play();
console.log(`${player.name}出牌:${card.name}`);
}
// 游戏结束
this.state = GAME_STATE.END;
}
}

// 定义玩家类
class Player {
constructor(name) {
this.name = name; // 玩家名称
this.cards = []; // 玩家手牌
}

// 叫地主
callLandlord() {
// 随机叫地主
let isCall = Math.random() > 0.5;
console.log(`${this.name}${isCall ? '叫' : '不叫'}地主`);
return isCall;
}

// 出牌
play() {
// 随机出牌
let card = this.cards[Math.floor(Math.random() * this.cards.length)];
// 从手牌中移除出的牌
this.cards.splice(this.cards.indexOf(card), 1);
return card;
}
}

// 定义扑克牌类
class Card {
constructor(id) {
this.id = id; // 牌的id
this.name = this.getNameById(id); // 牌的名称
this.value = this.getValueById(id); // 牌的大小
}

// 根据id获取牌的名称
getNameById(id) {
let type = Math.floor(id / 13);
let number = id %!;(MISSING)
let types = ['黑桃', '红桃', '梅花', '方块'];
let numbers = ['A', '2', '3', '4','5', '6', '7','8', '9', '10','J', 'Q', 'K']文章来源地址https://www.toymoban.com/news/detail-441729.html

到了这里,关于微信小程序斗地主完整代码及步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 逆向破解学习-单机斗地主

    9000 是成功的代码 ` import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; public class HookComJuneGameDouDiZhu extends HookImpl{ @Override public String packageName() { return “com.june.game.doudizhu”; } } `

    2024年02月13日
    浏览(42)
  • 【Java】Java基础 使用集合实现斗地主分牌

       📝个人主页:哈__ 期待您的关注  今天使用集合TreeSet来实现一个斗地主的分牌流程。 TreeSet集合的一个特点就是 元素有序,这样就方便我们分的牌自动排序。 我们到时候分的牌都存储在这里,但你可能会有疑问,因为存储的泛型是Integer,但扑克牌是有花色的,这该如何

    2024年04月27日
    浏览(29)
  • AI 全自动玩斗地主,靠谱吗?Douzero算法教程

    你觉得,AI 全自动玩斗地主,胜率能有多高? 真就有100%胜率,实现欢乐豆自由? 我让这个 AI 自己玩了一小时,结果出乎意料。 先不着急说最终结果,我们先来看看这个 AI 有多强。 Ai斗地主,就是通过 AI 算法分析游戏画面,获取玩家角色、手牌等信息。 完全自主决策这把

    2024年02月08日
    浏览(34)
  • 使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

    你好! 欢迎阅读我的文章,本章将介绍,如何使用yolov5和强化学习训练一个AI斗地主,本项目将分为三个部分,其中包含(yolov5目标检测,pyqt5页面搭建,强化学习训练出牌)。为什么会做这个项目呢,主要是出于作者本人感兴趣,我也喜欢打牌,即使这个项目可能在多数项

    2024年02月11日
    浏览(41)
  • 用python写一个有AI的斗地主游戏(一)——开始前的准备

    源码请看我的Github页面。 这是我一个课程的学术项目,请不要抄袭,引用时请注明出处。 本专栏系列旨在帮助小白从零开始开发一个项目,同时分享自己写代码时的感想。 请大佬们为我的拙见留情,有不规范之处烦请多多包涵! 不知道有多少喜欢计算机相关学科的人,一开

    2024年02月07日
    浏览(27)
  • 第12章_集合框架拓展练习(ArrayList,HashSet,TreeSet,HashMap,斗地主,省市联动)

    1、随机验证码 随机验证码。 随机生成十组六位字符组成的验证码。 验证码由大小写字母、数字字符组成。 代码实现,效果如图所示: 开发提示: 使用字符数组保存原始字符,利用Random类生成随机索引。 将十组验证码放到集合中 用Iterator迭代器遍历集合 2、学生信息录入

    2024年01月17日
    浏览(36)
  • 【华为OD机试 2023 B卷 | 100分】斗地主之顺子(C++ Java JavaScript Python)

    华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷)。 你收到的链接上面会标注A卷还是B卷。请注意:根据反馈,目前大部分收到的都是B卷。但是仍有概率抽到A卷。 A卷对应2023的新题库(2022Q4 2

    2024年02月08日
    浏览(29)
  • uniapp开发的微信小程序如何上传至微信小程序平台-完整简单步骤

    这个id请登录微信小程序号   设置中查看 成功上传。 message:Error: 系统错误,错误码:80051,source size 3743KB exceed max limit 2MB  如果这样报错可以尝试分包或者减至2M以内。 分包方法参考此博文 uniapp如何分包 分包配置后无法读取static文件夹_谨言不言的博客-CSDN博客_uniapp 分包

    2024年02月16日
    浏览(52)
  • 微信小程序实战项目开发(天气预报项目实战):内涵开发说明文档、需求文档 && 手把手分步骤教你写出自己的小程序项目 && 天气预报小程序 && 时实请求获取天气 && 自定义功能 && 完整的源代码

    微信小程序开发实现天气预报 需求分析 静态页面设计 :要求界面美观 → 在wxss代码文件中对 wxml代码文件进行合理布局和美化,舒适的交互效果. 功能逻辑完善 :能够使用到 wx.request 请求接口实现天气预报查询的功能 主要使用到的技术栈如下: wxml:中使用了 picker 组件标签

    2024年02月02日
    浏览(46)
  • 微信小程序大转盘完整代码

    微信小程序大转盘完整代码 谢谢,代码简洁明了,生活不易忘多多支持,祝你前程似锦。 咨询问题,回复,“笔者”获取联系方式

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包