JavaScript实现开关灯游戏


前言

开关的游戏是一款有趣的益智类游戏。在游戏中,你需要通过点击操作来打开或关闭那些灯,每一个开关灯的按钮都与其周围的按钮功能相反.
正文
刚开始学习js 事件,编写这个游戏用来做练习。

主要思路:将所有的灯放进数组,并给创建的灯一个索引值index,索引值与数组下标值一样,方便进行判断。该函数用来判断点击的灯的上下左右能否被点亮。
function clickItem(a){
itemon(a);
if(a.index>lightcol){
itemon(item[a.index-lightcol])
}
if(a.index<(lightrow-1)*lightcol){
itemon(item[a.index+lightcol])
}
if(a.index%lightcol!=0){
itemon(item[a.index-1])
}
if((a.index+1)%lightcol!=0){
itemon(item[a.index+1])
}
}
源码如下:


	
		
    
    
		
	
	
	
	<script type="text/javascript">
		//公共变量
		var lightwidth=30;
		var lightheight=30;
		var lightcol=19;
		var lightrow=17;
		var background1='black';
		var background2='yellow';
		var boxshadow1='10px 10px 10px gray';
		var boxshadow2='10px 10px 10px blue';
		var margin=2;
		var level=5;
		var color='white';
		var count=0;
		//
		var body_=document.getElementsByTagName('body')[0]
		var wrap=document.createElement('div');
		wrap.style.margin='auto';
		body_.style.textAlign='center'
		wrap.style.width=lightcol*lightwidth+lightcol*margin*2+'px';
		wrap.style.background='lavenderblush'
		body_.appendChild(wrap);
		//按钮
		var button_=document.createElement('button');
		button_.innerHTML='刷新关卡';
		button_.style.color='white';
		button_.style.background='red'
		body_.appendChild(button_);
		//灯
		var item=[];
		for(i=0;i
    
    
     
     lightcol){
				itemon(item[a.index-lightcol])
			}
			if(a.index<(lightrow-1)*lightcol){
				itemon(item[a.index+lightcol])
			}
			if(a.index%lightcol!=0){
				itemon(item[a.index-1])
			}
			if((a.index+1)%lightcol!=0){
				itemon(item[a.index+1])
			}
		}
		//通过item.ison值来做判断进行点亮或者熄灭
		function itemon(item){
			if(item.ison==false){
				item.style.background=background2;
				item.style.boxShadow=boxshadow2;
				item.ison=true;
				count++;
			}else{
				item.style.background=background1;
				item.style.boxShadow=boxshadow1;
				item.ison=false;
				count--;
			}
		}
		//随机生成灯
		function random_(){
			for(i=0;i
     
     

     
     
    
    

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值