上班闲来没事做,,心血来潮。想用刚学的vue,写一个扫雷游戏。。好了,直入正题.


第一步,先制作一个10x10的格子图。。这个divcss就不说了。。大家都会。

第二步,制造一个数组,用来生成随机雷区。

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

第三步,制造一个json数组,让他循环生成页面上的格子。

  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 // 安全区样式
obj.isFalse = false // 雷区样式
arrs.push(obj)
}

大概是这样子的数据

第四步,点击格子,触发事件。判断是否这个是雷区。如果安全就显示绿色,否则显示红色。

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个格子
surPlus: 90 // 安全区。。因为是10个雷。所以就是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 // 安全区样式
obj.isFalse = false // 雷区样式
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}}个安全格子</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>

最后样子大概就是这样:

最新文章

  1. session 安全相关
  2. Eclipse 和 HSQLDB: 将关系数据库服务器嵌入到 Eclipse 中,第 2 部分
  3. [Python] Symbol Review
  4. [转]excel set drop-down values based on vlookup
  5. 51nod 1117 聪明的木匠 (贪心)
  6. 2015年目标一:学习掌握python
  7. phonegap/cordova 启动页面
  8. linux_nand_driver
  9. #include&lt;filename.h&gt; 与 #include“filename.h”
  10. vmware 收缩硬盘大小(compat,shrink,vmware-vdiskmanager)
  11. Websense更名换帅
  12. Java程序打包
  13. System.Data.SQLite兼容32位和64位问题
  14. java集群
  15. angularJs中ngModel的坑
  16. AR入门系列-07-Vuforia柱形体识别
  17. 【SqlServer】【问题收集】删除同一张表中完全相同的记录
  18. 设计模式之生成器(Builder)模式
  19. Windows下建立ArcGIS Server集群
  20. 监控端口是否开放,端口未开放关闭虚拟ip,端口开放启动虚拟IP

热门文章

  1. python二级考试知识点——turtle、random、time、PyInstaller、jieba、wordcloud
  2. 【AMAD】coconut -- 简单,优雅,pythonic的函数式编程语言
  3. Windows下的开发辅助神器——Chocolate Package Manager
  4. MVC、MVP、MVVM模式的概念与区别
  5. java开发性能调优
  6. 对C++类的继承和派生的理解
  7. Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系)
  8. 设置Cookies
  9. 重学JavaScript之匿名函数
  10. Object 对象(对象的分类、属性(属性名和属性值)、基本数据类型与引用数据类型区别)