格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),:这些信息就应该被确定下来。
_____________________________________________________________________________
main代码
public class GameTest {
public static void main(String[] args) {
//创建第一个角色
Role r1 = new Role("王天乐",100,'男');
//创建第二个角色
Role r2 = new Role("苟浩亮",100,'男');
r1.showRole();
r2.showRole();
//开始格斗回合制
while (true){
r1.attrack(r2);
//判断剩余血量
if(r2.getBlood()==0){
System.out.println(r1.getName() + "K.O" + r2.getName());
break;
}
r2.attrack(r1);
if(r1.getBlood()==0){
System.out.println(r2.getName() + "K.O" + r1.getName());
break;
}
}
}
}
javabean部分代码
import java.util.Random;
public class Role {
//姓名
private String name;
//血量
private int blood;
//性别
private char gender;
//长相 为随机的
private String face;
//长相种类
String[] boyfaces = {"风流俊雅", "气宇轩昂", "相貌英俊", "五官端正", "相貌平平", "一塌糊涂", "面目狰狞"};
String[] girlfaces = {"美奂绝伦", "沉鱼落雁", "婷婷玉立", "身材娇好", "相貌平平", "相貌简陋", "惨不忍睹"};
//attack 攻击描述:
String[] attacks_desc = {
"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。",
"%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。",
"%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。",
"%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。",
"%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。",
"%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"
};
//injured 受伤描述:
String[] injureds_desc = {
"结果%s退了半步,毫发无损",
"结果给%s造成一处瘀伤",
"结果一击命中,%s痛得弯下腰",
"结果%s痛苦地闷哼了一声,显然受了点内伤",
"结果%s摇摇晃晃,一跤摔倒在地",
"结果%s脸色一下变得惨白,连退了好几步",
"结果『轰』的一声,%s口中鲜血狂喷而出",
"结果%s一声惨叫,像滩软泥般塌了下去"
};
public Role() {
}
public Role(String name, int blood, char gender) {
this.name = name;
this.blood = blood;
this.gender = gender;
setFace(gender);
}
/**
* 获取
*
* @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;
}
/**
* 获取
*
* @return gender
*/
public char getGender() {
return gender;
}
/**
* 设置
*
* @param gender
*/
public void setGender(char gender) {
this.gender = gender;
}
/**
* 获取
*
* @return face
*/
public String getFace() {
return face;
}
/**
* 设置
*
* @param face
*/
public void setFace(char gender) {
Random r = new Random();
if (gender == '男') {
int index = r.nextInt(boyfaces.length);
this.face = boyfaces[index];
} else if (gender == '女') {
int index = r.nextInt(girlfaces.length);
this.face = girlfaces[index];
} else {
this.face = "不男不女";
}
}
//定义一个方法用于攻击别人
public void attrack(Role role) {
Random r = new Random();
int index = r.nextInt(attacks_desc.length);
String kungfu = attacks_desc[index];
//输出一个攻击效果
System.out.printf(kungfu,this.getName(),role.getName());
System.out.println();
//造成伤害1-20
int hurt = r.nextInt(20) + 1;//1-20
//剩余血量
int reblood = role.getBlood() - hurt;
//对剩余血量做个验证,如果为负数则修改为零
reblood = reblood < 0 ? 0 : reblood;
//修改被攻击人血量
role.setBlood(reblood);
//受伤害的描述
//血量>90 0索引的描述
//80-90 1索引的描述
//70-80 2
//60-70 3
//40-60 4
//20-40 5
//10-20 6
//<10 7
if(reblood>90){
System.out.printf(injureds_desc[0],role.getName());
}else if (reblood>80&&reblood<=90){
System.out.printf(injureds_desc[1],role.getName());
}else if(reblood>70&&reblood<=80){
System.out.printf(injureds_desc[2],role.getName());
}else if(reblood>60&&reblood<=70){
System.out.printf(injureds_desc[3],role.getName());
}else if(reblood>40&&reblood<=60){
System.out.printf(injureds_desc[4],role.getName());
}else if(reblood>20&&reblood<=40){
System.out.printf(injureds_desc[5],role.getName());
}else if(reblood>10&&reblood<=20){
System.out.printf(injureds_desc[6],role.getName());
}else if(reblood<10){
System.out.printf(injureds_desc[7],role.getName());
}
System.out.println();
}
public void showRole() {
System.out.println("姓名为:" + getName());
System.out.println("血量为:" + getBlood());
System.out.println("性别为:" + getGender());
System.out.println("长相为:" + getFace());
}
}
运行结果如下
姓名为:王天乐
血量为:100
性别为:男
长相为:一塌糊涂
姓名为:苟浩亮
血量为:100
性别为:男
长相为:相貌英俊
王天乐使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向苟浩亮。
结果苟浩亮退了半步,毫发无损
苟浩亮大喝一声,身形下伏,一招【劈雷坠地】,捶向王天乐双腿。
结果给王天乐造成一处瘀伤
王天乐使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向苟浩亮。
结果苟浩亮退了半步,毫发无损
苟浩亮阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向王天乐。
结果一击命中,王天乐痛得弯下腰
王天乐大喝一声,身形下伏,一招【劈雷坠地】,捶向苟浩亮双腿。
结果苟浩亮退了半步,毫发无损
苟浩亮使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向王天乐。
结果王天乐痛苦地闷哼了一声,显然受了点内伤
王天乐使出了一招【背心钉】,转到对方的身后,一掌向苟浩亮背心的灵台穴拍去。
结果给苟浩亮造成一处瘀伤
苟浩亮上步抢身,招中套招,一招【劈挂连环】,连环攻向王天乐。
结果王天乐摇摇晃晃,一跤摔倒在地
王天乐使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向苟浩亮。
结果苟浩亮痛苦地闷哼了一声,显然受了点内伤
苟浩亮阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向王天乐。
结果王天乐摇摇晃晃,一跤摔倒在地
王天乐运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向苟浩亮。
结果苟浩亮摇摇晃晃,一跤摔倒在地
苟浩亮上步抢身,招中套招,一招【劈挂连环】,连环攻向王天乐。
结果王天乐摇摇晃晃,一跤摔倒在地
王天乐运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向苟浩亮。
结果苟浩亮摇摇晃晃,一跤摔倒在地
苟浩亮使出了一招【背心钉】,转到对方的身后,一掌向王天乐背心的灵台穴拍去。
结果王天乐摇摇晃晃,一跤摔倒在地
王天乐使出了一招【背心钉】,转到对方的身后,一掌向苟浩亮背心的灵台穴拍去。
结果苟浩亮摇摇晃晃,一跤摔倒在地
苟浩亮阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向王天乐。
结果王天乐脸色一下变得惨白,连退了好几步
王天乐大喝一声,身形下伏,一招【劈雷坠地】,捶向苟浩亮双腿。
结果苟浩亮摇摇晃晃,一跤摔倒在地
苟浩亮运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向王天乐。
结果『轰』的一声,王天乐口中鲜血狂喷而出
王天乐大喝一声,身形下伏,一招【劈雷坠地】,捶向苟浩亮双腿。
结果苟浩亮脸色一下变得惨白,连退了好几步
苟浩亮上步抢身,招中套招,一招【劈挂连环】,连环攻向王天乐。
结果王天乐一声惨叫,像滩软泥般塌了下去
苟浩亮K.O王天乐
进程已结束,退出代码为 0