




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第JavaScript實(shí)現(xiàn)網(wǎng)頁五子棋小游戲本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)網(wǎng)頁五子棋小游戲的具體代碼,供大家參考,具體內(nèi)容如下
設(shè)計(jì)思路如下:
1.先采用的Math.random()方法決定哪一方先行;
2.設(shè)置變量WFLAG=1,BFLAG=0時(shí)執(zhí)白子,WFLAG=0,BFLAG=1時(shí)執(zhí)黑子;
3.設(shè)置標(biāo)志[I]中,當(dāng)為白子時(shí)標(biāo)志[I]=1,當(dāng)為黑子時(shí)標(biāo)志[I]=2,且標(biāo)志[I]不為0時(shí)不能落子;
4.設(shè)置判斷語句,當(dāng)列5子時(shí),豎5子,斜5子時(shí)為勝利,并計(jì)分;
5.重新開始-重新初始化變量。
采用的方法如下:
1.Math.random():隨機(jī)產(chǎn)生0~1的隨機(jī)數(shù),含0但不包括1;
2.window.addEventListener(type,javascript語句,false):監(jiān)聽器,三個(gè)參數(shù),第一個(gè)參數(shù)為所要監(jiān)聽的事件的類型(mousedown-鼠標(biāo)按下,keydown-鍵盤按下等事件),第二個(gè)參數(shù)為發(fā)生事件后所要執(zhí)行的JavaScript的語句,第三個(gè)參數(shù)可選,默認(rèn)為假;
!doctypehtml
html
head
title五子棋/title
metacharset="utf-8"
style
padding:0;
margin:0;
}
#out{
width:610px;
height:610px;
border:5pxsolid;
position:absolute;
margin-left:300px;
margin-top:100px;
}
#play{
width:200px;
height:80px;
position:absolute;
margin-left:500px;
margin-top:0px;
}
#start{
width:100px;
height:45px;
border-radius:25px;
position:absolute;
margin-top:0px;
margin-left:50px;
font-size:20px;
background-color:#CCFF66;
}
span{
width:80px;
height:30px;
position:absolute;
margin-top:50px;
border:1pxsolid;
text-align:center;
}
width:40px;
height:40px;
border-radius:40px;
background-color:#999999;
margin-left:7px;
margin-top:0px;
}
width:40px;
height:40px;
border-radius:40px;
background-color:#000000;
margin-left:7px;
margin-top:0px;
}
tabletr{
height:50px;
}
tabletrtd{
width:50px;
height:50px;
}
.block{
width:50px;
height:50px;
}
#history{
width:100px;
height:50px;
position:absolute;
margin-top:40px;
margin-left:720px;
}
#return{
width:100px;
height:50px;
background-color:#999900;
border-radius:26px;
font-size:17px;
font-family:"LucidaConsole","LucidaSansTypewriter",Monaco,"CourierNew",monospace;
font-style:oblique;
}
.tab{
width:100px;
height:151px;
position:absolute;
margin-top:120px;
}
.head{
width:100px;
height:50px;
position:absolute;
margin-top:0px;
}
.score{
width:100px;
height:100px;
position:absolute;
margin-top:51px;
}
.feshu{
width:50px;
height:100px;
position:absolute;
margin-top:0px;
}
width:100%;
height:100%;
}
/style
script
window.onload=function(){
varwhite=document.getElementById("white");
varblack=document.getElementById("black");
varstart=document.getElementById("start");
varout=document.getElementById("out");
varle1=0,le2=0,ri1=0,ri2=0;
varleft1=document.getElementById("left1");
varleft2=document.getElementById("left2");
varright1=document.getElementById("right1");
varright2=document.getElementById("right2");
varimages=newArray("./images/s0.png","./images/s1.png","./images/s2.png","./images/s3.png","./images/s4.png","./images/s5.png","./images/s6.png","./images/s7.png","./images/s8.png","./images/s9.png");
functiongoal(le2,ri2){
left1.src=images[le1];
left2.src=images[le2];
right1.src=images[ri1];
right2.src=images[ri2];
for(m=0;mm++){
document.getElementsByTagName("td")[m].innerHTML='divid="the'+m+'"/div
}
//flag=1,不能放棋子
varflag=newArray(100);
for(varj=0;jj++){
flag[j]=0;
}
//1-白子先行,2-黑子先行
varwflag=0,bflag=0,lflag=0;
varturn=Math.floor(Math.random()*2);//0,1,如果是turn=0表示白子先行,=1表示黑子先行
start.unction(){
if(turn+1==1){
wflag=1;
bflag=0;
}
else{
wflag=0;
bflag=1;
}
down(wflag,bflag);
lflag=1;
}
//重新開始
document.getElementById("return").aishi;
functionkaishi(){
for(m=0;mm++){
document.getElementsByTagName("td")[m].innerHTML='divid="the'+m+'"/div
}
out.style.cursor="default";
for(varj=0;jj++){
flag[j]=0;//flag重置為0
}
white.innerHTML="";
black.innerHTML="";
wflag=0,bflag=0,lflag=0;
varturn=Math.floor(Math.random()*2);//0,1
start.unction(){
if(turn+1==1){
wflag=1;
bflag=0;
}
else{
wflag=0;
bflag=1;
}
down(wflag,bflag);
lflag=1;
}
win=0;
functiondown(wflag,bflag){
//下棋
if(wflag==0bflag==1){
black.innerHTML="黑方執(zhí)子";
white.innerHTML="白方等待";
wflag=1;
bflag=0;
out.style.cursor="url(./images/cursor1.cur),auto";
}
else{
white.innerHTML="白方執(zhí)子";
black.innerHTML="黑方等待";
wflag=0;
bflag=1;
out.style.cursor="url(./images/cursor2.cur),auto";
}
happen(wflag,bflag);
functionhappen(wflag,bflag){
if(wflag==0bflag==1){
//白子
fox("wq",wflag,bflag);
}
//黑子
else{
fox("bq",wflag,bflag);
}
}
functionfox(color,wflag,bflag){
for(vari=0;ii++){
downup(i,color,wflag,bflag);
}
functiondownup(i,color,wflag,bflag){
document.getElementById('the'+i).unction(){
if(flag[i]!=0){alert("禁止放子!");}
else{
document.getElementById('the'+i).className=color;
if(color=="wq"){
flag[i]=1;
}
else{flag[i]=2;}
down(wflag,bflag);
}
}
}
}
varwin=0;
//正5子
functionzheng(){
if(win==0){
for(varp=0;pp++){
if(flag[p]==1flag[p+1]==1flag[p+2]==1flag[p+3]==1flag[p+4]==1){
varh=p+4
if(h!=10h!==20h!==30h!==40h!=50h!==60h!==70h!==80h!==90h!==100){
alert("白方獲勝!");
win=1;
le2++;
goal(le2,ri2);
}
else{returnfalse;}
}
elseif(flag[p]==2flag[p+1]==2flag[p+2]==2flag[p+3]==2flag[p+4]==2){
varh=p+4
if(h!=10h!==20h!==30h!==40h!=50h!==60h!==70h!==80h!==90h!==100){
alert("黑方獲勝!");
win=1;
ri2++;
goal(le2,ri2);
}
else{returnfalse;}
}
}
}
else{returntrue;}
//豎5子
functionshu(){
if(win==0){
for(varp=0;pp++){
if(flag[p]==1flag[p+10]==1flag[p+20]==1flag[p+30]==1flag[p+40]==1){
alert("白方獲勝!");
win=1;
le2++;
goal(le2,ri2);
}
elseif(flag[p]==2flag[p+10]==2flag[p+20]==2flag[p+30]==2flag[p+40]==2){
alert("黑方獲勝!");
win=1;
ri2++;
goal(le2,ri2);
}
}
}
else{returntrue;}
}
//左斜5子
functionleft(){
if(win==0){
for(varp=0;pp++){
if(flag[p]==1flag[p+11]==1flag[p+22]==1flag[p+33]==1flag[p+44]==1){
alert("白方獲勝!");
win=1;
le2++;
goal(le2,ri2);
}
elseif(flag[p]==2flag[p+11]==2flag[p+22]==2flag[p+33]==2flag[p+44]==2){
alert("黑方獲勝!");
win=1;
ri2++;
goal(le2,ri2);
}
}
}
else{returntrue;}
}
//右斜5子
functionright(){
if(win==0){
for(varp=0;pp++){
if(flag[p]==1flag[p+9]==1flag[p+18]==1flag[p+27]==1flag[p+36]==1){
alert("白方獲勝!");
win=1;
le2++;
goal(le2,ri2);
}
elseif(flag[p]==2flag[p+9]==2flag[p+18]==2flag[p+27]==2flag[p+36]==2){
alert("黑方獲勝!");
win=1;
ri2++;
goal(le2,ri2);
}
}
}
else{returntrue;}
}
window.addEventListener('mousedown',zheng,false);
window.addEventListener('mousedown',shu,false);
window.addEventListener('mousedown',left,false);
window.addEventListener('mousedown',right,false);
window.addEventListener('mousedown',that,false);
/script
/head
body
divid="play"
buttonid="start"START/button
spanid="white"/spanspanid="black"/span
/div
divid="history"buttonid="return"重新開始/button/div
div
divimgsrc="./images/baif.png"http://div
div
divimgsrc="./images/s0.png"id="left1"/div
divimgsrc="./images/s0.png"id="left2"/div
/div
/div
divid="bi"imgsrc="./images/bi.png"http://div
div
divimgsrc="./images/heif.png"http://div
div
divimgsrc="./images/s0.png"id="right1"/div
divimgsrc="./images/s0.png"id="right2"/div
/div
/div
divid="out"
tablewidth="600px"height="600px"border="1px"
trheight="50px"td/tdtd/tdtd/tdtd/tdtd/tdtd/tdtd/tdtd/tdtd/tdtd/td/tr
trheight="50px"td/t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年團(tuán)內(nèi)活動(dòng)素養(yǎng)試題及答案
- 2025年入團(tuán)考試的核心要素與試題及答案
- 入團(tuán)考試2025年志愿服務(wù)試題及答案
- 建筑行業(yè)實(shí)務(wù)操作試題及答案2025
- 外語學(xué)習(xí)中的安全意識與試題及答案
- 提升護(hù)師素質(zhì)試題及答案
- 2024年財(cái)務(wù)報(bào)告的關(guān)鍵要素試題及答案
- 2025年考試焦點(diǎn)解析試題及答案
- 2025年入團(tuán)考試的必知試題及答案
- 無人機(jī)操作中的常見問題解答試題及答案
- GB/T 44577-2024商用電動(dòng)洗碗機(jī)性能測試方法
- 抖音主播合同范本
- DB50∕T 995-2020 新增耕地質(zhì)量評定技術(shù)規(guī)范
- 心血管內(nèi)科專病數(shù)據(jù)庫建設(shè)及研究
- 康復(fù)科并發(fā)癥二次殘疾
- 《工業(yè)機(jī)器人工作站應(yīng)用實(shí)訓(xùn)》項(xiàng)目三工業(yè)機(jī)器人涂膠工作站的應(yīng)用實(shí)訓(xùn)課件
- 土石壩(樞紐溢洪道)畢業(yè)設(shè)計(jì)
- (新版)拖拉機(jī)駕駛證科目一知識考試題庫500題(含答案)
- DL∕T 1664-2016 電能計(jì)量裝置現(xiàn)場檢驗(yàn)規(guī)程
- DL∕T 526-2013 備用電源自動(dòng)投入裝置技術(shù)條件
- 打掃衛(wèi)生勞動(dòng)合同范本
評論
0/150
提交評論