2048网页游戏源码下载_下载2048中文版游戏

hacker|
84

文章目录:

急求游戏2048源代码,要求使用C++和HGE编写,充分体现面向对象编程的特点。

一看就知道是作业,具体代码还是自己写吧,我可以给一些思路。

构建一个类来存储矩阵的状态,以及操作(上下左右)的代码,一个简单的实现方案是只需要写向一个方向移动的代码,然后通过转换矩阵的方向来实现其他的方向。

面向对象嘛你,可以父类定义N*N矩阵,只实现一个移动方向,子类通过继承实现4*4矩阵,和各个移动方向。

那个大神有完整的java,eclipse,2048游戏的源代码,全部拷贝粘贴就能用的,给一个,在线等,急!!!

网上的java代码在eclipse里运行方法:

1.打开eclipse,点击项目的空白处,选择import;

2.选择Existing Project into Workspace,点击next,找到的java代码,导入到eclipse中;

3.导入成功之后,选择项目,鼠标右键,选择run as,选择一个运行方式,然后运行即可。

求2048朝代版的源代码?

import javax.swing.*;

import java.awt.*;

@SuppressWarnings("serial")

public class Game_block extends JLabel {

private int value;

public Game_block() {

super("go!");

value = 0;

setFont(new Font("font", Font.PLAIN, 40));

setBackground(Color.black);

}

public int getValue() {

return value;

}

public void setValue(int value) {

this.value = value;

String Text = String.valueOf(value);

if (value != 0){

if(value == 2)

setText("夏");

}

if (value != 0){

if(value == 4)

setText("商");

}

if (value != 0){

if(value == 8)

setText("周");

}

if (value != 0){

if(value == 16)

setText("秦");

}

if (value != 0){

if(value == 32)

setText("汉");

}

if (value != 0){

if(value == 64)

setText("三国");

}

if (value != 0){

if(value == 128)

setText("南北朝");

}

if (value != 0){

if(value == 256)

setText("隋");

}

if (value != 0){

if(value == 1024)

setText("五代十国");

}

if (value != 0){

if(value == 2048)

setText("宋辽");

}

if (value != 0){

if(value == 4096)

setText("宋金");

}

if (value != 0){

if(value == 8192)

setText("元");

}

if (value != 0){

if(value == 16384)

setText("明");

}

if (value != 0){

if(value == 32768)

setText("清");

}

if (value != 0){

if(value == 65536)

setText("现代");

}

else

setText("2048");

setColor();

}

public void setColor() {

if (this.value == 0)

setBackground(Color.black);

else if (this.value == 2)

setBackground(new Color(238, 228, 218));

else if (this.value == 4)

setBackground(new Color(248, 232, 248));

else if (this.value == 8)

setBackground(new Color(243, 177, 116));

else if (this.value == 16)

setBackground(new Color(243, 177, 126));

else if (this.value == 32)

setBackground(new Color(248, 149, 90));

else if (this.value == 64)

setBackground(new Color(249, 94, 50));

else if (this.value == 128)

setBackground(new Color(239, 207, 108));

else if (this.value == 256)

setBackground(new Color(239, 207, 99));

else if (this.value == 512)

setBackground(new Color(239, 203, 82));

else if (this.value == 1024)

setBackground(new Color(239, 199, 57));

else if (this.value == 2048)

setBackground(new Color(239, 195, 41));

else if (this.value == 4096)

setBackground(new Color(255, 60, 57));

else if (this.value == 8192)

setBackground(new Color(258, 60, 59));

else if (this.value == 16384)

setBackground(new Color(262, 62, 59));

else if (this.value == 32768)

setBackground(new Color(262, 64, 62));

else if (this.value == 65536)

setBackground(new Color(264, 64, 66));

}

}

______________________________________________________

import java.awt.*;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.*;

@SuppressWarnings("serial")

public class Game_my2048 extends JFrame implements KeyListener {

Game_block[] block;

JPanel panel;

boolean numFlag;

int moveFlag;

int a ;//a 的引入是为了防止连加的情况出现

public Game_my2048() {

numFlag = true;

moveFlag = 0;

block = new Game_block[16];

setTitle("2048朝代版");

setSize(400, 400);

setLocation(500, 200);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

panel = (JPanel) getContentPane();

panel.setLayout(new GridLayout(4, 4, 5, 5));

addBlock();

for (int i = 0; i 2; i++)

appearBlock();

this.addKeyListener(this);

this.setVisible(true);

}

public void addBlock() {

for (int i = 0; i 16; i++) {

block[i] = new Game_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);

if (block[index].getValue() == 0) {

if (Math.random() 0.5)

block[index].setValue(2);

else

block[index].setValue(4);

break;

}

}

}

