电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

基于JavaScript實現猜數字游戲代碼實例

瀏覽:113日期:2023-10-19 11:14:26

環境

vscode 1.46 Microsoft Edge 83

示例

以下內容為了解和熟悉 JavaScript,不需要理解,能夠復制粘貼并正確運行即可。

新建網頁模板

在 vscode 中新建一個 index.html 文件,然后輸入以下內容。

<!DOCTYPE html><html> <head> <meta charset='utf-8'> <title>猜數字游戲</title> <style> html { font-family: sans-serif; } body { width: 50%; max-width: 800px; min-width: 480px; margin: 0 auto; } .lastResult { color: white; padding: 3px; } </style> </head> <body> <h1>猜數字游戲</h1> <p>我剛才隨機選定了一個100以內的自然數。看你能否在 10 次以內猜中它。每次我都會告訴你所猜的結果是高了還是低了。</p> <div class='form'> <label for='guessField'>請猜數: </label> <input type='text' class='guessField'> <input type='submit' value='確定' class='guessSubmit'> </div> <div class='resultParas'> <p class='guesses'></p> <p class='lastResult'></p> <p class='lowOrHi'></p> </div> <script> // 開始編寫 JavaScript 代碼 </script> </body></html>

定義變量

首先將需要使用的變量都定義出來。

let randomNumber = Math.floor(Math.random() * 100) + 1;const guesses = document.querySelector(’.guesses’);const lastResult = document.querySelector(’.lastResult’);const lowOrHi = document.querySelector(’.lowOrHi’);const guessSubmit = document.querySelector(’.guessSubmit’);const guessField = document.querySelector(’.guessField’);let guessCount = 1;let resetButton;

定義猜數字主邏輯

function checkGuess() { let userGuess = Number(guessField.value); if (guessCount === 1) { guesses.textContent = ’上次猜的數:’; } guesses.textContent += userGuess + ’ ’; if (userGuess === randomNumber) { lastResult.textContent = ’恭喜你!猜對了’; lastResult.style.backgroundColor = ’green’; lowOrHi.textContent = ’’; setGameOver(); } else if (guessCount === 10) { lastResult.textContent = ’!!!GAME OVER!!!’; setGameOver(); } else { lastResult.textContent = ’你猜錯了!’; lastResult.style.backgroundColor = ’red’; if(userGuess < randomNumber) { lowOrHi.textContent = ’你猜低了!’; } else if(userGuess > randomNumber) { lowOrHi.textContent = ’你猜高了’; } } guessCount++; guessField.value = ’’; guessField.focus();}

結束游戲

function setGameOver() { guessField.disabled = true; guessSubmit.disabled = true; resetButton = document.createElement(’button’); resetButton.textContent = ’開始新游戲’; document.body.appendChild(resetButton); resetButton.addEventListener(’click’, resetGame);}

重置游戲

function resetGame() { guessCount = 1; const resetParas = document.querySelectorAll(’.resultParas p’); for (let i = 0 ; i < resetParas.length; i++) { resetParas[i].textContent = ’’; } resetButton.parentNode.removeChild(resetButton); guessField.disabled = false; guessSubmit.disabled = false; guessField.value = ’’; guessField.focus(); lastResult.style.backgroundColor = ’white’; randomNumber = Math.floor(Math.random() * 100) + 1;}

瀏覽器打開

用瀏覽器打開剛剛編寫的程序,試試游戲是否能夠正常運行。

附錄

源碼

<!DOCTYPE html><html><head> <meta charset='utf-8'> <title>猜數字游戲</title> <style> html { font-family: sans-serif; } body { width: 50%; max-width: 800px; min-width: 480px; margin: 0 auto; } .lastResult { color: white; padding: 3px; } </style></head><body> <h1>猜數字游戲</h1> <p>我剛才隨機選定了一個100以內的自然數。看你能否在 10 次以內猜中它。每次我都會告訴你所猜的結果是高了還是低了。</p> <div class='form'> <label for='guessField'>請猜數: </label> <input type='text' class='guessField'> <input type='submit' value='確定' class='guessSubmit'> </div> <div class='resultParas'> <p class='guesses'></p> <p class='lastResult'></p> <p class='lowOrHi'></p> </div> <script> let randomNumber = Math.floor(Math.random() * 100) + 1; const guesses = document.querySelector(’.guesses’); const lastResult = document.querySelector(’.lastResult’); const lowOrHi = document.querySelector(’.lowOrHi’); const guessSubmit = document.querySelector(’.guessSubmit’); const guessField = document.querySelector(’.guessField’); let guessCount = 1; let resetButton; function checkGuess() { let userGuess = Number(guessField.value); if (guessCount === 1) { guesses.textContent = ’上次猜的數:’; } guesses.textContent += userGuess + ’ ’; if (userGuess === randomNumber) { lastResult.textContent = ’恭喜你!猜對了’; lastResult.style.backgroundColor = ’green’; lowOrHi.textContent = ’’; setGameOver(); } else if (guessCount === 10) { lastResult.textContent = ’!!!GAME OVER!!!’; setGameOver(); } else { lastResult.textContent = ’你猜錯了!’; lastResult.style.backgroundColor = ’red’; if (userGuess < randomNumber) { lowOrHi.textContent = ’你猜低了!’; } else if (userGuess > randomNumber) { lowOrHi.textContent = ’你猜高了’; } } guessCount++; guessField.value = ’’; guessField.focus(); } guessSubmit.addEventListener(’click’, checkGuess); function setGameOver() { guessField.disabled = true; guessSubmit.disabled = true; resetButton = document.createElement(’button’); resetButton.textContent = ’開始新游戲’; document.body.appendChild(resetButton); resetButton.addEventListener(’click’, resetGame); } function resetGame() { guessCount = 1; const resetParas = document.querySelectorAll(’.resultParas p’); for (let i = 0; i < resetParas.length; i++) { resetParas[i].textContent = ’’; } resetButton.parentNode.removeChild(resetButton); guessField.disabled = false; guessSubmit.disabled = false; guessField.value = ’’; guessField.focus(); lastResult.style.backgroundColor = ’white’; randomNumber = Math.floor(Math.random() * 100) + 1; } </script></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 平面钻,法兰钻,三维钻-山东兴田阳光智能装备股份有限公司 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 电主轴-高速精密电主轴-高速电机厂家-瑞德沃斯品牌有限公司 | 电车线(用于供电给电车的输电线路)-百科 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 | 香蕉筛|直线|等厚|弧形|振动筛|香蕉筛厂家-洛阳隆中重工 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 博莱特空压机|博莱特-阿特拉斯独资空压机品牌核心代理商 | 山东柳店新能源科技有限公司| 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 安规电容|薄膜电容|陶瓷电容|智旭JEC安规电容厂家 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 储气罐,真空罐,缓冲罐,隔膜气压罐厂家批发价格,空压机储气罐规格型号-上海申容压力容器集团有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 聚氨酯复合板保温板厂家_廊坊华宇创新科技有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 天津力值检测-天津管道检测-天津天诚工程检测技术有限公司 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 |