JAVA开放性实验报告贪吃蛇

JAVA程序设计 开放性实验报告 专 业: 计算机科学与技术 班 级: 2012级2班 学 号: 姓 名: 实验2贪吃蛇游戏设计(4学时) 1.实验内容 (1) 创建软件主窗体和相关控制菜单;在窗体中以图形模拟蛇的形状,使用键盘控制图形在窗体中任意移动,模拟贪吃蛇的行为. (2) 在窗体中可以设置障碍或奖励物品,以达到游戏的娱乐性。 2.预习内容 Java GUI编程;鼠标和键盘的事件处理;Java多媒体编程。 3.实验类型 综合性 4.实验目的 (1)了解JavaGUI编程特别是窗体,菜单;熟悉Java的事件委托处理机制,能完成鼠标和键盘的事件处理; (2)熟悉Java中的多媒体技术如:音频文件的播放控制,游戏中各种事件的音效添加。熟悉Java中的绘图操作,可以使用绘图函数进行图形的绘制和重绘等基本操作; (3)熟悉模块的划分及游戏控制类的编写,了解相关的游戏设计和实现模式; (4)设计可视化界面,添加其他必要组件,对窗体进行相应的键盘事件处理,使蛇能移动,依据实验内容结合自己的设计想法,实现模拟贪吃蛇的游戏效果。 5.实验要求 依据实验内容,编写相关类,实现所需软件功能。 6.实验过程(分析设计、源文件、执行结果) 代码如下: 1、Node类 public class Node { private int x; private int y; public Node(){ } public Node(int x,int y){ this.x=x; this.y=y; } public int getX(){ return x; } public void setX(int x){ this.x=x; } public int getY(){ return y; } public void setY(int y){ this.y=y; } public String toString(){//方便类型转换 //括号里不是String类型通过toString来转换,不然会输出一个地址 return“(“+x+“,“+y+“)“; } @Override //伪代码可以理解为注释,重写:下面的方法名是否在父类中存在,如果没有 //的话会报错。 // public int hashCode(){//假设Node是list集合里面,只有把Node节点对象 //放在set集合时候写hashCode(); final int prime = 31; int result = 1; result=prime*result+x; result=prime*result+y; return result; } @Override //比较Node对象是否在同一坐标都要写上equals方法 public boolean equals(Object obj){ if(this==obj){ return true; } if(this==null){ return false; } if(getClass()!=obj.getClass()) return false; Node other=(Node)obj; if(x!=other.x){ return false; } if(y!=other.y){ return false; } return true; } } 2、Worm 类 import java.util.LinkedList; public class Worm { private LinkedList worm = new LinkedList(); int dir; public static final int UP = -1; public static final int DOWN = 1; public static final int LEFT = -10; public static final int RIGHT = 10; public static final int ROWS = 400;//ROWS行。宽度范围, public static final int COLS = 500;//COLS列。长度范围 public Worm() { getWorm().add(new Node(90, 90));//第90行90列,蛇扩大10倍 getWorm().add(new Node(80, 90)); getWorm().add(new Node(70, 90)); getWorm().add(new Node(60, 90)); getWorm().add(new Node(50, 90)); dir = RIGHT; } public void step() {// 走一步 Node head=getWorm().get(0);// 找到头节点 int x = head.getX() + dir / 10 * 10;//X,Y横坐标与纵坐标 int y = head.getY() + dir % 10 * 10; if (x > 0 getWorm().removeLast();//删除 } else { dir = 100; throw new RuntimeException(“你错了!“); } } public void step(int dir) {// 控制蛇走的方向 this.dir = dir; step(); } public LinkedList getLinkedListWorm() { return getWorm(); } public String t

java多线程贪吃蛇实验报告_JAVA开放性实验报告贪吃蛇相关推荐

  1. java程序设计实验报告_JavA程序设计实验报告.doc

    Java程序设计实验报告 学号: 姓名: 座位号: 实验日期: [实验名称]: JDK配置与开发工具的使用 [实验目的]: 熟悉JDK开发环境. 熟悉EditPlus编辑器或Eclipse等开发环境的 ...

  2. Java面向对象程序设计实训教程_JAVA课程实验报告 实验二 JAVA面向对象程序设计...

    课程:Java程序设计  班级:1352  姓名:黄伟业  学号:20135315 成绩:             指导教师:娄嘉鹏    实验日期:2015.5.7 实验密级:         预习 ...

  3. java综合实训报告_java综合实验报告1.doc

    java综合实验报告1 数学与计算机学院 实 验 报 告 课程名称JAVA语言程序设计 课程代码 任课教师周立章指导教师周立章学生姓名郭春艳学 号312008080611123年 级2008专 业软件 ...

  4. java上机实验心得_java上机实验心得体会报告

    java上机实验心得体会报告 北京联合大学 信息学院 "面向对象程序设计"课 程上机实验报告 题 目: JAVA 上机实验心得体会 姓名(学号): 专 业: 计算机科学与技术 编 ...

  5. java课程设计连连看_连连看_java课程设计报告

    连连看_java课程设计报告 <连连看> 项目设计报告 专 业: 软件工程 班 级: 07级2班 姓 名: 二00九 年 七 月 二十一 日 目 录 1.项目设计目的.意义-------- ...

  6. java贪吃蛇设计流程_JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)

    JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)(任务书,开题报告,外文翻译,毕业论文12000字,程序代码,MySQL数据库,答辩PPT,答辩视频录像) 摘要 "贪食蛇"游戏 ...

  7. java继承机制实验报告_JAVA继承实验报告.doc

    JAVA继承实验报告 JAVA语言程序设计 实验报告 实验一 实验题目: 面 向 对 象 编 程 指导老师: 卢照 专业班级:计算机科学与技术系1106班 姓 名:*****) 2014年3月20日 ...

  8. Java简单记事本设计实验报告_java记事本实验报告

    期末考查大作业任务书 课程名称: Java 语言程序设计设计实验 题 目: 简单记事本得设计与实现 学 院: 管理学院 系: 信息管理系 专业班级: 学 号: 学生姓名: 起讫日期: 2015-09- ...

  9. java点餐系统实验报告_JAVA课程实践报告 基于web的点餐系统毕业设计.doc

    JAVA课程实践报告 基于web的点餐系统毕业设计 大连理工大学城市学院 JAVA课程实践报告 题目:基于web点餐系统 学院:计算机工程学院 班级:07软日3班 指导教师: 杨俊生 学生姓名:李杰伟 ...

