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

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

JS原生2048小游戲源碼分享(全網最新)

瀏覽:112日期:2024-03-29 15:11:26

最近在學習算法方面的知識,看到了一個由算法主導的小游戲,這里給大家分享下代碼:

效果:

JS原生2048小游戲源碼分享(全網最新)

代碼:

<head> <meta charset='UTF-8'> <meta name='viewport' content='width=360px,user-scalable=no' /> <title>2048小游戲</title> <style>body,h1,div,table,tr,td{ margin: 0px; padding: 0px;}body{ background-color: rgb(0,0,0);}h1{ margin: 36px auto; text-align: center; color: rgba(255,255,255,0.7); font-family: '楷體'; font-size: 48px; text-shadow: 1px 2px 3px rgb(134,134,134);}div{ margin: 12px auto; line-height: 60px;}#box{ margin-top: -24px; width: 240px; height: 60px; text-align: center; font-weight: bold; color: rgb(255,255,255);}#box input{ border: 3px solid rgb(255,255,255); border-radius: 4px; box-shadow: 1px 2px 3px rgb(234,234,234);}#box input:focus{ outline-style: none;}table{ margin: 24px auto; border: 3px solid rgb(255,255,255); border-radius: 6px;}#random,td{ width: 60px; height: 60px; border: 2px solid rgb(255,255,255); border-radius: 18px; text-align: center; font-weight: bold; color: rgb(255,255,255);}td:hover{ cursor: pointer;} </style></head><body> <h1>2 0 4 8</h1><!-- 顯示得分及新游戲按鈕 --><div id='box'> 得分: <span id='span'>0</span> <input type='button' value='新游戲' /></div><!-- 顯示隨機數 --><div id='random'></div><!-- 游戲主要布局 --><table border='3px'> <tr><td></td><td></td><td></td><td></td> </tr> <tr><td></td><td></td><td></td><td></td> </tr> <tr><td></td><td></td><td></td><td></td> </tr> <tr><td></td><td></td><td></td><td></td> </tr></table></body><script type='text/javascript'> var span = document.getElementById('span'); var but = document.getElementById('but'); var td = document.getElementsByTagName('td'); //定義得分 var score = 0; //定義隨機數 var random = document.getElementById('random'); var showNums = [2,4,8,16,32,64,128,256,512,1024]; var showNum = 0; //定義背景色數組 var colors = ['rgb(255, 169, 182)','rgb(108, 251, 104)','rgb(255, 150, 46)','rgb(255, 121, 46)','rgb(255, 217, 46)','rgb(46, 200, 255)','rgb(46, 113, 255)','rgb(240, 46, 255)','rgb(46, 255, 175)','rgb(153, 134, 255)']; //初始化程序,生成隨機數 /* start */ function init(){var max = maxNum();var num = 0;for(var i=4;i > 0;i++){ if(max < Math.pow(2,i+1)){num = parseInt(Math.random()*i);break; }else if(max < 2048){continue; }else{num = parseInt(Math.random()*showNums.length);break; }}random.innerHTML = showNums[num];color(random);showNum = showNums[num]; } init(); /* end */ //獲取棋盤中的最大值 /* start */ function maxNum(){var max = 0;for(var i=0;i<td.length;i++){ if(td[i].innerHTML == ''){max = max; }else{if(parseInt(td[i].innerHTML) > max){ max = parseInt(td[i].innerHTML);}else{ max = max;} }}return max; } /* end */ //根據數字顯示背景顏色 /* start */ function color(obj){for(var i=0;i < colors.length;i++){ if(obj.innerHTML == Math.pow(2,i+1)){obj.style = 'background-color: '+colors[i]+';';break; }} } /* end */ //合并算法 /* start */ function offsetTop(obj,index){//合并上if(index > 3){ if(td[(index-4)].innerHTML == obj.innerHTML){td[(index-4)].innerHTML = '';td[(index-4)].style = 'background-color: rgba(0, 0, 0, 0);';return true; }}return false; } function offsetBottom(obj,index){//合并下if(index < 12){ if(td[(index+4)].innerHTML == obj.innerHTML){td[(index+4)].innerHTML = '';td[(index+4)].style = 'background-color: rgba(0, 0, 0, 0);';return true; }}return false; } function offsetLeft(obj,index){//合并左if(index!=0 && index!=4 && index!=8 && index!=12){ if(td[(index-1)].innerHTML == obj.innerHTML){td[(index-1)].innerHTML = '';td[(index-1)].style = 'background-color: rgba(0, 0, 0, 0);'; return true; }}return false; } function offsetRight(obj,index){//合并右if(index!=3 && index!=7 && index!=11 && index!=15){ if(td[(index+1)].innerHTML == obj.innerHTML){td[(index+1)].innerHTML = '';td[(index+1)].style = 'background-color: rgba(0, 0, 0, 0);';return true; }}return false; } /* end */ //判斷單元格是否合并 /* start */ function merge(obj,index){if(offsetTop(obj,index)){ if(offsetBottom(obj,index)){if(offsetLeft(obj,index)){ if(offsetRight(obj,index)){obj.innerHTML = parseInt(obj.innerHTML)*2;//合并上、下、左、右score += 16;merge(obj,index); }else{obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并上、下、左score += 8;merge(obj,index); }}else if(offsetRight(obj,index)){ obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并上、下、右 score += 8; merge(obj,index);}else{ obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并上、下 score += 4; merge(obj,index);} }else if(offsetLeft(obj,index)){if(offsetRight(obj,index)){ obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并上、左、右 score += 8; merge(obj,index);}else{ obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并上、左 score += 4; merge(obj,index);} }else if(offsetRight(obj,index)){obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并上、右score += 4;merge(obj,index); }else{obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并上score += 2;merge(obj,index); }}else if(offsetBottom(obj,index)){ if(offsetLeft(obj,index)){if(offsetRight(obj,index)){ obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并下、左、右 score += 8; merge(obj,index);}else{ obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并下、左 score += 4; merge(obj,index);} }else if(offsetRight(obj,index)){obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并下、右score += 4;merge(obj,index); }else{obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并下score += 2;merge(obj,index); }}else if(offsetLeft(obj,index)){ if(offsetRight(obj,index)){obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并左、右score += 4;merge(obj,index); }else{obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并左score += 2;merge(obj,index); }}else if(offsetRight(obj,index)){ obj.innerHTML = parseInt(obj.innerHTML)*2;//僅合并右 score += 2; merge(obj,index);} } /* end */ //main /* start */ function gameOver(){for(var i=0;i<td.length;i++){ if(td[i].innerHTML == ''){break; } if(i == 15){alert('很遺憾!本局游戲結束。。。'); }} } /* end */ //main /* start */ (function(){for(var i=0;i<td.length;i++){ var choose = td[i]; choose.index = i; choose.onclick = function(){if(this.innerHTML == ''){ this.innerHTML = showNum; merge(this,this.index); if(this.innerHTML >= 2048){this.innerHTML = '';this.style = 'background-color: rgba(0, 0, 0, 0);'; } color(this); init();}updateScore();gameOver(); }} })(); /* end */ //更新得分 /* start */ function updateScore(){if(score > 500){ span.style = 'color: rgb(255,0,0)';}else if(score > 100){ span.style = 'color: rgb(255,0,255)';}else if(score > 50){ span.style = 'color: rgb(255,255,0)';}else if(score > 20){ span.style = 'color: rgb(0,0,255)';}else if(score > 10){ span.style = 'color: rgb(0,255,0)';}span.innerHTML = score; } /* end */ //新游戲 /* start */ but.onclick = function(){location.reload(); } /* end */ </script></html>

到此這篇關于JS原生2048小游戲源碼分享的文章就介紹到這了,更多相關js 2048小游戲內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 上海网站建设-上海网站制作-上海网站设计-上海做网站公司-咏熠软件 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 99文库_实习生实用的范文资料文库站 | 户外健身路径_小区健身器材_室外健身器材厂家_价格-浩然体育 | 石栏杆_青石栏杆_汉白玉栏杆_花岗岩栏杆 - 【石雕之乡】点石石雕石材厂 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 健身器材-健身器材厂家专卖-上海七诚健身器材有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 活性炭-果壳木质煤质柱状粉状蜂窝活性炭厂家价格多少钱 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 光伏家 - 太阳能光伏发电_分布式光伏发电_太阳能光伏网 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 定坤静电科技静电消除器厂家-除静电设备 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 陕西华春网络科技股份有限公司 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 |