面向对象编程(Object-Oriented Programming, OOP)是一种程序设计思想,它利用“对象”来封装状态和行为,使得代码更易于维护和扩展。
下面我们使用java中的面向对象编程,来实现一个文字格斗的游戏联系!
实现效果
代码实现
1.创建基础的bean
package com.gaofeng.day04;
import java.util.Random;
public class TextGame {
private String name;
private int blood;
public TextGame() {
}
public TextGame(String name, int blood) {
this.name = name;
this.blood = blood;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return blood
*/
public int getBlood() {
return blood;
}
/**
* 设置
* @param blood
*/
public void setBlood(int blood) {
this.blood = blood;
}
public String toString() {
return "TextGame{name = " + name + ", blood = " + blood + "}";
}
public void attack(TextGame role){
Random r = new Random() ;
int hurt = r.nextInt(20) + 1;
//修改挨揍人的血量
int remainBlood = Math.max(0 , (role.getBlood() - hurt));
role.setBlood(remainBlood);
System.out.println(this.getName() + "了举起拳头,打了"+ role.getName() +"一下,造成了"+hurt+"点伤害,"+role.getName()+"还剩下"+remainBlood+"血量");
}
}
重点是最后一个方法,互相攻击,要分清是谁攻击谁,计算更新对应的血量。
2.测试类
package com.gaofeng.day04;
public class TextGameText {
public static void main(String[] args) {
TextGame q1 = new TextGame("乔峰", 100);
TextGame q2 = new TextGame("鸠摩智", 100);
while (true){
q1.attack(q2);
if(q2.getBlood() == 0){
System.out.println(q1.getName() +"KO." + q2.getName());
break;
}
q2.attack(q1);
if(q1.getBlood() == 0){
System.out.println(q2.getName() +"KO." + q1.getName());
break;
}
}
}
}
运行代码,这样就实现了一个面向对象的文字格斗游戏!!!