项目:贪吃蛇游戏设计 工作任务五:场地(Floor)类设计 工作任务六:公共(PubClass)类设计 工作任务七:自定义速度(Speed)类设计 常州工程职业技术学院 计算机技术系.

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
四資二甲 第三週作業 物件導向程式設計.
良心處方 Click to start..
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
人工智慧概論 坦克AI 498g0061-許顥.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Oracle数据库 Oracle 子程序.
项目:贪吃蛇游戏设计 工作任务八:主界面(Start)类
项目:贪吃蛇游戏设计 常州工程职业技术学院 计算机技术系.
项目:贪吃蛇游戏设计 常州工程职业技术学院 计算机技术系.
项目:贪吃蛇游戏设计 工作任务三:块类(Block)设计 工作任务四:蛇类(Snake)设计
類別與物件 Class & Object.
第14章 c++中的代码重用.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
Hadoop I/O By ShiChaojie.
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第七章 操作符重载 胡昊 南京大学计算机系软件所.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
C#面向对象程序设计 $6 深入理解类.
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
VB与Access数据库的连接.
分裂对象模型 C++ otcl.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
Web安全基础教程
第4章 Excel电子表格制作软件 4.4 函数(一).
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
3.16 枚举算法及其程序实现 ——数组的作用.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Chapter 18 使用GRASP的对象设计示例.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
辅导课程十五.
Delphi 7.0开发示例.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
VB程序设计初体验 主讲:林赛雅.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第二章 Java基本语法 讲师:复凡.
第二次课后作业答案 函数式编程和逻辑式编程
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
Presentation transcript:

项目:贪吃蛇游戏设计 工作任务五:场地(Floor)类设计 工作任务六:公共(PubClass)类设计 工作任务七:自定义速度(Speed)类设计 常州工程职业技术学院 计算机技术系

任务五:Floor类 一、场地(Floor)类分析 为游戏的主场地,豆要在此范围内出现,蛇要在此范围内运行; 场地的左上角确定场地的显示位置,长宽确定场地的大小; 在游戏过程中,要首先初始化场地类,然后显示场地,当豆被吃掉后,要随机产生一个新豆并显示,还要不断检查蛇是否吃了豆,是否碰撞到了场地的壁或蛇自身。 《C#程序设计》

private static int dangwei=5; public static int deifen; 1)字段 private static int dangwei=5; public static int deifen; private int chang=60*dangwei; private int kuan=30*dangwei; private Point dian; private Snake s; private Bean bean1; 《C#程序设计》

public void Display(Graphics g) public void CheckBean(Graphics g) 2)属性: public Snake S 3)构造函数 public Floor(Point p) 4)方法: public void Display(Graphics g) public void CheckBean(Graphics g) public void CheckSnake() private Bean getRandomBean() public void displaybean(Graphics g) Private void ReSet(Graphics g) 《C#程序设计》

二、场地(floor)类实现 1.属性 设置蛇对象的属性为只读属性 public Snake S { get{return s;} }

⑴功能:初始化场地的左上角位置dian、豆对象bean1和蛇对象s。 2.构造函数 public Floor(Point p) ⑴功能:初始化场地的左上角位置dian、豆对象bean1和蛇对象s。 ⑵设计思路及方法:根据传递来参数p设置场地外框左上角位置;用p和10实例化蛇s(设置蛇的长度由10个块组成);用空构造函数实例化豆对象并设置由p设置豆的位置属性值。 《C#程序设计》

⑴功能:依次显示场地内的所有对象,场地边框、豆和蛇;还要检查蛇是否吃了豆。 ⑵设计思路: 3.方法 1)显示场地(Display)方法 ⑴功能:依次显示场地内的所有对象,场地边框、豆和蛇;还要检查蛇是否吃了豆。 ⑵设计思路: 画一个长能放下80个豆、宽能放下50个豆的红色矩形作为场地; 依次用各自的显示方法显示蛇和豆,并检测当前豆是否被蛇吃掉。 《C#程序设计》

《C#程序设计》

2)检查蛇是否吃了豆(CheckBean)方法 ⑴功能: 检测豆是否被蛇吃掉,如果被蛇吃掉,得分增加10分,显示新豆,使蛇增长一块,否则不作任何处理,直接返回。 ⑵设计思路: 判断豆的位置是否与蛇头的位置相同用Point结构的Equals方法: bean1.Origin.Equals(s.getHeadPoint) 其中bean1是当前豆对象,s是蛇对象 得分增加10分 《C#程序设计》

《C#程序设计》

⑴功能:当豆被蛇吃掉后,消除被吃豆,随机生成一个新豆并显示它。 ⑵设计思路: 3)显示豆(displaybean)方法 ⑴功能:当豆被蛇吃掉后,消除被吃豆,随机生成一个新豆并显示它。 ⑵设计思路: 调用它们各自的方法UnDisplay()、randombean()和Display()完成它们的功能。 4)产生随机豆(randombean)方法 ⑴功能:生成一个在场地范围内任意位置的豆。 由随机数对象产生两个随机数,根据这两个整数建立一个Point变量,把它赋给豆对象的位置Origin属性,最后返回此豆。 《C#程序设计》

