当前位置: 首页 > news >正文

有没有那个的网站动易手机网站

有没有那个的网站,动易手机网站,网站开发项目管理,免费自己做网站吗2048游戏学习报告姓名:王浩专业:计算机科学与技术年级:15级4班学号:201510411420目录一. 前言 3二. 对游戏的简要分析 31. 游戏的定位分析 32. 游戏的构造分析及对应代码 …2048游戏学习报告姓名:王浩专业:计算机科学与技术年级:15级4班学号:201510411420目录一. 前言                                             3二. 对游戏的简要分析                        31. 游戏的定位分析                             32. 游戏的构造分析及对应代码            33.游戏操作分析及其代码 53游戏结束及代码 12三. 运行结果                                      13五.自我总结                                       13一. 前言这学期开设了软件工程这门课程,但是由于自己的能力有限,未能在团队项目中做出足够的贡献,于是上网找了一个2048代码,对其进行分析、解读、学习。因为本人对2048游戏还是比较喜欢的所以选择了该游戏作为本次学习报告的学习对象。二. 对游戏的简要分析1. 游戏的定位分析2048游戏是一款主要应用在移动端的游戏所以需要提高游戏的操作可行性降低游戏的操作难度降低游戏的上手难度对使用设备的要求趋于简单化和多样化游戏界面更加人性化功能更加贴合使用。2. 游戏的构造分析及对应代码首先要设置标题——“2048”、窗口的大小以及窗口的起始位置然后设定背景的颜色、label字体。详细代码如下import javax.swing.*;import java.awt.*;public class Block extends JLabel{private int value;public Block(){value 0;//初始化值为0setFont(new Font(font, Font.PLAIN, 40));//设定字体setBackground(Color.gray);//设定初始颜色为灰色}public int getValue()//获取值{return value;}public void setValue(int value){this.value value;String text String.valueOf(value);if (value ! 0)setText(text);elsesetText();//如果值为0则不显示setColor();}public void setColor()//根据值的不同设定不同的背景颜色、label字体{switch (value){case 0:setBackground(Color.gray);break;case 2:setBackground(new Color(238, 228, 218));break;case 4:setBackground(new Color(238, 224, 198));break;case 8:setBackground(new Color(243, 177, 116));break;case 16:setBackground(new Color(243, 177, 116));break;case 32:setBackground(new Color(248, 149, 90));break;case 64:setBackground(new Color(249, 94, 50));break;case 128:setBackground(new Color(239, 207, 108));break;case 256:setBackground(new Color(239, 207, 99));break;case 512:setBackground(new Color(239, 203, 82));break;case 1024:setBackground(new Color(239, 199, 57));break;case 2048:setBackground(new Color(239, 195, 41));break;case 4096:setBackground(new Color(255, 60, 57));break;}}}3.游戏操作分析及其代码基本的操作包括上下左右四个方向的移动移动之后进行判断若是相同的分数块则分数相加生成新的分数块若不同则该操作无效不发生改变。详细代码如下import java.awt.event.*;import javax.swing.*;public class Operation implements KeyListener{Block[] block;//用于储存16个数据JPanel panel;public boolean up,down,left,right;int moveFlag;//用于累计移动的次数boolean numFlag;//用于判断是否还能加入新的数字public Operation(JFrame frame){this.panel (JPanel)frame.getContentPane();//构造出panelblock new Block[16];//构造出长度为16的数组numFlag true;//初始化moveFlag 0;uptrue;downtrue;lefttrue;righttrue;addBlock();for (int i 0; i 2; i)appearBlock();frame.addKeyListener(this);}private void addBlock(){for (int i 0; i 16; i) //往panel里加入block{block[i] new 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);//取一个0到15的随机整数这个数作为随机加入盘中的2或4的位置if (block[index].getValue() 0)//如果这个数所在的block数组中值为0即在为空的时候加入一个2或4的数字{if (Math.random() 0.5){block[index].setValue(2);}else{block[index].setValue(4);}break;//跳出while}}}public void judgeAppear() //统计block数组中是否含有值为0的元素若没有则numFlag变为false{int sum 0;for (int i 0; i 16; i){if (block[i].getValue() ! 0){sum;}}if (sum 16)numFlag false;}public int Find(int i,int j,int a,int b){while(ia){if(block[i].getValue()!0){return i;}iij;}return -1;}public void upBlock(){int i0,j0;int t0;int valueJ0;int valueI0;int index0;for(i0;i4;i){indexi;for(ji4;j16;j4){valueJ0; valueI0;if(block[index].getValue()0){tFind(index,4,0,16);if(t!-1){block[index].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueIblock[index].getValue();if(block[j].getValue()0){tFind(j,4,0,16);if(t!-1){block[j].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueJblock[j].getValue();if(valueIvalueJvalueI!0valueJ!0){block[index].setValue(valueIvalueJ);block[j].setValue(0);numFlag true;}indexj;}}}public void downBlock() {int i0,j0;int t0;int valueJ0;int valueI0;int index0;for(i12;i16;i){indexi;for(ji-4;j0;j-4){valueJ0; valueI0;if(block[index].getValue()0){tFind(index,-4,0,16);if(t!-1){block[index].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueIblock[index].getValue();if(block[j].getValue()0){tFind(j,-4,0,16);if(t!-1){block[j].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueJblock[j].getValue();if(valueIvalueJvalueI!0valueJ!0){block[index].setValue(valueIvalueJ);block[j].setValue(0);numFlag true;}indexj;}}}public void rightBlock(){int i0,j0;int t0;int valueJ0;int valueI0;int index0;for(i3;i16;i4){indexi;for(ji-1;ji-4;j--){valueJ0; valueI0;if(block[index].getValue()0){tFind(index,-1,i-3,index1);if(t!-1){block[index].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueIblock[index].getValue();if(block[j].getValue()0){tFind(j,-1,i-3,j1);if(t!-1){block[j].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueJblock[j].getValue();if(valueIvalueJvalueI!0valueJ!0){block[index].setValue(valueIvalueJ);block[j].setValue(0);numFlag true;}indexj;}}}public void leftBlock(){int i0,j0;int t0;int valueJ0;int valueI0;int index0;for(i0;i16;i4){indexi;for(ji1;j{valueJ0; valueI0;if(block[index].getValue()0){tFind(index,1,index,i4);if(t!-1){block[index].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueIblock[index].getValue();if(block[j].getValue()0){tFind(j,1,j,i4);if(t!-1){block[j].setValue(block[t].getValue());block[t].setValue(0);}else{break;}}valueJblock[j].getValue();if(valueIvalueJvalueI!0valueJ!0){block[index].setValue(valueIvalueJ);block[j].setValue(0);numFlag true;}indexj;}}}}3游戏结束及代码当窗口被填满且无下一步操作可以进行时游戏结束并显示“GAMEOVER”。详细代码如下public void over(){if (numFlag false upfalsedownfalseleftfalserightfalse) //当不能添加元素并且不可移动的步数超过36就输了输了的时候在盘中央显示GAMEOVER{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() {public void mousePressed(MouseEvent e){reStart();}});}}三. 运行结果五.自我总结通过本次对2048游戏分析、学习收获了很多。比如在学习新知识之前首先要明确自己的兴趣所在然后进行相关的学习在学习的过程中要制定相应的学习计划。制定学习计划的时候要切合自身实际每天按照学习计划严格要求自己。要多利用网络解决遇到的问题对每天遇到的问题进行记录总结定期对这些记录进行回看、学习确保自己掌握这些知识。学习结束之后要进行相对应的编程以便进一步掌握所学知识。
http://www.zqtcl.cn/news/579805/

相关文章:

  • 有没有在淘宝找人做网站被骗过的台州市环保局网站开发区
  • 公司外文网站制作河南住房和城乡建设厅网站
  • 东莞做网站公司有哪些代码网站推荐
  • 棋类游戏网站开发网站首页顶部图片尺寸
  • 工信部如何查网站备案大连网络推广广告代理
  • 网站建设基本流程心得wordpress首页截断
  • 网站包括哪些内容网站开发的相关技能
  • 百度竞价 百度流量 网站权重qq推广
  • 重庆网站建设总结WordPress简单百度站长插件
  • pc网站转换成微网站工作室推广网站
  • 嘉兴优化网站公司做水果生意去哪个网站
  • 青岛知名网站建设公司排名wordpress商场插件
  • 设计网站猪八戒自己制作logo免费生成器
  • 深圳万齐创享网站建设网站建设基本教程
  • 聊城做网站信息建设工程合同可以分为
  • 网站设计 注意做筹款的网站需要什么资质
  • 家居网站建设费用国土局网站建设经验
  • 企业网站开发教程网站建设更改
  • 违法网站怎么做安全wordpress自定义应用
  • 四平英文网站建设wordpress添加特效
  • 如何在手机上制作网站企业网站 微博模块
  • 网站内容规范网站建设建设公司哪家好
  • 深圳网站制作公司地址如何制作手机版网站
  • 深圳定制网站制作报价网络交易平台
  • 鞍山网站制作报价wordpress手机客户端端
  • 开发触屏版网站标签苏州沧浪区做网站的
  • 网站接入商钓鱼网站链接怎么做
  • 建设部机关服务中心网站网站建设维护费 会计科目
  • 网站解析后怎么解决方法淘宝网站建设方案模板
  • 淘宝客可以自己做网站推广吗营销网络建设怎么写