2048小游戏设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2048小游戏

(一)程序介绍

2048是一款益智小游戏,玩家需要在l6个格子中通过数字叠加的方法将最初的数字2凑成数字2048。有16个格子,初始时会有两个格子上安放了两个数字2, 每次可以选择上下左右其中一个方向去滑动, 每滑动一次, 所有的数宇方块都会往滑动的方向靠拢外, 系统也会在空自的地方随即出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。 2o48是比较流行的一款数字游成a本课程设计通过设计与开发 JvM平台上的2048游戏,进一步掌握所学Java课程的知识, 体验 Java的跨平台性, 同时将 Java设计方面的知识拓展应用

(二) 功能需求描述

l、图形用户界面: 2048的最大特点就是玩家对图形界面里的数字进行操作, 也就是是玩家与游戏的互动

2、当前分数 scoRE 与最高分数的显示:在我们设计的2048游戏中当前分数取了页面i内所有数字相加的值为分数, 对玩家玩游戏的进展有直接性、客观性的展现, 同时, 最高分数取了以往玩家退出游戏时所保存分数的最高分

3、数字颜色‘游戏中数宇的颜色以2为首項的等比数列变化,即2、

4、8、l6、32、“、128、256、5l2、l024、2048__.对应的数字卡片变色

4、游戏的退出:游戏退出时,我们采用弹出对话框的确认玩家是否真的要退出游戏, 当然这样做更符合游戏人性化设计的观念。

(三)玩法技巧:

1、最大数尽可能放在角落

2、数字按顺序紧邻排列

3、首先満足最大数和次大数在的那一列/行是满的

4、时刻注意活动较大数旁边要有相近的数

5、以大数所在的一行为主要移动方向

6、不要急于“清理桌面”

(四)程序说明

一个类 Copy2048继承JFrame, 类中包括, 一个构造方法 Copy2048,构造方法中设定游戏界面的大小,背景颜色,边框,字体,标签,布局,位置,记录剩

余空方块数目,记录分数,用于判断游成是否失败,用于判断游戏是否失败,设置字体类型和大小, 为最高分标签添加接键监听器, 一个 KeyEvent按键事件, 构造方法中创建游戏主面板,设置主面板位置尺寸,设置空布局,创建文本框二维数组,创建标签,调用时间处理方法, 一个Create2方法,是在随机位置产生一个2号方块的方法, ll到l4同时被键盘赋値为1说明任何方向键都不能产生新的数字2,那就说明游戏失败GAME OVER! 一个setColor方法,是为了产生2l:)48小游戏方块的颜色。

(五) 程序结构

l.重新开始,若是初次运行游戏,则从文件中读入最高分

void restart0

2.控制方法

ptlblic void keyPtessed(KeyEvent e)

3.结图方法

public void paint(〔iraphics g)

4.判断是否己经失败,若失败则返回true,否则返回false

pablic boolean judgeFai10

5.向下滑动,若各列均投有方块相相或移动,则返回false,否则返回true; public void moveDown0

6.向左滑动,若各行均投有方块相相或移动,则返回false,否则返回true; ptlblic void moveLeft0

7.向右滑动,若各行均投有方块相相或移动,则返回false,否则返回true, public void moveRight0

8.向上滑动,若各行均投有方块相消或移动,则返回false,否则返回true; Public void moveUp0

9.在游戏区空用处随机生成2public void generateRandom2 0

(六)JAVA制作2048小游戏详细代码

import ;

import ;

import ;

impol1 ;

import ;

import ;

import java.util. Random;

import javax.swing_BorderFactory;

import javax.swing_lcon;

import javax.swing. lmagelcon;

import javax.swing_JFrame;

import ;

import javax.swing_JPanel;

import ;

import java)(.swing_border.*;

import java)(.swing.JTextField;

public class Copy2048 extends JFrame{

private JPanel scoresPane;

private JPanel mainPane;

private JLabel labelMaxScores;

private JLabel labelScores;

private JLabel tips;

private JTextField textMa)(Scores; private JLabel textScores; private JLabel[] [] texts;

privatelcorl icon2;

private int times= 16;

private int scores= 0;

private int11 ,l2,l3,l4,l5;

//提示操作t示签

//-记录剩余空方块数目

//-记最分数

//用-]-'判断游戏是否失败

Font font= new Font(”H, Font.BOLD,14); Font font2 = new Font(-', Font.BOLD,30); Random random= new Random0;

/般置字体类型和大小//设置字体类型和大小

//随机类实例化

public static void main(StringI] args){

EventOueue.invokeLater(new Runnable0{

public void run0{

try{

Copy2048 ffame= new Copy20480;

frame.setVisible(true);

}

catch(Exception e1){

e1 .prlntStact(Trace0;

}

}

});

}

public Copy20480{

super0;

setFiesizable(false);

getContentPane0.setLayout(null);

相关文档
最新文档