2048游戏的设计与实现 课程设计

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

Java语言程序设计

课程设计

题目2048游戏的设计与实现

目录

1. 需求分析 ................................................................................................................... 错误!未定义书签。

2. 系统运行环境.......................................................................................................... 错误!未定义书签。

3. 功能需求描述.......................................................................................................... 错误!未定义书签。

4. 总体设计 ................................................................................................................... 错误!未定义书签。

5. 程序模块设计.......................................................................................................... 错误!未定义书签。

6. 总结............................................................................................................................. 错误!未定义书签。

一、需求分析

《2048》是比较流行的一款数字游戏。原版2048首先在github上发布,原作者是Gabriele Cirulli。它是基于《1024》和《小3传奇》的玩法开发而成的新型数字游戏[1]。

随后2048便出现各种版本,走各大平台。由Ketchapp公司移植到IOS的版本最为火热,现在约有1000万下载,其名字跟原版一模一样。衍生版中最出名的是《2048六边形》版本,先后在全球81个国家中的board game中排进了前200。安卓版非常火爆的有《挑战2048》,其2.0.0版以后还加入了双人对战。其次比较特别的有2048中国朝代版。更有2048自定义版,可以自己定义文字和图片。《2048》是IOS中流行的一款。

本课程设计通过设计与开发JVM平台上的2048游戏,进一步掌握所学Java课程的知识,体验Java的跨平台性,同时将Java设计方面的知识拓展应用

二、系统运行环境

1、硬件环境:

2、软件环境:

操作系统:WindowsXP/Windows7

软件:集成开发环境Eclipse

三、功能需求描述

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

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

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

4、8、16、32、64、128、256、512、1024、2048.......对应的数字卡片变色

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

功能图如下:

四、总体设计

简要设计流程:

程序结构说明:

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

void restart()

//控制方法

public void keyPressed(KeyEvent e)

//绘图方法

public void paint(Graphics g)

//判断是否已经失败,若失败则返回true,否则返回false

public boolean judgeFail()

//向下滑动,若各列均没有方块相消或移动,则返回false,否则返回true;

public void moveDown()

//向左滑动,若各行均没有方块相消或移动,则返回false,否则返回true;

public void moveLeft()

//向右滑动,若各行均没有方块相消或移动,则返回false,否则返回true;

public void moveRight()

//向上滑动,若各行均没有方块相消或移动,则返回false,否则返回true;

Public void moveUp()

//在游戏区空闲处随机生成2或4

public void generateRandom2or4()

五、程序模块设计

源码如下:

Main类:

import javax.swing.JFrame;

public class Main {

public static void main(String[] args){

JFrame frame=new Java2048();

frame.setTitle("Java2048");

frame.setSize(455,610);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );

frame.setVisible(true);

}

}

Java2048类:

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.*;

import javax.swing.*;

public class Java2048 extends JFrame implements KeyListener{ private static final long serialVersionUID = 1L;

Color background = new Color(190, 173, 160);// 背景色

Color foreground = new Color(204, 192, 178);// 前景色

Color wordColor = new Color(232, 216, 203);// 单词色

Font wordFont = new Font("微软雅黑", Font.PLAIN, 20);// 单词字体Font numberFont = new Font("微软雅黑", Font.BOLD, 40);// 数字字体

相关文档
最新文档