中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

JavaScript 2048 游戲實例代碼(簡單易懂)
來源:易賢網 閱讀:1740 次 日期:2016-07-16 13:15:57
溫馨提示:易賢網小編為您整理了“JavaScript 2048 游戲實例代碼(簡單易懂)”,方便廣大網友查閱!

使用javascript制作的2048小游戲非常好玩,有意思,下面給大家分享使用javascript代碼制作的2048游戲,需要的朋友參考下吧

直接給大家貼代碼了,覺得很滿意直接拿去。

名單

<!DOCTYPE html PUBLIC "-//WC//DTD XHTML . Transitional//EN" "http://www.w.org/TR/xhtml/DTD/xhtml-transitional.dtd">

<html xmlns="http://www.w.org//xhtml">

<head>

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

<title>無標題文檔</title>

<style>

header{display:block; margin: auto; width:%; text-align:center;}

header h{font-size:px; font-family:Arial, Helvetica, sans-serif; font-weight:bold;}

header #newgamebutton{display:block; margin:px auto; width:px; padding:px px; background-color:#fa; font-family:Arial; color:white; border-radius:px; text-decoration:none;}

header #newgamebutton:hover{background-color:#fb;}

header p{font-family:Arial; font-size:px; margin:px auto;}

#grid-container{width:px; height:px; padding:px; margin:px auto; background-color:#bbada; border-radius:px; position:relative;}

.grid-cell{width:px; height:px; border-radius:px; color:white; background-color:#cccb; position:absolute; font-family:Arial; font-weight:bold; font-size:px; line-height:px; text-align:center;}

.gameover{display:block; margin: auto; width:px; text-align:center; vertical-align:middle; position:absolute;}

.gameover p {

font-family: Arial;

font-size: px;

color: white;

margin: px auto;

margin-top: px;

}

.gameover span {

font-family: Arial;

font-size: px;

color: white;

margin: px auto;

}

#restartgamebutton {

display: block;

margin: px auto;

width: px;

padding: px px;

background-color: #fa;

font-family: Arial;

font-size: px;

color: white;

border-radius: px;

text-decoration: none;

}

#restartgamebutton:hover {

background-color: #fb;

}

#showGameover{width:px; padding:px px; background-color:#fa; font-family:Arial; color:white; border-radius:px; text-decoration:none; font-size:px; position:absolute;}

</style>

<script>

window.onload = function (){

//newgame();

var showScore = document.getElementById('score');

score = ;

init();

generateOneNumber();

generateOneNumber();

window.onkeydown = function (e){

var e = e || window.event;

switch(e.keyCode){

case :

if(canMoveLeft(board)){

moveLeft();

generateOneNumber();

isgameover();

}

break;

case :

if(canMoveUp(board)){

moveUp();

generateOneNumber();

isgameover();

}

break;

case :

if(canMoveRight(board)){

moveRight();

generateOneNumber();

isgameover();

}

break;

case :

if(canMoveDown(board)){

moveDown();

generateOneNumber();

isgameover();

}

break;

default :

break;

}

};

};

function generateOneNumber() {

if(!nospace(board)){

var randx = parseInt(Math.floor(Math.random() * ));

var randy = parseInt(Math.floor(Math.random() * ));

while (true) {

if (board[randx][randy] == ) {

break;

}

var randx = parseInt(Math.floor(Math.random() * ));

var randy = parseInt(Math.floor(Math.random() * ));

}

var randNumber = Math.random() < . ? : ;

board[randx][randy] = randNumber;

var gridCell = document.getElementById('grid-cell-'+randx+'-'+randy);

gridCell.innerHTML = randNumber;

//

}

else {

gameover();

}

}

function newgame() {

window.location.reload();

}

var board = new Array();

function init(){

for(var i=;i<;i++){

board[i] = new Array();

for(var j=;j<;j++){

board[i][j] = ;

var gridCell = document.getElementById('grid-cell-'+i+'-'+j);

gridCell.style.top = (+i*)+'px';

gridCell.style.left = (+j*)+'px';

}

}

}

function getNumberBackgroundColor(number) {

switch (number) {

case :return "#eeeda";break;

case :return "#edec";break;

case :return "#fb";break;

case :return "#f";break;

case :return "#fcf";break;

case :return "#feb";break;

case :return "#edcf";break;

case :return "#edcc";break;

case :return "#c";break;

case :return "#be";break;

case :return "#c";break;

case :return "#ac";break;

case :return "#c";break;

}

}