最新文章

  1. linux LVM的创建和管理
  2. Linux下的摄影后期处理软件
  3. 更新ubuntu软件源
  4. CC2541对AT24CXX系列存储器的支持
  5. 关于在Intellij IDEA工具中配置热加载问题
  6. Qt 移植到Android
  7. 3分钟学会python_3分钟学会一个Python小技巧
  8. sharepoint Lists Web service 用法
  9. Office 365也是.NET Core应用开发新战场
  10. MyEclipse for Mac快捷键
  11. python 魔法方法常用_12个常用的IPython魔法命令
  12. Some tips from Inject Lib sample application
  13. Atitit 研发体系 codelib 代码库的建设 目录 1. 概念与组成 2 1.1. Java代码 2 1.2. Js代码 2 1.3. H5 代码 js+css+htm+txt 2 1.4.
  14. Thinkphp聊天室H5实时聊天室群聊聊天室自动分配账户完群组私聊禁言等功能全开源运营版本
  15. 礼物帮手项目(3) - 传id跳转详情页(尝试2种方法)
  16. PTA 7-44 本题要求编写程序,输入一个三位数,输出其个位数字、十位数字和百位数字。
  17. c++重载运算符实现分数加减乘除
  18. Java阶段性测试--第四五六大题参考代码
  19. 计算机硬盘的报废处理,看看电脑大神怎么直接把电脑干“报废”的!
  20. 分享ricequant量化交易接口是如何执行交易功能?

热门文章

  1. 易基因项目文章|WGBS+RNA-seq揭示PM2.5引起男性生殖障碍的DNA甲基化调控机制
  2. springboot项目日志记录访问客户端ip地址
  3. 软件使用:如何用Mac做热点。
  4. 相关子查询和不相关子查询
  5. html怎么去除照片背景颜色,怎么去掉背景色?
  6. 2个相同的 stm32 can通讯不成功_CAN通讯系列--CAN通讯简介1
  7. 越美丽的东西我越不可碰 | 天蝎座如何在黑暗中找到那束光
  8. Defcon 2019 Qualify: redacted puzzle Writeup
  9. 软件理论基础学习笔记——模态逻辑(modal logic)
  10. 汇金蛛:推荐在家0成本,有营养的副业兼职