前言
开关的游戏是一款有趣的益智类游戏。在游戏中,你需要通过点击操作来打开或关闭那些灯,每一个开关灯的按钮都与其周围的按钮功能相反.
正文
刚开始学习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])
}
}
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