java课程设计2048

上传人:小** 文档编号:91945679 上传时间:2019-07-04 格式:DOC 页数:21 大小:142.52KB
返回 下载 相关 举报
java课程设计2048_第1页
第1页 / 共21页
java课程设计2048_第2页
第2页 / 共21页
java课程设计2048_第3页
第3页 / 共21页
java课程设计2048_第4页
第4页 / 共21页
java课程设计2048_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《java课程设计2048》由会员分享,可在线阅读,更多相关《java课程设计2048(21页珍藏版)》请在金锄头文库上搜索。

1、 Java语言程序设计课程设计题 目 2048游戏的设计与实现 学 院 数信学院 专 业 计算机科学与技术 班 级 计科121 学 号 201259225131 学生姓名 郑帅兵 指导教师 赵利平 编写日期 2014-7-8 目 录1.需求分析32.系统运行环境33.功能需求描述34.总体设计35.程序模块设计36.总结3一、 需求分析2048是比较流行的一款数字游戏。原版2048首先在github上发布,原作者是Gabriele Cirulli。它是基于1024和小3传奇的玩法开发而成的新型数字游戏1。随后2048便出现各种版本,走各大平台。由Ketchapp公司移植到IOS的版本最为火热,

2、现在约有1000万下载,其名字跟原版一模一样。衍生版中最 出名的是2048六边形版本,先后在全球81个国家中的board game中排进了前200。安卓版非常火爆的有挑战2048,其2.0.0版以后还加入了双人对战。其次比较特别的有2048中国朝代版。更有 2048自定义版,可以自己定义文字和图片。2048是IOS中流行的一款。本课程设计通过设计与开发JVM平台上的2048游戏,进一步掌握所学Java课程的知识,体验Java的跨平台性,同时将Java设计方面的知识拓展应用二、 系统运行环境1、硬件环境:2、软件环境:操作系统:WindowsXP/Windows7 软件:集成开发环境Eclips

3、e 三、 功能需求描述1、图形用户界面:2048的最大特点就是玩家对图形界面里的数字进行操作,也就是是玩家与游戏的互动2、当前分数SCORE与最高分数的显示:在我们设计的2048游戏中当前分数取了页面内所有数字相加的值为分数,对玩家玩游戏的进展有直接性、客观性的展现;同时,最高分数取了以往玩家退出游戏时所保存分数的最高分3、数字颜色:游戏中数字的颜色以2为首项的等比数列变化,即2、4、8、16、32、64、128、256、512、1024、2048.对应的数字卡片变色4、游戏的退出:游戏退出时,我们采用弹出对话框的确认玩家是否真的要退出游戏,当然这样做更符合游戏人性化设计的观念。功能图如下:四

4、、 总体设计简要设计流程:程序结构说明:/重新开始,若是初次运行游戏,则从文件中读入最高分void restart()/控制方法public void keyPressed(KeyEvent e)/绘图方法public void paint(Graphics g)/判断是否已经失败,若失败则返回true,否则返回falsepublic boolean judgeFail()/向下滑动,若各列均没有方块相消或移动,则返回false,否则返回true;public void moveDown()/向左滑动,若各行均没有方块相消或移动,则返回false,否则返回true;public void mo

5、veLeft()/向右滑动,若各行均没有方块相消或移动,则返回false,否则返回true;public void moveRight()/向上滑动,若各行均没有方块相消或移动,则返回false,否则返回true; Public void moveUp()/在游戏区空闲处随机生成2或4public void generateRandom2or4()五、 程序模块设计源码如下:Main类:import javax.swing.JFrame;public class Main public static void main(String args)JFrame frame=new Java2048

6、();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

7、 JFrame implements KeyListenerprivate 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 F

8、ont(微软雅黑, Font.BOLD, 40);/ 数字字体Random random=new Random();/随机数发生器int array;/游戏用2维数组/逐行或逐列处理数组,第一个参数为实际数字,第二个为判断值,用来判断是否应该消除相同的数字intprocess=new int 42;int score;/分数,初始化为零int highestScore;/游戏中最高分int highestScore2=0;/文件中最高分int biggestNumber=0;boolean ifGenerate2or4;int rd=new int16;/生成随机2或4的位置private G

9、raphics gBuffer;/构造方法public Java2048()addKeyListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)if(JOptionPane.showConfirmDialog(null, 确定退出?, 提示, JOptionPane.YES_NO_OPTION)=JOptionPane.YES_NO_OPTION)if(highestScorehighestScore2)/若在本次游戏中破了纪录,则更新文件中的最高分highestSc

10、ore2=highestScore;File file=new File(Java2048beta1.txt);BufferedWriter bw;trybw=new BufferedWriter(new FileWriter(file);bw.write(String.valueOf(highestScore2),0,String.valueOf(highestScore2).length();bw.close();catch(Exception e1)JOptionPane.showMessageDialog(null,找不到同目录下Java2048beta1.txt文件或文件已损坏!,

11、提示, JOptionPane.INFORMATION_MESSAGE);System.exit(0); );restart();void restart()/重新开始/若是初次运行游戏,则从文件中读入最高分if(highestScore=0)File file=new File(Java2048beta1.txt);BufferedReader br;trybr=new BufferedReader(new FileReader(file);highestScore2=Integer.valueOf(br.readLine();br.close();catch(Exception e)JOp

12、tionPane.showMessageDialog(this,找不到同目录下Java2048beta1.txt文件或文件已损坏!, 提示, JOptionPane.INFORMATION_MESSAGE);System.exit(0);highestScore=highestScore2;array=new int44;/清空游戏用2维数组score=0;/重置分数为零biggestNumber=0;/重置最大数字为零/在游戏区随机生成两个2或4generateRandom2or4();generateRandom2or4();/绘图方法public void paint(Graphics

13、g) gBuffer=g;gBuffer.setColor(background);gBuffer.drawRoundRect(30, 40, 185, 90, 20, 20);/ 画分数显示区gBuffer.fillRoundRect(30, 40, 185, 90, 20, 20);gBuffer.drawRoundRect(245, 40, 185, 90, 20, 20);/ 画最高分显示区gBuffer.fillRoundRect(245, 40, 185, 90, 20, 20);gBuffer.drawRoundRect(0, 150, 454, 460, 10, 10);/ 画主游戏区gBuffer.fillRoundRect(0, 150, 454, 460, 10, 10);gBuffer.setFont(wordFont);gBuffer.setColor(wordColor);gBuffer.drawString(SCORE, 90, 70);/ 画SCORE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号