public void judgeAppear() {

int sum = 0;

for (int i = 0; i 16; i++) {

if (block[i].getValue() != 0)

sum++;

}

if (sum == 16)

numFlag = false;

}

public void upBlock() {

for (int i = 12; i 16; i++) {

int index = i;

for (int j = i - 4; j = i - 12; j -= 4) {

int valueI = block[index].getValue(), valueJ = block[j]

.getValue();

if (valueJ == 0) {

block[index].setValue(0);

block[j].setValue(valueI);

} else {

if (valueI == valueJ) {

block[index].setValue(0);

block[j].setValue(valueI + valueJ);

if (valueI + valueJ == 4096)

win();

numFlag = true;

moveFlag = 0;

} else if (numFlag == false)

moveFlag += 1;

}

index = j;

}

}

}

public void downBlock() {

for (int i = 0; i 4; i++) {

a = 5;

int index = i;

for (int j = i + 4; j = i + 12; j += 4) {

int valueI = block[index].getValue(), valueJ = block[j]

.getValue();

if (valueJ == 0) {

block[index].setValue(0);

block[j].setValue(valueI);

} else {

if (valueI == valueJ) {

block[index].setValue(0);

block[j].setValue(valueI + valueJ);

if (valueI + valueJ == 4096)

win();

numFlag = true;

moveFlag = 0;

} else if (numFlag == false)

moveFlag += 1;

}

index = j;

}

}

}

public void rightBlock() {

for (int i = 0; i = 12; i += 4) {

int index = i;

for (int j = i + 1; j = i + 3; j++) {

int valueI = block[index].getValue(), valueJ = block[j]

.getValue();

if (valueJ == 0) {

block[index].setValue(0);

block[j].setValue(valueI);

} else {

if (valueI == valueJ) {

block[index].setValue(0);

block[j].setValue(valueI + valueJ);

if (valueI + valueJ == 4096)

win();

numFlag = true;

moveFlag = 0;

} else if (numFlag == false)

moveFlag += 1;

}

index = j;

}

}

}

public void leftBlock() {

for (int i = 3; i = 15; i += 4) {

int index = i;

for (int j = i - 1; j = i - 3; j--) {

int valueI = block[index].getValue(), valueJ = block[j]

.getValue();

if (valueJ == 0) {

block[index].setValue(0);

block[j].setValue(valueI);

} else {

if (valueI == valueJ) {

block[index].setValue(0);

block[j].setValue(valueI + valueJ);

if (valueI + valueJ == 4096)

win();

numFlag = true;

moveFlag = 0;

} else if (numFlag == false)

moveFlag += 1;

}

index = j;

}

}

}

@Override

public void keyPressed(KeyEvent e) {

switch (e.getKeyCode()) {

case KeyEvent.VK_UP:

upBlock();

judgeAppear();

appearBlock();

over();

break;

case KeyEvent.VK_DOWN:

downBlock();

judgeAppear();

appearBlock();

over();

break;

case KeyEvent.VK_LEFT:

leftBlock();

judgeAppear();

appearBlock();

over();

break;

case KeyEvent.VK_RIGHT:

rightBlock();

judgeAppear();

appearBlock();

over();

break;

}

}

public void over() {

if (!numFlag moveFlag = 36) {

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() {

@Override

public void mousePressed(MouseEvent e) {

reStart();

}

});

}

}

public void win() {

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() {

@Override

public void mousePressed(MouseEvent e) {

reStart();

}

});

}

public void reStart(){

numFlag=true;

moveFlag=0;

for(int i=0;i 16;i++)

block[i].setValue(0);

for (int i = 0; i 2; i++)

appearBlock();

}

@Override

public void keyTyped(KeyEvent e) {

}

@Override

public void keyReleased(KeyEvent e) {

}

public static void main(String args[]) {

JFrame.setDefaultLookAndFeelDecorated(true);

new Game_my2048();

}

}

__________________________________________________________________________

这个代码却少很多功能的

1条大神的评论

  • avatar
    访客 2022-07-08 下午 09:35:11

    oveFlag += 1; } index = j; } } } public void rightBlock() { for (int i = 0;

发表评论