zoukankan
html css js c++ java
使用jquery类库编写的强手棋小游戏
用js写的小游戏,使用了jquery类库.
/Files/xhan/game.rar
game.js
$(
function
()
{
initTable();
//
初始化表格颜色
window.playerA
=
new
Player(
0
,
"
A
"
,
"
playerA
"
);
//
初始化玩家A的初始位置,名字,和,样式信息
window.playerB
=
new
Player(
0
,
"
B
"
,
"
playerB
"
);
//
初始化玩家B的初始位置,名字,和,样式信息
window.currentPlayer
=
window.playerA;
//
设定A为初始当前的玩家
showPlayerMessage();
//
在界面上显示玩家的信息
$(
"
#rollButton
"
).click(rollButton_click);
//
绑定投掷骰子按钮的click事件处理函数
}
);
function
rollButton_click()
{
//
如果当前用户是A,玩家A开始掷骰子。然后将当前玩家设为B
if
(window.currentPlayer
==
window.playerA)
{
doRoll(window.currentPlayer);
window.currentPlayer
=
window.playerB;
return
;
}
//
如果当前用户是B,玩家B开始掷骰子。然后将当前玩家设为A
if
(window.currentPlayer
==
window.playerB)
{
doRoll(window.currentPlayer);
window.currentPlayer
=
window.playerA;
return
;
}
}
function
doRoll(player)
{
var
startPanel
=
player.currentPanel;
//
获取开始动画的面板编号
var
diceNumber
=
rollDice();
//
获取投掷骰子的点数
var
endPanel
=
startPanel
+
diceNumber;
//
计算动画结束的面板标号
player.currentPanel
=
endPanel;
//
更新玩家的当前点数
showDiceNumber(diceNumber);
//
在页面显示骰子点数
showPlayerMessage();
//
更新页面玩家的信息
goNextPanel(startPanel,endPanel,
null
,player);
//
开始动画
}
//
在页面上显示玩家前进后退动画函数
function
goNextPanel(startPanel,endPanel,hoveredPanel,player)
{
//
如果上一个经过的面板编号不空就清除前面的样式
if
(hoveredPanel
!=
null
)
{
$(
"
#
"
+
hoveredPanel).removeClass(player.cssClass);
$(
"
#
"
+
hoveredPanel).removeClass(
"
bothPlayer
"
);
}
//
设定当前经过的面板的样式
$(
"
#
"
+
startPanel).addClass(player.cssClass);
//
如何是前进的话,获取下一个要经过面板的编号
if
(startPanel
<
endPanel)
{
nextStartPanel
=
startPanel
+
1
;
}
else
if
(startPanel
>
endPanel)
//
如果是要后退的话获取下一个要经过面板的编号
{
nextStartPanel
=
startPanel
-
1
;
}
else
//
已经走到结束面板
{
trap(endPanel,player);
//
应用陷阱规则
reward(endPanel,player);
//
应用奖励规则
if
(isABSame())
//
如果a,b同一面板设定面板样式为bothPlayer
{
$(
"
#
"
+
endPanel).addClass(
"
bothPlayer
"
);
}
showPlayerMessage();
//
显示用户信息
return
;
}
if
(isWin(startPanel))
//
如果走到终点结束动画提示成功!
{
alert(player.name
+
"
,you win!
"
);
clearTimeout(t);
//
清除定时触发器
return
;
}
//
在指定毫秒数后递归调用动画函数向下一个面板移动
t
=
window.setTimeout(
function
()
{goNextPanel(nextStartPanel,endPanel,startPanel,player)}
,
500
);
}
//
显示玩家信息函数
function
showPlayerMessage()
{
$(
"
#playerA
"
).text(
"
A当前点数:
"
+
window.playerA.currentPanel);
$(
"
#playerB
"
).text(
"
B当前点数:
"
+
window.playerB.currentPanel);
$(
"
#currentPlayer
"
).text(
"
当前玩家:
"
+
window.currentPlayer.name);
}
//
设定陷阱规则函数
function
trap(panel,player)
{
if
(panel
==
8
)
{
doTrap(panel,player,
2
);
}
if
(panel
==
4
)
{
doTrap(panel,player,
1
);
}
}
//
运行陷阱函数
function
doTrap(panel,player,count)
{
alert(
"
哈哈,被炸退
"
+
count
+
"
格!
"
);
var
endPanel
=
panel
-
count;
player.currentPanel
=
endPanel;
showPlayerMessage();
goNextPanel(panel,endPanel,
null
,player);
}
//
设定奖励规则函数
function
reward(panel,player)
{
if
(panel
==
18
)
{
doReward(panel,player,
3
);
}
if
(panel
==
30
)
{
doReward(panel,player,
4
);
}
}
//
运行奖励函数
function
doReward(panel,player,count)
{
alert(
"
恭喜,前进
"
+
count
+
"
格!
"
);
var
endPanel
=
panel
+
count;
player.currentPanel
=
endPanel;
showPlayerMessage();
goNextPanel(panel,endPanel,
null
,player);
}
//
判断是否玩家已经赢了
function
isWin(panel)
{
if
(panel
==
48
)
{
return
true
;
}
else
{
return
false
;
}
}
//
显示投掷骰子点数
function
showDiceNumber(number)
{
$(
"
#diceNumber
"
).text(number);
}
//
判断A,B是否在同一面板
function
isABSame()
{
if
(window.playerA.currentPanel
==
window.playerB.currentPanel)
{
return
true
;
}
else
{
return
false
;
}
}
//
玩家构造函数。每个玩家对象包含当前面板属性,名字,和样式属性
function
Player(startPanel,name,cssClass)
{
this
.currentPanel
=
startPanel;
this
.name
=
name;
this
.cssClass
=
cssClass;
}
//
获取骰子的随机点数函数
function
rollDice()
{
return
parseInt(Math.random()
*
6
+
1
);
}
//
获取随机颜色值的字符串
function
getRandomColor()
{
var
str
=
"
0123456789abcdef
"
;
var
colorString
=
"
#
"
;
for
(j
=
0
;j
<
6
;j
++
)
{
colorString
=
colorString
+
str.charAt(Math.random()
*
str.length);
}
return
colorString;
}
//
初始化表格颜色
function
initTable()
{
//
遍历所有td(面板)将每个单元格的背景色设定一个随机的颜色
$(
"
td
"
).each(
function
()
{
$(
this
).css(
"
background-color
"
,getRandomColor());
}
);
}
查看全文
相关阅读:
清空收缩数据库日志文件的方法
JavaScript中的剪贴板的使用(clipboardData)
location.search在客户端获取Url参数的方法
JS之onkeypress,onkeydown,onkeyup区别
网页中的meta标签的作用
SQL优化条
JS简洁经典滚动上下与左右
结构体
static修饰符
Solaris内存监控 & solaris查看内存使用情况
原文地址:https://www.cnblogs.com/xhan/p/1206255.html
最新文章
[Yii Framework] yii的Admin管理模块配置
[Yii Framework] yii中向widget传值
[Yii Framework] yii创建应用
[Yii Framework] yii的controller中外挂action
[Yii Framework] yii创建model于module
[Yii Framework] yii的数据库配置
[Yii Framework] CdbExpression的用处
[Yii Framework] yii中component绑定事件
[Yii Framework] 创建widget
[Yii Framework] 创建 CRUD 操作
热门文章
UML类图符号简介
CString与char* 相互转换
队列 VS 堆栈
C# Double Buffer reduce flicker
C语言内存分区
C# 浅拷贝与深拷贝
C语言中11种赋值运算符的具体含义
仿XP关机效果的弹出窗口(JS+样式实现)
如何获取页面中所有的checkbox
JS中window.location的应用
Copyright © 2011-2022 走看看