function getNumberColor(number) {

if (number <= ) {

return "#e"

}

return "white";

}

function nospace(board) {

for (var i = ; i < ; i++) {

for (var j = ; j < ; j++) {

if (board[i][j] == ) {

return false;

}

}

}

return true;

}

function canMoveLeft(board) {

for (var i = ; i < ; i++) {

for (var j = ; j < ; j++) {

if (board[i][j] != ) {

if (board[i][j - ] == || board[i][j - ] == board[i][j]) {return true; }

}

}

}

return false;

}

function moveLeft() {

for (var i = ; i < ; i++) {

for (var j = ; j < ; j++) {

if (board[i][j] != ) {

for (var k = j-; k > -; k--) {

if(board[i][k] == || board[i][k] == board[i][j]){

board[i][k] = board[i][k] + board[i][j];

board[i][j] = ;

var gridCell = document.getElementById('grid-cell-'+i+'-'+j);

gridCell.innerHTML = '';

var gridCellk = document.getElementById('grid-cell-'+i+'-'+k);

gridCellk.innerHTML = board[i][k];

gridCellk.style.backgroundColor = getNumberBackgroundColor(board[i][k]);

gridCell.style.backgroundColor = '#cccb';

gridCellk.style.color = getNumberColor(board[i][k]);

gridCell.style.color = 'white';

score += board[i][k];

var showScore = document.getElementById('score');

showScore.innerHTML = score;

j = k;

//

}

else {

break; //跳出 var k 的for循環

}

}

}

}

}

}

function canMoveUp(board) {

for (var j = ; j < ; j++) {

for (var i = ; i < ; i++) {

if (board[i][j] != ) {

if (board[i - ][j] == || board[i - ][j] == board[i][j]) {return true; }

}

}

}

return false;

}

function moveUp() {

for (var j = ; j < ; j++) {

for (var i = ; i < ; i++) {

if (board[i][j] != ) {

for (var k = i-; k > -; k--) {

if(board[k][j] == || board[k][j] == board[i][j]){

board[k][j] = board[k][j] + board[i][j];

board[i][j] = ;

var gridCell = document.getElementById('grid-cell-'+i+'-'+j);

gridCell.innerHTML = '';

var gridCellk = document.getElementById('grid-cell-'+k+'-'+j);

gridCellk.innerHTML = board[k][j];

gridCellk.style.backgroundColor = getNumberBackgroundColor(board[k][j]);

gridCell.style.backgroundColor = '#cccb';

gridCellk.style.color = getNumberColor(board[i][k]);

gridCell.style.color = 'white';

score += board[k][j];

var showScore = document.getElementById('score');

showScore.innerHTML = score;

i = k;

//

}

else {

break; //跳出 var k 的for循環

}

}

}

}

}

}

function canMoveRight(board) {

for (var i = ; i < ; i++) {

for (var j = ; j > -; j--) {

if (board[i][j] != ) {

if (board[i][j + ] == || board[i][j + ] == board[i][j]) {return true; }

}

}

}

return false;

}

function moveRight() {

for (var i = ; i < ; i++) {

for (var j = ; j > -; j--) {

if (board[i][j] != ) {

for (var k = j+; k < ; k++) {

if(board[i][k] == || board[i][k] == board[i][j]){

board[i][k] = board[i][k] + board[i][j];

board[i][j] = ;

var gridCell = document.getElementById('grid-cell-'+i+'-'+j);

gridCell.innerHTML = '';

var gridCellk = document.getElementById('grid-cell-'+i+'-'+k);

gridCellk.innerHTML = board[i][k];

gridCellk.style.backgroundColor = getNumberBackgroundColor(board[i][k]);

gridCell.style.backgroundColor = '#cccb';

gridCellk.style.color = getNumberColor(board[i][k]);

gridCell.style.color = 'white';

score += board[i][k];

var showScore = document.getElementById('score');

showScore.innerHTML = score;

j = k;

//

}

else {

break; //跳出 var k 的for循環

}

}

}

}

}

}

function canMoveDown(board) {

for (var j = ; j < ; j++) {

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

if (board[i][j] != ) {

if (board[i + ][j] == || board[i + ][j] == board[i][j]) {return true; }

}

}

}

return false;

}

