茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    javascript制作2048游戲
    來源:易賢網(wǎng) 閱讀:1027 次 日期:2015-04-01 16:44:27
    溫馨提示:易賢網(wǎng)小編為您整理了“javascript制作2048游戲”,方便廣大網(wǎng)友查閱!

    這幾天玩兒著2048這個游戲,突然心血來潮想練習(xí)下寫程序的思路,于是乎就模仿做了一個,到目前位置還沒有實現(xiàn)動態(tài)移動,不是很好看,不過玩兒著自己模仿的小游戲還是蠻爽的,哈哈

    2048.html

    <!DOCTYPE>

    <html xmlns="">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>2048</title>

    <link rel="stylesheet" type="text/css" href="css/2048.css" />

    <!-- <script type="text/javascript" src="> -->

    <script type="text/javascript" src="js/2048.js"></script>

    </head>

    <body>

    <div id="div2048">

    <a id="start">tap to start :-)</a>

    </div>

    </body>

    </html>

    2048.css

    @charset "utf-8";

    #div2048

    {

    width: 500px;

    height: 500px;

    background-color: #b8af9e;

    margin: 0 auto;

    position: relative;

    }

    #start

    {

    width: 500px;

    height: 500px;

    line-height: 500px;

    display: block;

    text-align: center;

    font-size: 30px;

    background: #f2b179;

    color: #FFFFFF;

    }

    #div2048 div.tile

    {

    margin: 20px 0px 0px 20px;

    width: 100px;

    height: 40px;

    padding: 30px 0;

    font-size: 40px;

    line-height: 40px;

    text-align: center;

    float: left;

    }

    #div2048 div.tile0{

    background: #ccc0b2;

    }

    #div2048 div.tile2

    {

    color: #7c736a;

    background: #eee4da;

    }

    #div2048 div.tile4

    {

    color: #7c736a;

    background: #ece0c8;

    }

    #div2048 div.tile8

    {

    color: #fff7eb;

    background: #f2b179;

    }

    #div2048 div.tile16

    {

    color:#fff7eb;

    background:#f59563;

    }

    #div2048 div.tile32

    {

    color:#fff7eb;

    background:#f57c5f;

    }

    #div2048 div.tile64

    {

    color:#fff7eb;

    background:#f65d3b;

    }

    #div2048 div.tile128

    {

    color:#fff7eb;

    background:#edce71;

    }

    #div2048 div.tile256

    {

    color:#fff7eb;

    background:#edcc61;

    }

    #div2048 div.tile512

    {

    color:#fff7eb;

    background:#ecc850;

    }

    #div2048 div.tile1024

    {

    color:#fff7eb;

    background:#edc53f;

    }

    #div2048 div.tile2048

    {

    color:#fff7eb;

    background:#eec22e;

    }

    2048.js

    function game2048(container)

    {

    this.container = container;

    this.tiles = new Array(16);

    }

    game2048.prototype = {

    init: function(){

    for(var i = 0, len = this.tiles.length; i < len; i++){

    var tile = this.newTile(0);

    tile.setAttribute('index', i);

    this.container.appendChild(tile);

    this.tiles[i] = tile;

    }

    this.randomTile();

    this.randomTile();

    },

    newTile: function(val){

    var tile = document.createElement('div');

    this.setTileVal(tile, val)

    return tile;

    },

    setTileVal: function(tile, val){

    tile.className = 'tile tile' + val;

    tile.setAttribute('val', val);

    tile.innerHTML = val > 0 ? val : '';

    },

    randomTile: function(){

    var zeroTiles = [];

    for(var i = 0, len = this.tiles.length; i < len; i++){

    if(this.tiles[i].getAttribute('val') == 0){

    zeroTiles.push(this.tiles[i]);

    }

    }

    var rTile = zeroTiles[Math.floor(Math.random() * zeroTiles.length)];

    this.setTileVal(rTile, Math.random() < 0.8 ? 2 : 4);

    },

    move:function(direction){

    var j;

    switch(direction){

    case 'W':

    for(var i = 4, len = this.tiles.length; i < len; i++){

    j = i;

    while(j >= 4){

    this.merge(this.tiles[j - 4], this.tiles[j]);

    j -= 4;

    }

    }

    break;

    case 'S':

    for(var i = 11; i >= 0; i--){

    j = i;

    while(j <= 11){

    this.merge(this.tiles[j + 4], this.tiles[j]);

    j += 4;

    }

    }

    break;

    case 'A':

    for(var i = 1, len = this.tiles.length; i < len; i++){

    j = i;

    while(j % 4 != 0){

    this.merge(this.tiles[j - 1], this.tiles[j]);

    j -= 1;

    }

    }

    break;

    case 'D':

    for(var i = 14; i >= 0; i--){

    j = i;

    while(j % 4 != 3){

    this.merge(this.tiles[j + 1], this.tiles[j]);

    j += 1;

    }

    }

    break;

    }

    this.randomTile();

    },

    merge: function(prevTile, currTile){

    var prevVal = prevTile.getAttribute('val');

    var currVal = currTile.getAttribute('val');

    if(currVal != 0){

    if(prevVal == 0){

    this.setTileVal(prevTile, currVal);

    this.setTileVal(currTile, 0);

    }

    else if(prevVal == currVal){

    this.setTileVal(prevTile, prevVal * 2);

    this.setTileVal(currTile, 0);

    }

    }

    },

    equal: function(tile1, tile2){

    return tile1.getAttribute('val') == tile2.getAttribute('val');

    },

    max: function(){

    for(var i = 0, len = this.tiles.length; i < len; i++){

    if(this.tiles[i].getAttribute('val') == 2048){

    return true;

    }

    }

    },

    over: function(){

    for(var i = 0, len = this.tiles.length; i < len; i++){

    if(this.tiles[i].getAttribute('val') == 0){

    return false;

    }

    if(i % 4 != 3){

    if(this.equal(this.tiles[i], this.tiles[i + 1])){

    return false;

    }

    }

    if(i < 12){

    if(this.equal(this.tiles[i], this.tiles[i + 4])){

    return false;

    }

    }

    }

    return true;

    },

    clean: function(){

    for(var i = 0, len = this.tiles.length; i < len; i++){

    this.container.removeChild(this.tiles[i]);

    }

    this.tiles = new Array(16);

    }

    }

    var game, startBtn;

    window.onload = function(){

    var container = document.getElementById('div2048');

    startBtn = document.getElementById('start');

    startBtn.onclick = function(){

    this.style.display = 'none';

    game = game || new game2048(container);

    game.init();

    }

    }

    window.onkeydown = function(e){

    var keynum, keychar;

    if(window.event){ // IE

    keynum = e.keyCode;

    }

    else if(e.which){ // Netscape/Firefox/Opera

    keynum = e.which;

    }

    keychar = String.fromCharCode(keynum);

    if(['W', 'S', 'A', 'D'].indexOf(keychar) > -1){

    if(game.over()){

    game.clean();

    startBtn.style.display = 'block';

    startBtn.innerHTML = 'game over, replay?';

    return;

    }

    game.move(keychar);

    }

    }

    以上所訴就是本文的全部內(nèi)容了,希望大家能夠喜歡。

    更多信息請查看IT技術(shù)專欄

    更多信息請查看腳本欄目
    易賢網(wǎng)手機網(wǎng)站地址:javascript制作2048游戲
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)