`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
用js写的小游戏,使用了jquery类库./Files/xhan/game.rar `ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
game.js`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
$(`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
 
function()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
 
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
      initTable();
//初始化表格颜色`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
      window.playerA=new Player(0,"A","playerA");//初始化玩家A的初始位置,名字,和,样式信息`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
      window.playerB=new Player(0,"B","playerB");//初始化玩家B的初始位置,名字,和,样式信息`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
      window.currentPlayer=  window.playerA;//设定A为初始当前的玩家`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
      showPlayerMessage();//在界面上显示玩家的信息`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
      $("#rollButton").click(rollButton_click);//绑定投掷骰子按钮的click事件处理函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
  }`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function rollButton_click()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
//如果当前用户是A,玩家A开始掷骰子。然后将当前玩家设为B`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(window.currentPlayer==window.playerA)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        doRoll(window.currentPlayer);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        window.currentPlayer
= window.playerB;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
return;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
//如果当前用户是B,玩家B开始掷骰子。然后将当前玩家设为A`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(window.currentPlayer==window.playerB)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        doRoll(window.currentPlayer);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        window.currentPlayer
= window.playerA;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
return;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function doRoll(player)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
var startPanel=player.currentPanel;//获取开始动画的面板编号`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
var diceNumber=rollDice();//获取投掷骰子的点数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
var endPanel=startPanel+diceNumber;//计算动画结束的面板标号`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    player.currentPanel=endPanel;//更新玩家的当前点数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    `ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    showDiceNumber(diceNumber);
//在页面显示骰子点数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    showPlayerMessage();//更新页面玩家的信息`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    goNextPanel(startPanel,endPanel,null,player);//开始动画`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//在页面上显示玩家前进后退动画函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function goNextPanel(startPanel,endPanel,hoveredPanel,player)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
//如果上一个经过的面板编号不空就清除前面的样式`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(hoveredPanel!=null)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        $(
"#"+hoveredPanel).removeClass(player.cssClass);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        $(
"#"+hoveredPanel).removeClass("bothPlayer");`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
//设定当前经过的面板的样式`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    $("#"+startPanel).addClass(player.cssClass);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
//如何是前进的话,获取下一个要经过面板的编号`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(startPanel<endPanel)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        nextStartPanel
=startPanel+1;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
else if(startPanel>endPanel)//如果是要后退的话获取下一个要经过面板的编号`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        nextStartPanel
=startPanel-1;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
else//已经走到结束面板`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        trap(endPanel,player);
//应用陷阱规则`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        reward(endPanel,player);//应用奖励规则`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
if(isABSame())//如果a,b同一面板设定面板样式为bothPlayer`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
            $(
"#"+endPanel).addClass("bothPlayer");`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        showPlayerMessage();
//显示用户信息`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
return;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(isWin(startPanel))//如果走到终点结束动画提示成功!`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        alert(player.name
+" ,you win!");`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        clearTimeout(t);
//清除定时触发器`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
return;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
//在指定毫秒数后递归调用动画函数向下一个面板移动`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    t=window.setTimeout(function() {goNextPanel(nextStartPanel,endPanel,startPanel,player)},500);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//显示玩家信息函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function showPlayerMessage()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    $(
"#playerA").text("A当前点数:"+window.playerA.currentPanel);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    $(
"#playerB").text("B当前点数:"+window.playerB.currentPanel);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    $(
"#currentPlayer").text("当前玩家:"+window.currentPlayer.name);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//设定陷阱规则函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function trap(panel,player)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(panel==8)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        doTrap(panel,player,
2);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(panel==4)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        doTrap(panel,player,
1);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//运行陷阱函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function doTrap(panel,player,count)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        alert(
"哈哈,被炸退"+count+"格!");`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
var endPanel=panel-count;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        player.currentPanel
=endPanel;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        `ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        showPlayerMessage();`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        goNextPanel(panel,endPanel,
null,player);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//设定奖励规则函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function reward(panel,player)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(panel==18)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        doReward(panel,player,
3);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(panel==30)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        doReward(panel,player,
4);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//运行奖励函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function doReward(panel,player,count)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        alert(
"恭喜,前进"+count+"格!");`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
var endPanel=panel+count;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        player.currentPanel
=endPanel;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        `ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        showPlayerMessage();`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        goNextPanel(panel,endPanel,
null,player);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        `ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//判断是否玩家已经赢了`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function isWin(panel)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
if(panel==48)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
return true;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
else`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
return false;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//显示投掷骰子点数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function showDiceNumber(number)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    $(
"#diceNumber").text(number);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//判断A,B是否在同一面板`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function isABSame()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
if(window.playerA.currentPanel==window.playerB.currentPanel)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
           
return true;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
else`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
           
return false;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//玩家构造函数。每个玩家对象包含当前面板属性,名字,和样式属性`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function Player(startPanel,name,cssClass)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
this.currentPanel=startPanel;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
this.name=name;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
this.cssClass=cssClass;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//获取骰子的随机点数函数`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function rollDice()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
return parseInt(Math.random()*6+1);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//获取随机颜色值的字符串`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function getRandomColor()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
var str = "0123456789abcdef";`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
var colorString = "#";`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
for(j=0;j<6;j++)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        colorString
= colorString+ str.charAt(Math.random()*str.length);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
   
return colorString;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
//初始化表格颜色`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
function initTable()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
 
//遍历所有td(面板)将每个单元格的背景色设定一个随机的颜色`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    $("td").each(`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
function()`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
       
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
            $(
this).css("background-color",getRandomColor());`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        }
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    );`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7