function moveDown() {

for (var j = ; j < ; j++) {

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

if (board[i][j] != ) {

for (var k = i+; k < ; k++) {

if(board[k][j] == || board[k][j] == board[i][j]){

board[k][j] = board[k][j] + board[i][j];

board[i][j] = ;

var gridCell = document.getElementById('grid-cell-'+i+'-'+j);

gridCell.innerHTML = '';

var gridCellk = document.getElementById('grid-cell-'+k+'-'+j);

gridCellk.innerHTML = board[k][j];

gridCellk.style.backgroundColor = getNumberBackgroundColor(board[k][j]);

gridCell.style.backgroundColor = '#cccb';

gridCellk.style.color = getNumberColor(board[i][k]);

gridCell.style.color = 'white';

score += board[k][j];

var showScore = document.getElementById('score');

showScore.innerHTML = score;

i = k;

//

}

else {

break; //跳出 var k 的for循環

}

}

}

}

}

}

function isgameover() {

if (nospace(board) && nomove(board)) {

gameover();

}

}

function nomove(board) {

if (canMoveDown(board) || 

canMoveLeft(board) || 

canMoveRight(board) || 

canMoveUp(board)) {

return false;

}

return true;

}

function bounce(obj,top){

clearInterval(obj.timer);

var nSpeed = ;

var acceleration = ;

var Flag = ;

obj.timer = setInterval(function (){

nSpeed += acceleration;

nSpeed *= .;

if(obj.offsetTop + nSpeed >= top){

obj.style.top = top + 'px';

nSpeed *= -;

}else{

if(Math.abs(nSpeed) < && Math.abs(top-obj.offsetTop)<){

clearInterval(obj.timer);

}

else{

obj.style.top = obj.offsetTop + nSpeed + 'px';

}

}

},);

}

function gameover() {

//alert("gameover!");

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

gameover.id = 'showGameover';

gameover.innerHTML = 'GAME OVER';

var gridContainer = document.getElementById('grid-container');

gridContainer.appendChild(gameover);

var showGameover = document.getElementById('showGameover');

showGameover.style.left = (gridContainer.offsetWidth - showGameover.offsetWidth ) / + 'px';

bounce(showGameover,);

}

</script>

</head>

<body>

<header>

<!--<h> </h>-->

<a href="javascript:newgame();" id="newgamebutton"> New Game </a>

<p> score: <span id="score"></span></p>

<div id="grid-container">

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

<div class="grid-cell" id="grid-cell--"></div>

</div>

</header>

</body>

</html>