Random random=new Random(); ② 产生整数随机数的方法Next() 格式:int Next(int maxnum) 产生随机数 C#中产生随机数的方法分两步: ①  创建伪随机数对象,并实例化它。 Random random=new Random(); ② 产生整数随机数的方法Next() 格式:int Next(int maxnum) 功能:产生一个不大于maxnum的非负整数。 《C#程序设计》

int x=random.Next(length/unit-2)+1; int y=random.Next(width/unit-2)+1; 豆位置坐标随机数由下面两式产生: int x=random.Next(length/unit-2)+1; int y=random.Next(width/unit-2)+1; 豆的位置点由下式产生: Point d=new Point(dot.X+x*5,dot.Y+y*5); 《C#程序设计》

《C#程序设计》

5)检查蛇是否撞墙和撞到它自身(CheckSnake)方法 ⑴功能:判断蛇是否撞墙和撞到它自身,如果蛇碰撞到场地的壁或碰撞到它自身,返回true,否则返回false。 ⑵设计思路和步骤: 要判断蛇头是否撞到场地的墙壁,蛇头的位置由头块的左上角位置决定,当蛇向左、向上运行,头块碰到墙壁时位置与墙的位置重合,当蛇向右、向下运行,头块碰到墙壁时,头块的位置x、y坐标减5,所以判断条件如下: 《C#程序设计》

判断蛇是否碰到它自身,直接调用判断蛇碰撞到自身属性: !s.getHitSelf。 dot.X < s.getHeadPoint.X && s.getHeadPoint.X < (dot.X + length)-5) && (dot.Y < s.getHeadPoint.Y && s.getHeadPoint.Y < (dot.Y + width)-5) 判断蛇是否碰到它自身,直接调用判断蛇碰撞到自身属性: !s.getHitSelf。 《C#程序设计》

⑴功能:消除现在的蛇,在起始位置重新显示蛇。 ⑵设计思路和步骤 调用蛇的消除方法UnDisplay()和重新设置方法ReSet()。 《C#程序设计》

工作任务六:PubClass类 一、公共类(PubClass)分析 ⒈类分析 目的:存放公共数据和公共方法。 此项目中要通过自定义速度(Speed)类设置游戏的速度值,此值要应用到窗体(Start)类中,因此在此类中只设置一个静态字段。 ⒉字段 public static int kk; 《C#程序设计》

对象成员与类成员 对象(实例)成员具有以下特征: 一般在类中定义的成员称为对象成员,即由类定义对象后,每一个对象有各自的独立成员; 有时需要类的所有对象在类的范围内共享某个成员,它不属于任何一个对象,称为类成员,即静态成员。 对象(实例)成员具有以下特征: 访问方式:对象名. 实例成员; 类的每个实例分别包括一组该类的所有实例字段。 实例函数在类的给定实例上操作,此实例可以作为this访问。 《C#程序设计》

类(静态)成员有以下特征: 访问静态成员方式:类名.静态成员名; 一个静态字段只标识一个存储位置; 静态函数成员不在某个特定实例上操作,在这样的函数中引用this会引发编译错误。 《C#程序设计》

工作任务七:Speed类 一、自定义速度(Speed)类分析 通过向项目中添加窗体时系统自动创建的,由系统的System.Windows.Forms.Form类派生而成。 《C#程序设计》

控件名 属性名 属性值 说明 Class Name Speed Text 自定义速度 显示在窗体标题栏 Label1   Text 自定义速度 显示在窗体标题栏 Label1 请输入1~500之间的数字 用于提示输入值 TextBox1 用来输入速度 Button1 确定 《C#程序设计》

事件是可以通过代码响应或“处理”的操作。事件可由用户操作(如单击鼠标或按某个键)、程序代码或系统生成。 事件是类中的另一成员; 事件是可以通过代码响应或“处理”的操作。事件可由用户操作(如单击鼠标或按某个键)、程序代码或系统生成。 事件驱动的应用程序执行代码以响应事件。每个窗体和控件都公开一组预定义事件,可根据这些事件进行编程。 如果发生其中一个事件并且在相关联的事件处理程序中有代码,则调用该代码。 《C#程序设计》

事件处理程序是绑定到事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个处理事件的参数。 对象引发的事件类型会发生变化,但对于大多数控件,很多类型是通用的。例如,大多数对象都会处理 Click 事件。如果用户单击窗体,就会执行窗体的 Click 事件处理程序内的代码。 事件处理程序是绑定到事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个处理事件的参数。 《C#程序设计》

按钮(Button)控件的单击事件 1)功能 2)设计思路 PubClass.kk = 501 - temp 把文本框(textBox1)中的数据保存到公共类(PubClass)中的静态字段kk中,并关闭窗体。 2)设计思路 判断输入到文本框中的数据是否满足要求,如果满足保存,否则输出一提示消息框。 根据人们日常习惯,设置的数据越大,运动的速度就会越快,但是,对于时间控件(timer)而言却恰恰相反,其interval 属性值设置越小,调用的速度就会越快,因此,相关数据设置语句可参考如下: PubClass.kk = 501 - temp 《C#程序设计》

《C#程序设计》

《C#程序设计》