JavaScript實(shí)現(xiàn)的石頭剪刀布游戲源碼分享
這個(gè)游戲主要設(shè)計(jì)到兩點(diǎn):
首先是勝負(fù)運(yùn)算
由于石頭剪刀布是循環(huán)性的
石頭 殺 剪子
剪子 殺 布
布 殺 石頭
石頭 殺 剪子
。。。
根據(jù)以上特點(diǎn)找出規(guī)律,寫(xiě)出算法即可。
讓電腦隨機(jī)
這點(diǎn)比較容易,前面我有寫(xiě)過(guò)文章介紹,不明白的童鞋可以去看看。
隨機(jī)刷屏
其實(shí)這個(gè)效果不是游戲的關(guān)鍵性,但為了看起來(lái)更加互動(dòng),好玩,我就給加上了。這里用到了一個(gè)取模算法,根據(jù)余數(shù)去循環(huán)顯示即可達(dá)到效果。
界面截圖
最后上代碼
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>JS寫(xiě)的石頭剪子布游戲 - 瓊臺(tái)博客</title> <style type="text/css"> div{margin:20px auto;padding:10px;border:2px solid #999;width:200px;background:#ffe;} div#cu{font-weight:bold;font-size:30px;height:40px;color:red;} div#la{border:none;background:none;display:none;} span{color:red;font-weight:bold;} </style> <script type="text/javascript"> var se = null,time=20,you=0,arr=new Array('石頭','抹布','剪子'); function p(n){ you = n; document.getElementById('you').innerHTML=s(n); document.getElementById('st').disabled=true; document.getElementById('mb').disabled=true; document.getElementById('jz').disabled=true; document.getElementById('cu').innerHTML = '...'; se = setInterval('t()',50); } function agin(){ document.getElementById('st').disabled=false; document.getElementById('mb').disabled=false; document.getElementById('jz').disabled=false; document.getElementById('la').style.display = 'none'; document.getElementById('you').innerHTML = ''; document.getElementById('pc').innerHTML = ''; document.getElementById('cu').innerHTML = ''; document.getElementById('you').innerHTML= '請(qǐng)選擇'; } function bt(){ var pc = Math.floor(Math.random() * 3 + 1); document.getElementById('pc').innerHTML = s(pc); var str=''; if(pc==you){ str += '平局'; }else{ var b = pc-you; if(b>0){ if(b==1){ str += '電腦贏'; }else{ str += '你贏啦'; } }else{ b = b*-1; if(b==1){ str += '你贏啦'; }else{ str += '電腦贏'; } } } document.getElementById('la').style.display = 'block'; document.getElementById('cu').innerHTML = str; } function t(){ if(time>0){ document.getElementById('pc').innerHTML = arr[time%3]; time--; }else{ clearInterval(se); se = null; time = 20; bt(); } } function s(n){ if(n==1){ return '石頭'; }else if(n==2){ return '抹布'; }else{ return '剪子'; } } </script> </head> <body> <div> <p>你出什么?<span id="you">請(qǐng)選擇</span></p> <p><button id="st" onclick="p(1);">石頭</button></p> <p><button id="mb" onclick="p(2);">抹布</button></p> <p><button id="jz" onclick="p(3);">剪子</button></p> </div> <div> <p>電腦出?</p> <span style="" id="pc"></span> </div> <div id="cu"></div> <div id="la"><button id="agin" onclick="agin()">再來(lái)一次</button></div> </body> </html>
相關(guān)文章
javascript靜態(tài)頁(yè)面?zhèn)髦档娜N方法分享
這篇文章介紹了javascript靜態(tài)頁(yè)面?zhèn)髦档娜N方法及優(yōu)缺點(diǎn),有需要的朋友可以參考一下2013-11-11Javascript設(shè)計(jì)模式之發(fā)布訂閱模式
發(fā)布---訂閱模式又叫觀察者模式,它定義了對(duì)象間的一種一對(duì)多的關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)主題對(duì)象,當(dāng)一個(gè)對(duì)象發(fā)生改變時(shí),所有依賴(lài)于它的對(duì)象都將得到通知2022-12-12基于JavaScript實(shí)現(xiàn)生成名片、鏈接等二維碼
本文使用javascript技術(shù)實(shí)現(xiàn)生成名片、鏈接等二維碼的代碼,代碼簡(jiǎn)單易懂并附有注釋?zhuān)枰呐笥芽梢詤⒖枷卤疚?/div> 2015-09-09JS實(shí)現(xiàn)簡(jiǎn)單的二維矩陣乘積運(yùn)算
這篇文章主要介紹了JS實(shí)現(xiàn)簡(jiǎn)單的二維矩陣乘積運(yùn)算方法,涉及JavaScript基于數(shù)組操作實(shí)現(xiàn)矩陣運(yùn)算的功能,需要的朋友可以參考下2016-01-01javascript實(shí)現(xiàn)點(diǎn)擊商品列表checkbox實(shí)時(shí)統(tǒng)計(jì)金額的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)點(diǎn)擊商品列表checkbox實(shí)時(shí)統(tǒng)計(jì)金額的方法,涉及javascript鼠標(biāo)事件及頁(yè)面元素操作的相關(guān)技巧,需要的朋友可以參考下2015-05-05JavaScript實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03使用element-ui的upload組件上傳代碼包時(shí)遇到的問(wèn)題小結(jié)
這篇文章主要介紹了使用element-ui的upload組件上傳代碼包時(shí)遇到的問(wèn)題及總結(jié),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12基于JS實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音即文本朗讀
這篇文章主要為大家詳細(xì)介紹了JavaScript如何利用SpeechSynthesis實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音即文本朗讀的功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10最新評(píng)論