以上代碼還很滿意吧,都是些div+css方面的知識

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产精品美女久久久| 激情国产一区二区| 欧美日韩美女在线| 国产精品盗摄久久久| 一区二区三区波多野结衣在线观看| 亚洲影音一区| 一区二区三区欧美在线| 韩国精品在线观看| 欧美午夜免费影院| 亚洲视频1区2区| 欧美精品成人在线| 亚洲视频欧美视频| 国产精品久久久久久久久久ktv| 99亚洲视频| 国产精品视频免费观看| 久久久亚洲人| 伊人激情综合| 欧美国产视频日韩| 亚洲一级电影| 黄色成人片子| 欧美精品激情在线观看| 亚洲综合色丁香婷婷六月图片| 国产亚洲激情在线| 麻豆亚洲精品| 午夜精品国产| 亚洲黄一区二区| 国产精品高潮呻吟久久| 美女91精品| 亚洲综合精品自拍| 91久久精品国产91性色| 国产精品人人做人人爽| 欧美成人性网| 亚洲欧美卡通另类91av| 亚洲精品久久久久久久久久久| 国产精品sm| 欧美成人第一页| 欧美综合国产| 一区二区三区日韩在线观看| 欧美日韩国产黄| 巨乳诱惑日韩免费av| 亚洲自啪免费| 99精品国产在热久久| 在线看一区二区| 国产午夜一区二区三区| 国产精品超碰97尤物18| 欧美日本不卡视频| 男女激情视频一区| 久久久青草青青国产亚洲免观| 亚洲无吗在线| 日韩亚洲欧美精品| 亚洲性图久久| 亚洲一区二区在线看| 日韩视频在线一区二区| 一区二区三区在线免费视频| 国产精品亚发布| 国产精品成人免费| 亚洲人被黑人高潮完整版| 久久精品麻豆| 亚洲欧美精品在线| 亚洲性感美女99在线| 亚洲午夜精品久久久久久浪潮| 亚洲国产日韩欧美在线图片 | 国产人成一区二区三区影院| 欧美日韩国产91| 欧美激情在线有限公司| 免费高清在线一区| 免费视频一区二区三区在线观看| 久久久久一区二区| 久久综合九色九九| 美女精品网站| 欧美护士18xxxxhd| 欧美日韩另类视频| 好吊妞**欧美| 亚洲激情图片小说视频| 亚洲精品乱码久久久久久黑人| 亚洲国产日韩一级| 亚洲精品影院| 中文国产成人精品| 欧美亚洲视频| 牛牛国产精品| 欧美三区不卡| 国产亚洲一区在线| 亚洲国产第一| 一区二区欧美在线观看| 国产精品视频一二| 国产伦精品一区二区三区视频黑人| 国产精品无码永久免费888| 国产日韩综合| 亚洲国产精品视频| 亚洲精品影院| 亚洲综合不卡| 免费视频一区二区三区在线观看| 欧美理论电影在线观看| 国产欧美一区二区视频| 黑人一区二区| 亚洲香蕉伊综合在人在线视看| 久久精品二区| 欧美日韩综合久久| 亚洲第一精品久久忘忧草社区| 一区二区高清在线| 欧美成人午夜激情| 国产一区av在线| 亚洲无玛一区| 欧美精品久久久久久久免费观看 | 国产一区久久| 亚洲第一网站| 亚洲午夜一级| 欧美激情第三页| 国产欧美日韩一区| 99视频热这里只有精品免费| 久久久一二三| 国产午夜精品久久久久久免费视| 亚洲精品乱码久久久久久按摩观 | 亚洲一区免费网站| 欧美成人综合| 国产酒店精品激情| 亚洲日本欧美在线| 久久综合给合久久狠狠狠97色69| 欧美性色综合| 亚洲国产99| 久久精品电影| 国产日韩欧美在线播放不卡| 1769国产精品| 欧美一区二区高清| 欧美高清不卡| 国产一区99| 一本色道久久综合亚洲精品婷婷| 国产久一道中文一区| 国产精品美女www爽爽爽| 国内精品久久久久久| 欧美在线观看天堂一区二区三区| 欧美日韩喷水| 国产精品久久久久91| 一区二区av| 亚洲美女av黄| 欧美激情性爽国产精品17p| 欧美日韩亚洲91| 9久草视频在线视频精品| 亚洲欧洲日产国产综合网| 老司机亚洲精品| 久久午夜激情| 伊人久久婷婷| 亚洲麻豆视频| 欧美激情性爽国产精品17p| 久久伊人一区二区| 在线观看视频亚洲| 在线亚洲国产精品网站| 欧美精品久久天天躁| 欧美精品九九99久久| 亚洲激情综合| 亚洲国产精品电影| 欧美精品自拍| 欧美.www| 日韩视频欧美视频| 在线亚洲精品福利网址导航| 欧美视频在线播放| 欧美日韩久久精品| 性欧美暴力猛交69hd| 亚洲制服av| 狠狠久久婷婷| 亚洲天堂av电影| 国产精品日本精品| 红桃视频亚洲| 亚洲影院免费观看| 国内自拍一区| 欧美一区二区三区免费观看视频| 国产日韩久久| 亚洲午夜精品| 韩国亚洲精品| 亚洲小视频在线| 国产欧美日韩亚洲一区二区三区| 91久久综合亚洲鲁鲁五月天| 国产精品久久久久久久一区探花| 136国产福利精品导航| 国产精品久久久久天堂| 亚洲精品国产精品国自产在线| 国产精品视频久久一区| 99精品视频免费| 精品成人久久| 久久精品女人的天堂av| 亚洲精品影院在线观看| 欧美成人一区二区三区| 欧美影片第一页| 国产日韩欧美二区| 欧美日韩国产小视频在线观看| 伊人色综合久久天天五月婷| 欧美视频在线一区二区三区| 亚洲国产精品一区二区第一页| 欧美 日韩 国产在线| 欧美一区二区三区久久精品茉莉花| 欧美亚州韩日在线看免费版国语版| 欧美在线影院| 在线观看欧美日韩国产| 国产欧美在线观看一区| 亚洲欧美在线一区二区| 亚洲视频网站在线观看| 国产精品视频一二三| 国产精品成人一区二区三区夜夜夜| 亚洲一区二区三区免费视频 | 在线精品福利|