vue3 斗兽棋游戏
创始人
2024-04-12 03:40:07
0

     近来掘金举办前端比赛,所以写了一个小游戏参加,而且熟悉一下vue3,写了一下游戏,思来想去就写了一个斗兽棋游戏。

        欢迎去给我加油      点赞评论收藏  ,试玩地址  游戏地址 童年斗兽棋 - 码上掘金

https://code.juejin.cn/pen/7168678657873969160  进入有点击右上方  ‘运行’

   

下面写一下思路

                   斗兽棋上下各八个棋子,一个16位置的格子,本来用一个数组写出来,后来想起需要空位,还有棋子跳转路径规则,所以设置了以下结构

dataList: [{index: 0,//当前位置ruleval: [1, 4],//规则carStutas: false,//当前位有牌}, {index: 1,ruleval: [0, 2, 5],carStutas: false,//当前位有牌},

然后设置每个棋子信息

{'id': i,   //每个id'Ranking': i, //棋子的权重'url': "http://www.jmyuyu.cn/demo/img/b" + i + ".png",//棋子图片'rote': false,//是否已经翻牌'Belonging': 'blue',//所属蓝方'colorStutas': false,//显示选中的图标}

然后设置图片 图片为两张图片 第一张为背面 第二张为棋牌

最重要的是css 点击后两张翻转180度   第一张用到了一个 backface-visibility: hidden;,,此为翻转后消失的css.注意背面的棋牌需要先翻转180,这样转过来正好是正面。

然后翻牌

// 判断翻牌
const flop = (item) => {if (infor.farstValue == 0) {infor.manStutas = item.brandInfor.Belonginginfor.farstValue++infor.flopStutas = infor.manStutas}infor.dataList.forEach(element => {if (element.brandInfor && element.brandInfor.id == item.brandInfor.id) {element.brandInfor.rote = trueinfor.clickValue = 0}});infor.flopStutas = infor.flopStutas == 'red' ? 'blue' : 'red'hoverStutas(infor.flopStutas)
}

吃牌  实际就是新老两个数组调换一下

//吃牌
const eatBrand = (oldValue, newValue, valstu) => {let oldValues = JSON.stringify(oldValue)let newValues = JSON.stringify(newValue)infor.dataList.forEach(element => {if (newValue.index == element.index) {if (element.brandInfor.Belonging == 'red') {infor.redList.push(JSON.parse(newValues))}if (element.brandInfor.Belonging == 'blue') {infor.blueList.push(JSON.parse(newValues))}element.brandInfor = oldValue.brandInforelement.carStutas = true// 平子if (valstu) {element.brandInfor = {}element.carStutas = falseif (JSON.parse(oldValues).brandInfor.Belonging == 'red') {infor.redList.push(JSON.parse(oldValues))}if (JSON.parse(oldValues).brandInfor.Belonging == 'blue') {infor.blueList.push(JSON.parse(oldValues))}}}});infor.dataList[oldValue.index].brandInfor = {}infor.dataList[oldValue.index].carStutas = falseinfor.oldValue = falseinfor.flopStutas = infor.flopStutas == 'red' ? 'blue' : 'red'hoverStutas(infor.flopStutas)if (infor.redList.length == 8) {if (infor.blueList.length == 8) {infor.victoryMan = '平局!'} else {infor.victoryMan = '蓝方胜利!'}infor.victory = true}if (infor.blueList.length == 8) {if (infor.redList.length == 8) {infor.victoryMan = '平局!'} else {infor.victoryMan = '红方胜利!'}infor.victory = true}}

这里就不多述了,大家都看得懂,非常简单。

核心就这么多。欢迎大家试玩!!!!

相关内容

热门资讯

和解方案遭拒:多位作家再次起诉... 此次起诉作家的部分作品。 据《出版人周刊》报道,近期六位作家分别针对Anthropic、OpenAI...
欧林生物(688319)披露涉... 截至2025年12月30日收盘,欧林生物(688319)报收于25.32元,较前一交易日下跌0.74...
高新发展:华惠嘉悦汇广场合同纠... 观点网讯:12月30日,成都高新发展股份有限公司(高新发展)发布公告,披露其全资子公司成都倍特建筑安...
我国首例AI幻觉引发的侵权纠纷... 12月29日晚,杭州互联网法院公开了一起关于AI幻觉的网络侵权纠纷案的审判情况。 2025年6月,...
原创 滨... 鲁网12月30日讯12月29日,滨州市召开高质量完成“十四五”规划主题系列新闻发布会第五场——“平安...
制度供给,邮轮经济有了“上海模... 图为吴淞口国际邮轮港,今年前三季度,靠泊邮轮177艘次,占全国市场六成。/采访对象提供 邮轮经济产业...
西藏深耕新时代“枫桥经验” 多... 中新网拉萨12月30日电 (贡嘎来松)30日,西藏自治区司法厅召开西藏自治区调解工作基本情况新闻发布...
浦东建设(600284)披露修... 截至2025年12月30日收盘,浦东建设(600284)报收于8.55元,较前一交易日上涨1.06%...
中钢国际(000928)发布现... 截至2025年12月30日收盘,中钢国际(000928)报收于6.56元,较前一交易日下跌1.5%,...