vue3 斗兽棋游戏

     近来掘金举办前端比赛,所以写了一个小游戏参加,而且熟悉一下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.Belonging
    infor.farstValue++
    infor.flopStutas = infor.manStutas
  }
  infor.dataList.forEach(element => {
    if (element.brandInfor && element.brandInfor.id == item.brandInfor.id) {
      element.brandInfor.rote = true
      infor.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.brandInfor
      element.carStutas = true
      // 平子
      if (valstu) {
        element.brandInfor = {}
        element.carStutas = false
        if (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 = false
  infor.oldValue = false
  infor.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
  }

}

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

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
斗兽是一款非常有趣的游戏,你提到的这个斗兽游戏是使用Vue2编写的。Vue2是一个流行的JavaScript框架,用于构建用户界面。它提供了一种简单而灵活的方式来组织和管理应用程序的各个组件。 在这个斗兽游戏中,你使用了Vue2来构建游戏的界面和逻辑。通过使用Vue2的组件化开发模式,你可以将整个游戏拆分为不同的组件,每个组件负责不同的功能和显示。 在游戏中,你使用了CSS来实现翻转牌的效果。通过设置backface-visibility: hidden;属性,你可以让点击后的牌翻转180度并隐藏背面。这样,当牌翻转回来时,正好显示正面。 此外,你还使用了一个包含16个位置的数据列表(dataList)来表示盘和子的状态。每个数据对象包含了当前位置的索引、规则值、以及当前位置是否有子的状态。通过这个数据列表,你可以实现子在盘上的移动和跳转规则。 总体来说,你使用了Vue2框架和CSS来创建了这个斗兽游戏。通过Vue2的组件化开发模式和数据绑定,你可以实现游戏的逻辑和界面的交互。希望你能享受这个游戏的开发过程和玩耍的乐趣!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue3 斗兽游戏](https://blog.csdn.net/Thekingyu/article/details/128003475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值