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());
}
);
}
查看全文
相关阅读:
试试 cocos creator 3.0 还算可以
安卓按键辅助(类似按键精灵)
一次github遭遇
NSString
Navicat for SQL Server V10.0.10
申请博客第一天
Google Earth的脫機應用-本地模擬瓦片系統
Vs2010+opencv2.3.1 imread出现异常
tcpdump工具注意事项
选择服务器托管机房的注意事项
原文地址:https://www.cnblogs.com/xhan/p/1206255.html
最新文章
Runtime.getRuntime.exec()执行linux脚本导致程序卡死有关问题
Hibernate 缓存
JAVA内存溢出
xcode6+ios8 横屏下启动画面不显示问题修改
javaScript 比较数字大小
easyui datagrid 的排序问题
Mac软件记录
转发一个javascript的编码规范
来个爬虫吧
怕被遗忘的那些坑
热门文章
Jenkins + Docker + dockerfile-maven-plugin + Harbor CI/CD spring-boot项目的最轻量级配置
搭建自己的企业级镜像仓库-Harbor
Centos7.2下基于Nginx+Keepalived搭建高可用负载均衡(一.基于Keepalived搭建HA体系)
.Net Core2.0基于DbContext,IActionFilter过滤器实现全局UOW,不使用TransactionScope
Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)
Centos7.2部署.Net Core2.0 WebApi
理解数字签名与证书原理
Java NIO 核心组件学习笔记
从Java String实例来理解ANSI、Unicode、BMP、UTF等编码概念
使用 C#的类库 FtpWebRequest 轻松实现 自动化步骤
Copyright © 2011-2022 走看看