版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第js实现网页五子棋进阶版本文实例为大家分享了js实现网页五子棋进阶版的具体代码,供大家参考,具体内容如下
对比上一版本增加了音效和计时器两个模块。
代码如下
!doctypehtml
html
head
metacharset="utf-8"
title五子棋/title
!--
scriptsrc="/jquery/1.10.2/jquery.min.js"/--
/head
!--css--
style
body{
width:800px;
}
#beginGameBtn{
background:url(startImg.png);
width:80px;
height:25px;
background-size:cover;
float:left;
}
#restartGameBtn{
background:url(restartImg.png);
width:80px;
height:25px;
background-size:cover;
float:right;
}
td{
width:50px;
height:50px;
margin:0px;
padding:0px
}
#timer{
background:#000;
float:left;
width:150px;
margin:30px;
color:#00ff00;
font-weight:bold;
border-radius:30px;
text-align:center;
font-size:20px;
}
/style
!--js--
scripttype="text/javascript"
varpresentChess=1;//当前执棋方,1代表白旗,0代表黑棋
varbeginFlag=0;//0代表未开始游戏,1代表已开始游戏
varmsg;
varchessboard=newArray(10);//记录下棋情况
varplayChessSound;
vartimerM;//计时器分
vartimerS;//计时器秒
varinterval;
for(vari=0;ii++){
chessboard[i]=newArray(10);
//初始化下棋情况,全为0
for(varj=0;jj++){
chessboard[i][j]=-1;
}
}
window.onload=function(){
msg=document.getElementById('msg')
playChessSound=document.getElementById("playChessSound")
timerM=document.getElementById('timerM')
timerS=document.getElementById('timerS')
timerS.innerText=0;
timerM.innerText=0;
}
//返回三者最小值
functionmin(x,y,z){
return(xyy:x)zz:(xyy:x)
}
//计时函数
functionsetTimer(){
varm=parseInt(timerM.innerText);
vars=parseInt(timerS.innerText);
if(s=59){
timerS.innerText=0;
timerM.innerText=m+1;
}elsetimerS.innerText=s+1;
}
functionbeginGame(){
//beginFlag=1;
//绑定棋盘下棋事件
for(vari=0;i100;i++){
document.getElementsByTagName('td')[i].onclick=palyChess;
}
interval=setInterval(setTimer,1000);
}
functionrestartGame(){
for(vari=0;i100;i++){
//document.getElementsByTagName('td')[i].onclick='';
document.getElementsByTagName('td')[i].innerHTML='';//清空棋子
timerS.innerText=0;
timerM.innerText=0;
}
for(vari=0;ii++){//清空棋盘记录
for(varj=0;jj++){
chessboard[i][j]=-1;
}
}
//计时器部分
clearInterval(interval)
interval=setInterval(setTimer,1000);
}
//下棋
functionpalyChess(){
//如果表格此处已经下了棋,则返回不作操作
text=this.innerHTML
if(text!='')return;
//放置棋子图片得字符串
varbqiStr="imgsrc=\"bqiImg.jpg\"width=\"100%\"
height=\"90%\"
alt=\"\"/"
varhqiStr="imgsrc=\"hqiImg.jpg\"width=\"100%\"height=\"90%\"alt=\"\"/"
//console.log('1')
if(presentChess==1){
this.innerHTML=bqiStr;
chessboard[this.parentNode.rowIndex][this.cellIndex]=1;
//setTimeout('',3000);
if(ifWin(this.parentNode.rowIndex,this.cellIndex)){
if(presentChess==1)alert('白棋方获胜');
elsealert('黑棋方获胜');
clearInterval(interval);
}
presentChess=0;
msg.innerHTML="黑棋";
playChessSound.play();
}else{
this.innerHTML=hqiStr;
chessboard[this.parentNode.rowIndex][this.cellIndex]=0;
if(ifWin(this.parentNode.rowIndex,this.cellIndex)){
if(presentChess==1)alert('白棋方获胜');
elsealert('黑棋方获胜');
clearInterval(interval);
}
presentChess=1;
msg.innerHTML="白棋";
playChessSound.play();
}
}
//判断是否胜利,h行,l列
functionifWin(h,l){
//varx=this.parentNode.rowIndex;
//vary=this.cellIndex-1;
vars=1;//记录连子个数
//判断竖直方向
for(vari=1;i=(h44:h);i++){
if(chessboard[h-i][l]==presentChess){
s++;
}elsebreak;
}
for(vari=1;i=((9-h)44:(9-h));i++){
if(chessboard[h+i][l]==presentChess){
s++;
}elsebreak;
}
if(s=5){
return1;
}
s=1;
//判断水平方向
for(vari=1;i=(l44:l);i++){
if(chessboard[h][l-i]==presentChess){
s++;
}elsebreak;
}
for(vari=1;i=((9-l)44:(9-l));i++){
if(chessboard[h][l+i]==presentChess){
s++;
}elsebreak;
}
if(s=5){
return1;
}
s=1;
//varmin=(h44:h)ll:(h44:h);
//判断左上、右下斜线方向
for(vari=1;i=min(4,l,h);i++){//取较小值作为移动半径
if(chessboard[h-i][l-i]==presentChess){
s++;
}elsebreak;
}
for(vari=1;i=min(4,9-l,9-h);i++){
if(chessboard[h+i][l+i]==presentChess){
s++;
}elsebreak;
}
if(s=5){
return1;
}
s=1;
//判断右上、左下斜线方向
for(vari=1;i=min(4,9-l,h);i++){//取较小值作为移动半径
if(chessboard[h-i][l+i]==presentChess){
s++;
}elsebreak;
}
for(vari=1;i=min(4,l,9-h);i++){
if(chessboard[h+i][l-i]==presentChess){
s++;
}elsebreak;
}
if(s=5){
return1;
}
return0;
}
/script
body
!--顶部--
div
div
!--开始游戏按钮--
buttonid="beginGameBtn"name="beginGameBtn"/button
!--重新开始游戏按钮--
buttonid="restartGameBtn"name="restartGameBtn"/button
/div
div执子方:labelid="msg"name="msg"白棋/label/div
/div
!--音效控制--
audioid="playChessSound"
sourcesrc="5390.mp3"
/audio
!--下部--
div
!--左边计时器--
divid="timer"style=""
比赛已进行br
span
spanid="timerM"/span分
spanid="timerS"/span秒
/span
/div
div
!--表格构成棋盘--
tableborder="5"
tr
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
/tr
tr
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
/tr
tr
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
/tr
tr
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
/tr
tr
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
/tr
tr
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
/tr
tr
td/td
td/td
td/td
td/td
td/td
td/td
td/td
td/td
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川省巴中市从“五方面人员”中选拔乡镇领导班子成员考试强化练习题及答案
- 2025年卫生高级职称面审答辩普通外科副高面审经典试题及答案
- 2025年一级建造师考试(机电工程管理与实务)题库含答案佛山
- 2026年高级育婴师学习考试试题及答案解析
- 宁德市一级建造师考试(机电工程管理与实务)题库含答案(2025年)
- 除颤操作失误纠错模拟应急演练
- 跨河桥梁汛期漂浮物撞击应急预案
- 机动车检测站内审年度计划及实施细则
- Giparmen-生命科学试剂-MCE
- FTC-146-precursor-生命科学试剂-MCE
- 中职机械教学中数字化教学资源的开发与应用课题报告教学研究课题报告
- 宜宾市自然资源和规划局竞争性比选工作人员的考试参考试题及答案解析
- 《道路运输企业主要负责人和安全生产管理人员安全考核机动车维修企业》专业部分题库(附答案)
- 20.2电生磁教案(表格式)2025-2026学年初中物理人教版九年级全一册
- 霍桑红字介绍
- TGXAS-抗肿瘤药物临床试验护理工作规范编制说明
- 美团推广合同范本
- 网络金融部业务知识考试题库
- 税务领导选拔面试题目及答案
- 内分泌危象识别与应急处理
- 机关人员公务出差审批单
评论
0/150
提交评论