vue数字华容道游戏代码

vue数字华容道游戏代码

收藏
vue数字华容道游戏代码
vue实现数字华容道游戏源代码。学生,勿喷。

使用方法:

1、head引入css文件

<style>
html,body,div{
	margin: 0;
	padding: 0;
}
#app{
	width: 400px;
	height: 422px;
	margin: 200px auto;
	background-color: black;
	text-align: center;
	color: white;
}
.puzzle{
	width: 400px;
	list-style: none;
	overflow: hidden;
	margin-left: -40px;
	margin-bottom: 0px;
	margin-top: -23px;
}
li{
	width: 100px;
	height: 100px;
	background: orange;
	float: left;
	line-height: 100px;
	-webkit-text-stroke: 1px #fff;
	color: transparent;
	font-size: 48px;
	border: 1px solid #ccc;
	box-sizing: border-box;
}
.puzzle-empty{
	background: #ccc;
	box-shadow: 0px 0px 2px #000 inset;
}
</style>

2、head引入js文件

<script src="js/vue.js"></script>

3、body引入HTML代码

<div id="app">
	<ul class="puzzle">
		<li v-bind:class="{'puzzle-item':true,'puzzle-empty':!num}"
		 v-for="(num,index) in numLists" @click="moveTo(index)">
		 {{num}}
		</li>
	</ul>
	<button v-on:click="rander">重新开始</button>
</div>

<script>
	let vm = new Vue({
		el:"#app",
		data:{
			numLists:[]
		},
		mounted(){
			this.rander();
		},
		methods:{
			rander(){
			let arr = [];
			for(let i=0;arr.length<15;i++){
				let num = Math.ceil(Math.random()*15)
				if(arr.indexOf(num)==-1){
					arr.push(num)
				}
			}
			this.numLists=arr;
			this.numLists.push("");
			},
			moveTo(i){
				let currentNum = this.numLists[i],
				leftNum = this.numLists[i-1],
				rigthNum = this.numLists[i+1],
				topNum = this.numLists[i-4],
				buttonNum=this.numLists[i+4];
				if(rigthNum===""){
					Vue.set(this.numLists,i+1,currentNum);
					Vue.set(this.numLists,i,"");
				}else if(leftNum===""){
					Vue.set(this.numLists,i-1,currentNum);
					Vue.set(this.numLists,i,"");
				}else if(topNum===""){
					Vue.set(this.numLists,i-4,currentNum);
					Vue.set(this.numLists,i,"");
				}else if(buttonNum===""){
					Vue.set(this.numLists,i+4,currentNum);
					Vue.set(this.numLists,i,"");
				}

				if(this.endGame()){
					alert('success!')
				}

			},
			endGame(){
				let i = 0;l=this.numLists.length;
				for(i;i<l-2;i++){
					if(this.numLists[0]===""||this.numLists[l-1]===""){
						if(this.numLists[i]<this.numLists[i+1]){

						}else{
							return false;
						}
					}else{
						return false;
					}
				}
				return true;
			}
		}
	})
</script>

使用声明

1. 本站所有素材(未指定商用),仅限学习交流请勿用于商业用途。
2. 会员在本站下载的原创商用和VIP素材后,只拥有使用权,著作权归原作者及17素材网所有。
3. 原创商用和VIP素材,未经合法授权,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 本平台织梦模板仅展示和个人非盈利用途,织梦系统商业用途请预先授权。