如何在CentOS上安装一个20487k7k小游戏2048

Java完美实现2048小游戏
投稿:hebedich
字体:[ ] 类型:转载 时间:
本文给大家分享的是一则根据网友的代码改编的2048小游戏的源码,个人认为已经非常完美了,推荐给大家,有需要的小伙伴可以参考下。
完美地模仿了2048游戏,是根据网友的一个2048改的。
Block.java
import javax.swing.*;
import java.awt.*;
public class Block extends JLabel
public Block()
value = 0;//初始化值为0
setFont(new Font("font", Font.PLAIN, 40));//设定字体
setBackground(Color.gray);//设定初始颜色为灰色
public int getValue()//获取值
public void setValue(int value)
this.value =
String text = String.valueOf(value);
if (value != 0)
setText(text);
setText("");//如果值为0则不显示
setColor();
public void setColor() //根据值的不同设定不同的背景颜色、label字体
switch (value)
setBackground(Color.gray);
setBackground(new Color(238, 228, 218));
setBackground(new Color(238, 224, 198));
setBackground(new Color(243, 177, 116));
setBackground(new Color(243, 177, 116));
setBackground(new Color(248, 149, 90));
setBackground(new Color(249, 94, 50));
setBackground(new Color(239, 207, 108));
setBackground(new Color(239, 207, 99));
setBackground(new Color(239, 203, 82));
case 1024:
setBackground(new Color(239, 199, 57));
case 2048:
setBackground(new Color(239, 195, 41));
case 4096:
setBackground(new Color(255, 60, 57));
My2048.java
import java.awt.*;
import javax.swing.*;
public class My2048 extends JFrame
public My2048()//构造函数
setTitle("2048");//设置标题
setSize(400, 400);//设定窗口大小
setLocation(500, 200);//设定窗口起始位置
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new GridLayout(4, 4, 5, 5));//设定布局方式为GridLayout型
new Operation(this);
this.setVisible(true);//设为可视
public static void main(String args[]) //程序入口点
UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");//设定UI
} //接受抛出的异常
catch (ClassNotFoundException | InstantiationException| IllegalAccessException | UnsupportedLookAndFeelException e)
e.printStackTrace();
JFrame.setDefaultLookAndFeelDecorated(true);//设定Frame的缺省外观
new My2048();
Operation.java
import java.awt.event.*;
import javax.swing.*;
public class Operation implements KeyListener
Block[]//用于储存16个数据
public boolean up,down,left,
int moveF//用于累计移动的次数
boolean numF//用于判断是否还能加入新的数字
public Operation(JFrame frame)
this.panel = (JPanel)frame.getContentPane();//构造出panel
block = new Block[16];//构造出长度为16的数组
numFlag =//初始化
moveFlag = 0;
up=down=left=right=
addBlock();
for (int i = 0; i & 2; i++)
appearBlock();
frame.addKeyListener(this);
private void addBlock()
for (int i = 0; i & 16; i++) //往panel里加入block
block[i] = new Block();
block[i].setHorizontalAlignment(JLabel.CENTER);// 不透明的标签
block[i].setOpaque(true);
panel.add(block[i]);
public void appearBlock()
while (numFlag) //当还能加入随机的一个新的值得时候
int index = (int) (Math.random() * 16);//取一个0到15的随机整数,这个数作为随机加入盘中的2或4的位置
if (block[index].getValue() == 0)//如果这个数所在的block数组中值为0,即在为空的时候,加入一个2或4的数字
if (Math.random() & 0.5)
block[index].setValue(2);
block[index].setValue(4);
//跳出while
public void judgeAppear() //统计block数组中是否含有值为0的元素,若没有,则numFlag变为false
int sum = 0;
for (int i = 0; i & 16; i++)
if (block[i].getValue() != 0)
if (sum == 16)
public int Find(int i,int j,int a,int b)
while(i&b&&i&=a)
if(block[i].getValue()!=0)
return -1;
public void upBlock()
int i=0,j=0;int t=0;int valueJ=0;int valueI=0;int index=0;
for(i=0;i&4;i++)
for(j=i+4;j&16;j+=4)
valueJ=0; valueI=0;
if(block[index].getValue()==0)
t=Find(index,4,0,16);
block[index].setValue(block[t].getValue());
block[t].setValue(0);
valueI=block[index].getValue();
if(block[j].getValue()==0)
t=Find(j,4,0,16);
block[j].setValue(block[t].getValue());
block[t].setValue(0);
valueJ=block[j].getValue();
if(valueI==valueJ&&valueI!=0&&valueJ!=0)
block[index].setValue(valueI+valueJ);
block[j].setValue(0);
public void downBlock() {
int i=0,j=0;int t=0;int valueJ=0;int valueI=0;int index=0;
for(i=12;i&16;i++)
for(j=i-4;j&=0;j-=4)
valueJ=0; valueI=0;
if(block[index].getValue()==0)
t=Find(index,-4,0,16);
block[index].setValue(block[t].getValue());
block[t].setValue(0);
valueI=block[index].getValue();
if(block[j].getValue()==0)
t=Find(j,-4,0,16);
block[j].setValue(block[t].getValue());
block[t].setValue(0);
valueJ=block[j].getValue();
if(valueI==valueJ&&valueI!=0&&valueJ!=0)
block[index].setValue(valueI+valueJ);
block[j].setValue(0);
public void rightBlock()
int i=0,j=0;int t=0;int valueJ=0;int valueI=0;int index=0;
for(i=3;i&16;i+=4)
for(j=i-1;j&i-4;j--)
valueJ=0; valueI=0;
if(block[index].getValue()==0)
t=Find(index,-1,i-3,index+1);
block[index].setValue(block[t].getValue());
block[t].setValue(0);
valueI=block[index].getValue();
if(block[j].getValue()==0)
t=Find(j,-1,i-3,j+1);
block[j].setValue(block[t].getValue());
block[t].setValue(0);
valueJ=block[j].getValue();
if(valueI==valueJ&&valueI!=0&&valueJ!=0)
block[index].setValue(valueI+valueJ);
block[j].setValue(0);
public void leftBlock()
int i=0,j=0;int t=0;int valueJ=0;int valueI=0;int index=0;
for(i=0;i&16;i+=4)
for(j=i+1;j&i+4;j++)
valueJ=0; valueI=0;
if(block[index].getValue()==0)
t=Find(index,1,index,i+4);
block[index].setValue(block[t].getValue());
block[t].setValue(0);
valueI=block[index].getValue();
if(block[j].getValue()==0)
t=Find(j,1,j,i+4);
block[j].setValue(block[t].getValue());
block[t].setValue(0);
valueJ=block[j].getValue();
if(valueI==valueJ&&valueI!=0&&valueJ!=0)
block[index].setValue(valueI+valueJ);
block[j].setValue(0);
public void over()
if (numFlag ==false&& up==false&&down==false&&left==false&&right==false) //当不能添加元素,并且不可移动的步数超过36就输了,输了的时候在盘中央显示GAMEOVER
block[4].setText("G");
block[5].setText("A");
block[6].setText("M");
block[7].setText("E");
block[8].setText("O");
block[9].setText("V");
block[10].setText("E");
block[11].setText("R");
block[11].addMouseListener(new MouseAdapter() {public void mousePressed(MouseEvent e){reStart();}});
public void win() //同OVER
block[0].setText("Y");
block[1].setText("O");
block[2].setText("U");
block[13].setText("W");
block[14].setText("I");
block[15].setText("N");
block[15].addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
reStart();
public void reStart()//重启游戏,和构造函数类似,不在累述
moveFlag=0;
up=down=left=right=
for(int i=0;i&16;i++)
block[i].setValue(0);
for (int i = 0; i & 2; i++)
appearBlock();
public void keyPressed(KeyEvent e) //判断按的上下左右键,并依次调用移动函数、判断函数、添加函数、判断是否输掉的函数
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
upBlock();}
judgeAppear();
appearBlock();
if(numFlag==false)
up=down=left=right=
case KeyEvent.VK_DOWN:
downBlock();}
judgeAppear();
appearBlock();
if(numFlag==false)
up=down=left=right=
case KeyEvent.VK_LEFT:
leftBlock();}
judgeAppear();
appearBlock();
if(numFlag==false)
up=down=left=right=
case KeyEvent.VK_RIGHT:
if(right){
rightBlock();}
judgeAppear();
appearBlock();
if(numFlag==false)
up=down=left=right=
public void keyTyped(KeyEvent e) {
public void keyReleased(KeyEvent e) {
以上所述就是本文给大家分享的关于java完美实现2048小游戏的全部代码了,希望对大家学习java能够有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具如何在CentOS上安装一个2048小游戏
时间: 19:20:03
&&&& 阅读:158
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&如何在centos上安装一个2048小游戏
  最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦
  由于我个人的编程能力不强,所以我就在网上找到了一个C语言版的2048游戏小程序,我把它放到我的百度网盘上,可以供大家下载(链接:/s/1jIutb3g 密码:mu9z),然后我们把这个程序给复制到CentOS系统下,在进行下一步的工作。我们可以在CentOS上安装一个软件,这样可以直接将程序文件拷进CentOS中,在联网的情况下:
&在安装好了软件以后,我们可以现在自己的的家目录下面创建一个文件夹,我的命名是2048.dir,然后,进入2048.dir这个文件夹,执行命令rz , 我们可以将小游戏的源文件拷进这个目录下
接下来,我们就要进行编译啦,如果你的CentOS上没有安装gcc编译器的话,我们在以在联网的情况下安装一个:
yum -y install gcc
我们可以通过一个命令来看看我们是否安装了gcc,如图我们知道,gcc已经安装好了。
接下来,我们用过一条命令,将我们的小程序编译程可执行文件
gcc <span style="color: #48.c -o <span style="color: #48
其实这时候,我们在当前目录下执行 ./2048 就可以玩游戏的,但是为了我们可以在每个文件夹下都可以畅快的玩游戏,我们创建一个软链接到/usr/local/bin/下。
ln -s /root/<span style="color: #48.dir/<span style="color: #48 /usr/local/bin/<span style="color: #48
最后,我们可以在任何目录下畅快的玩这个小游戏啦^_^。
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/duzhaoqi/p/7201901.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!搞定2048_搞定2048html5游戏_4399h5游戏-
分类:&&|&&大小:1.25M&&|&&日期:
请记住本站网址 ,点击,方便下次再玩。
电脑上玩HTML5游戏建议使用360极速、搜狗高速、谷歌、火狐等浏览器
此游戏适合设备:iPhone&nbsp&nbspiPad&nbsp&nbsp安卓
鼠标点击切换,拖动移动或者下落。
游戏加载完毕点击多次游戏界面即可开始游戏
考考你的智商,获得高分吧!
请记住本站网址 ,点击,方便下次再玩。 《搞定2048》小游戏由4399用户提供。
相关游戏推荐
精彩专题推荐
12345678910
12345678910
文明办网文明上网举报电话:&|&举报邮箱:&||
Copyright & 2004 -
All Rights Reserved. 四三九九网络股份有限公司&版权所有
微信扫一扫关注4399小游戏原生js编写2048小游戏
作者:Reber
字体:[ ] 类型:转载 时间:
本文主要介绍了用原生js编写2048小游戏的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
代码如下:
&!DOCTYPE html&
&title& 2048-game &/title&
&meta charset="utf-8" /&
&style media="screen"&
background-color: #9DA5C3;
opacity: 0.5;
z-index: 1;
.clear:after {
content: "";
.scoreShow {
height: 50
text-align:
line-height: 50
text-decoration:
background-color: #bbada0;
font-size: 36
border-radius: 10
width: 480
height: 50
font-size: 25
#gridPanel {
width: 480
height: 480
background-color: #bbada0;
border-radius: 10
z-index: 1;
width: 100
height: 100
border-radius: 6
background-color: #ccc0b3;
margin: 16px 0 0 16
font-size: 60
text-align:
line-height: 100
background-color: #eee3da
background-color: #ede0c8
background-color: #f2b179
background-color: #f59563
background-color: #f67c5f
background-color: #f65e3b
background-color: #edcf72
background-color: #edcc61
background-color: #9c0
background-color: #33b5e5
background-color: #09c
background-color: #a6c
background-color: #93c
color: #776e65
#gameover {
width: 100%;
left: 50%;
right: 50%;
width: 220
height: 200
border-radius: 10
background-color:
margin-left: -110
text-align:
z-index: 5;
#gameover&a {
display: inline-
width: 170
height: 50
border-radius: 10
text-decoration:
background-color: #9F8D77;
font-size: 36
&div id="game"&
&div class="head clear"&
&div class="scoreShow left"&
&span&Score:&/span&
&span id="score"&&/span&
&div class="selction right" onclick="getModel(event)"&
&a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="model" value="3"&3X3&/a&
&a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="model" value="4"&4X4&/a&
&a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="model" type="button"&5X5&/a&
&a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="model" type="button"&6X6&/a&
&!-- &input type="text" id="model"& --&
&!-- &button type="button" name="button" id="set"&设置游戏&/button& --&
&div id="gridPanel"&
&div id="gameover"&
&h1 id="Score"&&/h1&
&a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" id="again" onclick="obj.gameStart()"&Try again&/a&
&script type="text/javascript"&
var arr = [];
function $(id) {
return document.getElementById(id);
function C(cls) {
return document.getElementsByClassName(cls);
var obj = {
f: 0, //r行 c列 f查找的下一位置
createEle: 0, //是否需要创建元素
eleFragment: "", //文档片段变量
//游戏开始
gameStart: function() {
obj.init();
document.onkeydown = function(e) { //自动获得事件对象
switch (e.keyCode) { //判断按键号
obj.keyCd = 1;
obj.moveLeft();
obj.keyCd = 2;
obj.moveUp();
obj.keyCd = 1;
obj.moveRight();
obj.keyCd = 2;
obj.moveDown();
$("score").innerHTML = obj. //更新分数
init: function() {
obj.eleFragment = document.createDocumentFragment();
for (r = 0; r & obj.ROW; r++) {
arr.push([]);
for (c = 0; c & obj.CELL; c++) {
arr[r][c] = 0;
if (obj.createEle == 1) {
obj.create(r, c);
if (obj.createEle == 1) {
obj.createEle = 0;
$("gridPanel").innerHTML = ""; //清空原有的元素
$("gridPanel").appendChild(obj.eleFragment); //添加元素
obj.score = 0;
$("score").innerHTML = obj.
$("game").style.display = "none";
$("gameover").style.display = "none";
obj.random(); //开始游戏随机生成两个数
obj.random();
obj.updateView();
//创建div元素,添加到gridPanel中
create: function(r, c) {
var increment = 14,
grWidth, grHeight, grMarginTop, grMarginLeft, ceWidth, ceH
grid = document.createElement("div");
cell = document.createElement("div");
grid.id = "g" + r +
grid.className = "grid";
cell.id = "c" + r +
cell.className = "cell";
if (obj.ROW == 3) {
increment = 24;
} else if (obj.ROW == 4) {
increment = 18;
grWidth = grHeight = ceWidth = ceHight = 66 + (6 - obj.ROW) * //优化后
grMarginTop = grMarginLeft = (480 - grWidth * obj.ROW) / (obj.ROW + 1);
grid.style.width = grWidth + "px";
grid.style.height = grHeight + "px";
grid.style.marginTop = grMarginTop + "px";
grid.style.marginLeft = grMarginLeft + "px";
cell.style.width = ceWidth + "px";
cell.style.height = ceHight + "px";
cell.style.top = grMarginTop + r * (grMarginTop + ceWidth) + "px";
cell.style.left = grMarginLeft + c * (grMarginLeft + ceHight) + "px";
cell.style.lineHeight = ceHight + "px";
cell.style.fontSize = 30 + (6 - obj.ROW) * 10 + "px";
/*if (obj.ROW == 3) {
grid.style.width = "140px";
grid.style.height = "140px";
grid.style.margin = "15px 0 0 15px";
cell.style.width = "140px";
cell.style.height = "140px";
cell.style.top = 15 + r * 155 + "px"; //设置距离上一位置的高度
cell.style.left = 15 + c * 155 + "px"; //设置离左一位置的距离
cell.style.lineHeight = "140px";
} else if (obj.ROW == 4) {
grid.style.width = "100px";
grid.style.height = "100px";
grid.style.margin = "16px 0 0 16px";
cell.style.width = "100px";
cell.style.height = "100px";
cell.style.top = 16 + r * 116 + "px";
cell.style.left = 16 + c * 116 + "px";
cell.style.lineHeight = "100px";
} else if (obj.ROW == 5) {
grid.style.width = "75px";
grid.style.height = "75px";
grid.style.margin = "17.5px 0 0 17.5px";
cell.style.width = "75px";
cell.style.height = "75px";
cell.style.top = 17.5 + r * 92.5 + "px";
cell.style.left = 17.5 + c * 92.5 + "px";
cell.style.fontSize = "40px";
cell.style.lineHeight = "75px";
} else if (obj.ROW == 6) {
grid.style.width = "66px";
grid.style.height = "66px";
grid.style.margin = "12px 0 0 12px";
cell.style.width = "66px";
cell.style.height = "66px";
cell.style.top = 12 + r * 78 + "px";
cell.style.left = 12 + c * 78 + "px";
cell.style.fontSize = "30px";
cell.style.lineHeight = "66px";
obj.eleFragment.appendChild(grid);
obj.eleFragment.appendChild(cell);
//随机产生一个新的数
random: function() {
while (1) {
var row = Math.floor(Math.random() * obj.ROW);
var cell = Math.floor(Math.random() * obj.CELL);
if (arr[row][cell] == 0) { //判断生成的随机数位置为0才随机生成2或4
arr[row][cell] = (Math.random() & 0.5) &#63; 4 : 2;
// var row = Math.floor(Math.random() * 4);
// var cell = Math.floor(Math.random() * 4);
// if (arr[row][cell] == 0) { //判断生成的随机数位置为0才随机生成2或4
// arr[row][cell] = (Math.random() & 0.5) &#63; 4 : 2;
// obj.random();//递归影响执行效率
//更新页面
updateView: function() {
var win = 0;
for (r = 0; r & obj.ROW; r++) {
for (c = 0; c & obj.CELL; c++) {
if (arr[r][c] == 0) { //值为0的不显示
$("c" + r + c).innerHTML = ""; //0不显示
$("c" + r + c).className = "cell" //清除样式
$("c" + r + c).innerHTML = arr[r][c];
$("c" + r + c).className = "cell n" + arr[r][c]; //添加不同数字的颜色
if (obj.ROW == 3 && arr[r][c] == 1024) {
} else if (obj.ROW == 4 && arr[r][c] == 2048) {
} else if (obj.ROW == 5 && arr[r][c] == 4096) {
} else if (obj.ROW == 6 && arr[r][c] == 8192) {
if (win == 1) { //通关
$("game").style.display = "block";
$("gameover").style.display = "block";
$("Score").innerHTML = "You win!&br&Score:" + obj.
if (obj.isGameOver()) { //游戏失败
$("game").style.display = "block";
$("gameover").style.display = "block";
$("Score").innerHTML = "GAME OVER!&br&Score:" + obj.
console.log("gameover");
//游戏失败
isGameOver: function() {
for (r = 0; r & obj.ROW; r++) {
for (c = 0; c & obj.CELL; c++) {
if (arr[r][c] == 0) { //有0还不是gameover
} else if (c != obj.CELL - 1 && arr[r][c] == arr[r][c + 1]) { //左往右 前一个和下一个不相等
} else if (r != obj.ROW - 1 && arr[r][c] == arr[r + 1][c]) { //上往下 上一个和下一个不相等
//查找下一个不为0的数值的位置
find: function(r, c, start, condition, direction) {
if (obj.keyCd == 2) { //上下按键
if (direction == 1) { //向上按键 f++
for (var f = f & f += direction) {
if (arr[f][c] != 0) {
} else { //向下按键 f--
for (var f = f &= f += direction) {
if (arr[f][c] != 0) {
} else { //左右按键
if (direction == 1) { //左按键 f++
for (var f = f & f += direction) {
if (arr[r][f] != 0) {
} else { //右按键 f--
for (var f = f &= f += direction) {
if (arr[r][f] != 0) {
//循环结束仍然没有找到!=0的数值,返回null
//左按键的处理
dealToLeft: function(r) {
for (c = 0; c & obj.ROW; c++) {
next = obj.find(r, c, c + 1, obj.CELL, 1); //找出第一个不为0的位置
if (next == null) //没有找到就返回
//如果当前位置为0
if (arr[r][c] == 0) {
arr[r][c] = arr[r][next]; //把找到的不为0的数值替换为当前位置的值
arr[r][next] = 0; //找到的位置清0
c--; //再次循环多一次,查看后面否有值与替换后的值相同,
} else if (arr[r][c] == arr[r][next]) { //如果当前位置与找到的位置数值相等,则相加
arr[r][c] *= 2;
arr[r][next] = 0;
obj.score += arr[r][c];
move: function(itertor) {
var before, //没处理前
//after处理后
before = arr.toString();
itertor(); //执行for函数
after = arr.toString();
if (before != after) { //前后对比,如果不同就update
obj.random();
obj.updateView();
moveLeft: function() {
obj.move(function() {
for (r = 0; r & obj.ROW; r++) {
obj.dealToLeft(r);
// if 当前位置 不为零
// 从当前位置,下一个成员开始,遍历,
// 如果找到,与当前位置相等的数,
// 两者相加,并把不为零的成员,设置为零
// 如果 当前位置是 零
// 从当前位置下一个成员开始遍历
// 如果找到 第一个不为零的成员
// 当前位置数值设置为这个不为零的成员的值 ,并且把那个不为零的成员设置为 0
//右按键处理
dealToRight: function(r) {
for (c = obj.CELL - 1; c &= 0; c--) {
next = obj.find(r, c, c - 1, 0, -1); //找出第一个不为0的位置
if (next == null) //没有找到就返回
//如果当前位置为0
if (arr[r][c] == 0) {
arr[r][c] = arr[r][next]; //把找到的不为0的数值替换为当前位置的值
arr[r][next] = 0; //找到的位置清0
c++; //再次循环多一次,查看后面否有值与替换后的值相同,
} else if (arr[r][c] == arr[r][next]) { //如果当前位置与找到的位置数值相等,则相加
arr[r][c] *= 2;
arr[r][next] = 0;
obj.score += arr[r][c];
moveRight: function() {
obj.move(function() {
for (r = 0; r & obj.ROW; r++) {
obj.dealToRight(r);
//上按键处理
dealToUp: function(c) {
for (r = 0; r & obj.ROW; r++) {
next = obj.find(r, c, r + 1, obj.ROW, 1); //找出第一个不为0的位置
if (next == null)
//如果当前位置为0
if (arr[r][c] == 0) {
arr[r][c] = arr[next][c]; //把找到的不为0的数值替换为当前位置的值
arr[next][c] = 0; //找到的位置清0
r--; //再次循环多一次,查看后面否有值与替换后的值相同
} else if (arr[r][c] == arr[next][c]) { //如果当前位置与找到的位置数值相等,则相加
arr[r][c] *= 2;
arr[next][c] = 0;
obj.score += arr[r][c];
moveUp: function() {
obj.move(function() {
for (c = 0; c & obj.CELL; c++) {
obj.dealToUp(c);
//下按键处理
dealToDown: function(c) {
for (r = obj.ROW - 1; r &= 0; r--) {
next = obj.find(r, c, r - 1, 0, -1); //找出第一个不为0的位置
if (next == null) {
//如果当前位置为0
if (arr[r][c] == 0) {
arr[r][c] = arr[next][c]; //把找到的不为0的数值替换为当前位置的值
arr[next][c] = 0; //找到的位置清0
r++; //再次循环多一次,查看后面否有值与替换后的值相同
} else if (arr[r][c] == arr[next][c]) { //如果当前位置与找到的位置数值相等,则相加
arr[r][c] *= 2;
arr[next][c] = 0;
obj.score += arr[r][c];
moveDown: function() {
obj.move(function() {
for (c = 0; c & obj.CELL; c++) {
obj.dealToDown(c);
window.onload = function() {
obj.createEle = 1;
obj.gameStart();
//切换模式
function getModel(e) { //事件冒泡获取a元素
var a = e.target,
modelValue = 4;
if (a.nodeName == "A") {
if (a.innerHTML == "3X3") {
modelValue = 3;
} else if (a.innerHTML == "4X4") {
modelValue = 4;
} else if (a.innerHTML == "5X5") {
modelValue = 5;
} else if (a.innerHTML == "6X6") {
modelValue = 6;
obj.ROW = obj.CELL = modelV
obj.createEle = 1; //需要创建格子div元素的标志
obj.gameStart();
// var modelValue = parseInt($("model").value);
// if (isNaN(modelValue)) {
// modelValue = 4; //默认是4*4
// if (modelValue &= 2 || modelValue & 6) //2格或者大于6格无效
// obj.ROW = modelV
// obj.CELL = modelV
// obj.createEle = 1;
// obj.gameStart();
// console.log(modelValue);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 c语言2048小游戏规则 的文章

 

随机推荐