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());
}
);
}
查看全文
相关阅读:
系统维护相关问题
Python环境维护
哈希表解决字符串问题
论文笔记二:《A Tutoral on Spectral Clustering》
论文笔记之哈希学习比较--《Supervised Hashing with Kernels》《Towards Optimal Binary Code Learning via Ordinal Embedding》《Top Rank Supervised Binary Coding for Visual Search》
Java中String、StringBuffer、StringBuilder的比较与源 代码分析
浙大pat1040 Longest Symmetric String(25 分)
浙大pat1039 Course List for Student(25 分)
浙大pat---1036 Boys vs Girls (25)
百炼oj-4151:电影节
原文地址:https://www.cnblogs.com/xhan/p/1206255.html
最新文章
Oracle数据库学习(二):Oracle Linux下oracle、ogg的挂载与参数配置
Ubuntu16.04安装视觉SLAM环境(g2o)
X协议调整大小、旋转和反射的扩展(The X Resize, Rotate and Reflect Extension )
XRender 扩展的设计和实现(Design and Implementation of the X Rendering Extension)
计算机图形学中的空间坐标系
Basic Concepts in Graphics and Architecture
DirectX9 着色器学习(三)
DirectX9 着色器学习(二)
DirectX9 着色器学习(一)
matlab作图导出为PDF去除留白插入latex
热门文章
趋势科技暑期软开实习生招聘笔试
招商银行信用卡中心&华泰证券暑期实习软开笔试小结
conda管理及使用
深度学习
游泳记录
论文写作
羽毛球 练习记录
windows10 安装
windows iphone 传输
Unity 和 3DMAx
Copyright © 2011-2022 走看看