“奥特曼攻打小怪兽”java学习打怪升级第一步
---恢复内容开始---
练习:回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
不难看出场景中有两个对象:”奥特曼“这一对象抽象为”Ao"类;
“小怪兽”这一对象抽象为“Master”类;
找出场景中的对象以及对象的特征和行为:
奥特曼:特征(属性):名字,血量,攻击力;
行为:攻打小怪兽;
小怪兽:特征(属性):名字,血量,攻击力;
行为:攻打奥特曼;
弄清楚这些基本概念,开始着手新建一个AO类,代码如下:
public class Ao
{
public String name;
public int attack;
public int blood;
public void attack(Master m) //小怪兽的行为:小怪兽攻击奥特曼
{
m.blood-=attack; //m.blood=m.blood-attack。或者也可以写成:m.blood--,那么在主函数中设定的attack的值就没有作用了
System.out.println(name+"正在攻击"+m.name+","+m.name+"剩余的血量是"+m.blood);
if(m.blood<=0)
{
System.out.println(name+"胜利!");
}
}
}
接下来新建一个Master类,代码如下:
public class Master
{
public String name;
public int attack;
public int blood;
public void attack(Ao a)
{
a.blood-=attack;
System.out.println(name+"正在攻击"+a.name+","+a.name+"剩余的血量是"+a.blood);
if(a.blood<=0)
{
System.out.println(name+"胜利!");
}
}
}
最后创建一个主函数,即Manger类,代码如下:
public class Manger
{
public static void main(String [] args)
{
Ao a = new Ao();
a.name = "奥特曼";
a.attack = 3;
a.blood = 30;
Master m = new Master();
m.name ="小怪兽";
m.attack = 2;
m.blood = 30;
while(a.blood>0&&m.blood>0)
{
a.attack(m);
if(m.blood<=0)
{
break; //防止出现当小怪兽的血量为零时,继续输出“小怪兽攻打奥特曼”
}
m.attack(a);
if(m.blood<=0)
{
break;
}
}
}
}
容易犯的小错误:
1在编译的时候要保障与类名一致;(记住要大写);
2"a.blood()>0"这种表达是错误的,因为blood是公共的,它不是私人的,不需要带括号。
我的小感悟:
虽然这是一个简单的java程序,但是我花了3个小时去实现它,我不是一个具有灵敏的理工思维的学生,但是我相信勤能补拙!加油,java小菜鸟!
---恢复内容结束---
“奥特曼攻打小怪兽”java学习打怪升级第一步的更多相关文章
- 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试
20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...
- C#开发学习人工智能的第一步
前言 作为一个软件开发者,我们除了要学会复制,黏贴,还要学会调用API和优秀的开源类库. 也许,有人说C#做不了人工智能,如果你相信了,那只能说明你的思想还是狭隘的. 做不了人工智能的不是C#这种语言 ...
- java微信开发API第一步 服务器接入
I如何接入服务器,下面就为大家进行介绍 一.说明 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34 ...
- [EntLib]微软企业库5.0 学习之路——第一步、基本入门
话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理
介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前 ...
- 学习Nodejs的第一步
最近看了几本关于Node.js的书,本来个人技术分享网站http://yuanbo88.com/是打算用Node.js作为服务器端语言来处理后台的,后来又改成了PHP(也是自己研究,毕竟网上DEMO多 ...
- Java学习IO流第一天
今日内容介绍 字节流 字符流 1 字节流 在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据. 1.1 字节输出流Ou ...
- #Java学习之路——第一部分总结
今天主要是Java的入门以及idea的安装说实话,没有什么有技术含量的东西,发的也全是皮毛,但是在数组部分有很多细节需要注意,在JDK环境变量配置的地方不光光只有windows 的环境配置,还要掌握补 ...
- Java学习笔记整理第一章 java基本数据类型、修饰符、运算符
Java关键字: Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量.Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的 ...
随机推荐
- 多年前写的DataTable与实体类的转换,已放github
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 起因 代码 UnitTest G ...
- Linux目录操作
mkdir() #include <sys/stat.h> #include <sys/types.h> int mkdir(const char *pathname, mod ...
- android RelativeLayout 动态设置高度
定义: private RelativeLayout mrlay; 调高度: mrlay = (RelativeLayout) findViewById(R.id.rlay_1); android.v ...
- Android 中PopupWindow使用 (转)
参考学习后遇到问题: 要引用:有好几个,可以用错误提示解决: import android.widget.PopupWindow; import android.widget.Toast; Activ ...
- Linux下Redis开机自启(Centos)
废话少说,直接来步骤: 1.设置redis.conf中daemonize为yes,确保守护进程开启. 2.编写开机自启动脚本 vi /etc/init.d/redis 脚本内容如下: # chkcon ...
- 第14章 位图和位块传输_14.4 GDI位图对象(2)
14.4.7 在位图上绘图 (1)在内存设备环境中绘图(与真实DC不同的是,内存DC的显示表面是个位图) (2)GetTextExtentPoint32函数:用于确定文本字符串的像素大小.(此大小就是 ...
- jmeter jdbc request使用详解
1.在使用 jdbc request之前需要加载一个jar包 在test plan中将jar包引入到classpath中 2.创建一个JDBC Connection Configuration Var ...
- 转:windows下命令行工具
转自: http://www.cnblogs.com/haochuang/p/5593411.html Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows ...
- html实现弹框,并伴随遮罩层,且弹框居中
本文介绍的内容主要实现的功能有,出现弹框,并且伴随遮罩层,且弹框一直居中. html和js代码: <div id="hidebg"></div> <d ...
- git删除远程仓库的文件或目录
git rm -r --cached a/2.txt //删除a目录下的2.txt文件 删除a目录git rm -r --cached a git commit -m "删除a目录下的2 ...