溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用vue如何實(shí)現(xiàn)掃雷游戲

發(fā)布時(shí)間:2020-10-19 14:51:22 來源:億速云 閱讀:249 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)使用vue如何實(shí)現(xiàn)掃雷游戲,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

上班閑來沒事做,,心血來潮。想用剛學(xué)的vue,寫一個(gè)掃雷游戲。。好了,直入正題.

第一步,先制作一個(gè)10x10的格子圖。。這個(gè)pcss就不說了。。大家都會(huì)。

使用vue如何實(shí)現(xiàn)掃雷游戲

第二步,制造一個(gè)數(shù)組,用來生成隨機(jī)雷區(qū)。

let arr = []
for (var i = 0; i < 10; i++) {
  arr.push(Math.floor(Math.random() * 100))
}

第三步,制造一個(gè)json數(shù)組,讓他循環(huán)生成頁(yè)面上的格子。

  let arrs = []
  for (var j = 0; j < 100; j++) {
    let obj = {}
    if (arr.indexOf(j) > -1) {
      obj.isLei = true // 是否是地雷
    } else {
      obj.isLei = false // 是否是地雷
    }
    obj.id = j
    obj.isTrue = false // 安全區(qū)樣式
    obj.isFalse = false // 雷區(qū)樣式
    arrs.push(obj)
  }

大概是這樣子的數(shù)據(jù)

使用vue如何實(shí)現(xiàn)掃雷游戲

第四步,點(diǎn)擊格子,觸發(fā)事件。判斷是否這個(gè)是雷區(qū)。如果安全就顯示綠色,否則顯示紅色。

toclick (e) {
  console.log(e.isTrue)
  if (e.isLei === true) {
    e.isFalse = true
  } else {
    e.isTrue = true
    this.surPlus = this.surPlus - 1
  }
}

以下是所有代碼:

<script>
export default{
  data () {
    return {
      lattice: null, // 100個(gè)格子
      surPlus: 90 // 安全區(qū)。。因?yàn)槭?0個(gè)雷。所以就是100-10 = 90
    }
  },
  methods: {
    toclick (e) {
      console.log(e.isTrue)
      if (e.isLei === true) {
        e.isFalse = true
      } else {
        e.isTrue = true
        this.surPlus = this.surPlus - 1
      }
    },
    random () {
      let arr = []
      for (var i = 0; i < 10; i++) {
        arr.push(Math.floor(Math.random() * 100))
      }
      let arrs = []
      for (var j = 0; j < 100; j++) {
        let obj = {}
        if (arr.indexOf(j) > -1) {
          obj.isLei = true // 是否是地雷
        } else {
          obj.isLei = false // 是否是地雷
        }
        obj.id = j
        obj.isTrue = false // 安全區(qū)樣式
        obj.isFalse = false // 雷區(qū)樣式
        arrs.push(obj)
      }
      this.lattice = arrs
      console.log(arrs)
    }
  },
  mounted () {
    this.random()
  }
}
</script>
<template>
  <div class="page">
      <div class="bg">
        <div v-for="item in lattice" class="lattice" :class="{ 'security' : item.isTrue , 'danger': item.isFalse }" :key="item.id" @click="toclick(item)"></div>
      </div>
      <div class="surplus">剩余{{surPlus}}個(gè)安全格子</div>
  </div>
</template>
<style scoped>
.page{
    overflow: hidden;
}
.bg{
    border:1px solid #000;
    width:600px;
    height:600px;
    margin:20px auto;
}
.lattice{
    border: 1px solid #ccc;
    box-sizing: border-box;
    float:left;
    width:60px;
    height:60px;
}
.surplus{
    line-height: 38px;
    height:38px;
    width:150px;
    margin:0 auto;
}
.security{
    background-color: green;
}
.danger{
    background-color: red;
}
</style>

最后樣子大概就是這樣:

使用vue如何實(shí)現(xiàn)掃雷游戲

關(guān)于使用vue如何實(shí)現(xiàn)掃雷游戲就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI