ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:138.02KB ,
资源ID:4476766      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4476766.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(java专业课程设计.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

java专业课程设计.docx

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

2、名字跟原版一模一样。衍生版中最 出名是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

3、最大特点就是玩家对图形界面里数字进行操作,也就是是玩家和游戏互动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 moveLeft()/向右滑动,若各行均没有方块相消或移动,则返回false,不然

5、返回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();frame.setTitle(Java2048);frame.setSi

6、ze(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 KeyListenerprivate s

7、tatic 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);/ 数字字体Random r

8、andom=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 Graphics gBuffer;/结构方法public Java2048()add

9、KeyListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)if(JOptionPane.showConfirmDialog(null, 确定退出?, 提醒, JOptionPane.YES_NO_OPTION)=JOptionPane.YES_NO_OPTION)if(highestScorehighestScore2)/若在此次游戏中破了纪录,则更新文件中最高分highestScore2=highestScore;File file=new File(Java2

10、048beta1.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文件或文件已损坏!, 提醒, JOptionPane.INFORMATION_MESSAGE);Syste

11、m.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)JOptionPane.showMessageDialog(this,找不到同目录下Jav

12、a2048beta1.txt文件或文件已损坏!, 提醒, JOptionPane.INFORMATION_MESSAGE);System.exit(0);highestScore=highestScore2;array=new int44;/清空游戏用2维数组score=0;/重置分数为零biggestNumber=0;/重置最大数字为零/在游戏区随机生成两个2或4generateRandom2or4();generateRandom2or4();/绘图方法public void paint(Graphics g) gBuffer=g;gBuffer.setColor(background);

13、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

14、, 10, 10);gBuffer.setFont(wordFont);gBuffer.setColor(wordColor);gBuffer.drawString(SCORE, 90, 70);/ 画SCOREgBuffer.drawString(BEST, 315, 70); / 画BESTgBuffer.setFont(numberFont);gBuffer.setColor(Color.white);if(score10)gBuffer.drawString(String.valueOf(score), 110, 115);/画分数数字else if(score100)gBuffer.

15、drawString(String.valueOf(score), 100, 115);/画分数数字else if(score1000)gBuffer.drawString(String.valueOf(score), 85, 115);/画分数数字else if(score10000)gBuffer.drawString(String.valueOf(score), 73, 115);/画分数数字else if(score100000)gBuffer.drawString(String.valueOf(score), 60, 115);/画分数数字else if(score1000000)g

16、Buffer.drawString(String.valueOf(score), 50, 115);/画分数数字elsegBuffer.drawString(String.valueOf(score), 37, 115);/画分数数字if(highestScore10)gBuffer.drawString(String.valueOf(highestScore), 325, 115);/画分数数字else if(highestScore100)gBuffer.drawString(String.valueOf(highestScore), 315, 115);/画分数数字else if(hig

17、hestScore1000) gBuffer.drawString(String.valueOf(highestScore), 300, 115);/画分数数字else if(highestScore10000)gBuffer.drawString(String.valueOf(highestScore), 288, 115);/画分数数字else if(highestScore100000)gBuffer.drawString(String.valueOf(highestScore), 275, 115);/画分数数字else if(highestScore1000000)gBuffer.d

18、rawString(String.valueOf(highestScore), 265, 115);/画分数数字elsegBuffer.drawString(String.valueOf(highestScore), 252, 115);/画分数数字gBuffer.setColor(foreground);for (int i = 0; i 4; i+) for (int j = 0; j 4; j+) gBuffer.drawRoundRect(10 + j * 112, 160 + i * 112, 100, 100, 10, 10); gBuffer.fillRoundRect(10 +

19、 j * 112, 160 + i * 112, 100, 100, 10, 10);for(int i=0;i4;i+)for(int j=0;j1024)switch(biggestNumber)case 2048:if(JOptionPane.showConfirmDialog(this, 挑战2048成功!n是否继续挑战?, 提醒, JOptionPane.YES_NO_OPTION)=JOptionPane.YES_OPTION)biggestNumber+;/预防2048反复判定elserestart();repaint();break;case 4096:if(JOptionPa

20、ne.showConfirmDialog(this, 挑战4096成功!n是否继续挑战?, 提醒, JOptionPane.YES_NO_OPTION)=JOptionPane.YES_OPTION)biggestNumber+;/预防4096反复判定elserestart();repaint();break;case 8192:if(JOptionPane.showConfirmDialog(this, 挑战8192成功!n是否继续挑战?, 提醒, JOptionPane.YES_NO_OPTION)=JOptionPane.YES_OPTION)biggestNumber+;/预防8192

21、反复判定elserestart();repaint();break;default:;if(judgeFail()JOptionPane.showMessageDialog(this,挑战失败!, 提醒, JOptionPane.INFORMATION_MESSAGE);restart();repaint();Overridepublic void keyReleased(KeyEvent e) Overridepublic void keyTyped(KeyEvent e) /判定是否已经失败,若失败则返回true,不然返回falsepublic boolean judgeFail()for

22、(int j=0;j4;j+)for(int i=0;i4;i+)processi0=arrayij;processi1=1;for(int i=1;i0)if(processk0=0)return false;else if(processk-10=0)return false;else if(processk-10=processk0)return false;elsebreak;for(int j=0;j-1;i-)process3-i0=arrayij;process3-i1=1;for(int i=1;i0)if(processk0=0)return false;else if(pr

23、ocessk-10=0)return false;else if(processk-10=processk0)return false;elsebreak;for(int i=0;i4;i+)for(int j=0;j4;j+)processj0=arrayij;processj1=1;for(int l=1;l0)if(processk0=0)return false;else if(processk-10=0)return false;else if(processk-10=processk0)return false;elsebreak;for(int i=0;i-1;j-)process3-j0=arrayij;process3-j1=1;for(int l=1;l0)if(processk0=0)return false;else if(processk-10=0)return false;else if(processk-10=processk0)return false;elsebreak;for(int i=0;i4;i+)for(int j=0;j4;j+)if(arrayij=0)return false;return

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服