package 练习包;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
public class Day01 {
public static void main(String[] args) {
//1.创建第一个角色
Student r1=new Student("菜狗",100,'男');
//2.创建第二个角色
Student r2=new Student("大侠",100,'男');
//展示角色的信息
r1.showRoleInfo();
r2.showRoleInfo();
//3.开始格斗,回合制游戏
while (true){
//r1开始攻击r2
r1.attack(r2);
//判断r2的剩余血量
if(r2.getBlood()==0){
System.out.println(r1.getName()+"k.o了"+r2.getName());
break;
}
//r2开始攻击r1
r2.attack(r1);
if(r1.getBlood()==0){
System.out.println(r2.getName()+"k.0了"+r1.getName());
break;
}
}
}
}
package 练习包;
import javax.management.relation.Role;
import java.security.PublicKey;
import java.util.Random;
public class Student {
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"
};
//受伤描述
String[] injureds_desc={
"结果%s退了半步,毫发无损",
"结果给%s造成一处於伤",
"结果一击命中,%s弯下腰",
"结果%s痛苦地闷哼一声",
"结果%s摇摇晃晃",
"结果%s脸色惨白",
"结果%s口吐鲜血",
"结果%s倒了下去"
};
//无参空构造方法
public Student(){
}
//有参构造方法
public Student(String name, int blood,char gender) {
this.name = name;
this.blood = blood;
this.gender=gender;
//随机长相
setFace(gender);
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public String getFace() {
return face;
}
//面貌随机
public void setFace(char gender) {
Random r=new Random();
if(gender=='男'){
//从boyfaces里面随机长相
int index=r.nextInt(boyfaces.length);
this.face=boyfaces[index];
}else if(gender=='女'){
//从girlfaces里面随机长相
int index=r.nextInt(girlfaces.length);
this.face=boyfaces[index];
}else {
this.face="面目全非";
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
//定义一个方法用于攻击别人
//Role r1=new Role();
//Role r2=new Role();
//r1.攻击(r2);
//方法的调用者去攻击参数
public void attack(Student 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;
//挨揍的人的剩余血量
int remainBoold= role.getBlood()-hurt;
//对剩余血量做一个验证,如果为负就修改为0
remainBoold=remainBoold<0?0:remainBoold;
//修改挨揍人的血量
role.setBlood(remainBoold);
//受伤的情况
//血量>90 0索引的描述
//80~90 1索引的描述
//70~80 2索引的描述
//60~70 3索引的描述
//40~60 4索引的描述
//20~40 5索引的描述
//10~20 6索引的描述
//小于10 7索引的描述
if(remainBoold>90){
System.out.printf(injureds_desc[0],role.getName());
}else if(remainBoold>80&&remainBoold<=90){
System.out.printf(injureds_desc[1],role.getName());
}else if(remainBoold>70&&remainBoold<=80){
System.out.printf(injureds_desc[2],role.getName());
}else if(remainBoold>60&&remainBoold<=70){
System.out.printf(injureds_desc[3],role.getName());
}else if(remainBoold>40&&remainBoold<=60){
System.out.printf(injureds_desc[4],role.getName());
}else if(remainBoold>20&&remainBoold<=40){
System.out.printf(injureds_desc[5],role.getName());
}else if(remainBoold>10&&remainBoold<=20){
System.out.printf(injureds_desc[6],role.getName());
}else {
System.out.printf(injureds_desc[7], role.getName());
}
System.out.println();
}
public void showRoleInfo(){
System.out.println("姓名为:"+getName());
System.out.println("血量为:"+getBlood());
System.out.println("性别为:"+getGender());
System.out.println("长相为:"+getFace());
}
}