黑马程序员技术交流社区
标题:
在空余时间做的判断打怪游戏,现在没用了,贴上来分享下
[打印本页]
作者:
王子墨
时间:
2016-1-6 12:44
标题:
在空余时间做的判断打怪游戏,现在没用了,贴上来分享下
class YouXi{
static int bao = 10;
public static void main(String[] args) {
Scanner arr = new Scanner(System.in);
/*
杀死小兵,获得 50经验值;
经验值到达100,升级!
升级后:+5攻击,+20血量,+2防御
然后,经验上限达到120,才能升级,每升一级,经验上限就提升20.
暴击,如果小于等于10,就2倍伤害
根据键盘录入,输入1就是杀小兵,输入0就是杀boss
主角:血量100,攻击15,防御5,经验0,等级1
小兵:血量20,攻击10,防御5
boss:血量500,攻击30,防御15
*/
//人物属性值设定
Zj zj = new Zj(100,15,5,0,1);
Xb xb = new Xb(20,10,10);
Boss boss = new Boss(500,30,15);
//
while (true) {
if (boss.getXl() <= 0) {
break;
}
System.out.println("输入1是杀小兵,2是查询状态,0是杀boss");
int vs = arr.nextInt();
if (vs == 1){
xzc(zj,xb);
}else if (vs == 2){
zt(zj);
}else if (vs == 0) {
bos(boss,zj);
}else {
System.out.println("您的输入有误!");
}
}
}
public static void bos(Boss boss,Zj zj){ //杀Boss
int a = (int)(Math.random() * 100) + 1;
int b = (int)(Math.random() * 100) + 1;
if (a <= bao) {
boss.setXl(boss.getXl() - ((zj.getGj() - boss.getFy()) * 2));
System.out.println("**获取双倍暴击**");
}else{
boss.setXl(boss.getXl() - (zj.getGj() - boss.getFy()));
}
if (boss.getXl() > 0) {
if (a <= bao) {
System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy()) * 2+"滴血"+"boss剩下"+boss.getXl()+"滴血");
}else{
System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy())+"滴血"+"boss剩下"+boss.getXl()+"滴血");
}
if (boss.getGj() <= zj.getFy()) {
zj.setXl(zj.getXl() -1);
System.out.println("boss回击,砍掉你1滴血");
if (zj.getXl() <= 0) {
System.out.println("你被boss砍死了,游戏结束");
}
}else {
if (b <= 20) {
zj.setXl(zj.getXl() - (boss.getGj() - zj.getFy()) * 2);
System.out.println("**Boss获取双倍暴击**");
System.out.println("boss回击,砍掉你"+(boss.getGj()-zj.getFy()) * 2+"滴血");
}else {
zj.setXl(zj.getXl() - (boss.getGj() - zj.getFy()));
System.out.println("boss回击,砍掉你"+(boss.getGj()-zj.getFy())+"滴血");
}if (zj.getXl() <= 0) {
System.out.println("你被boss砍死了,游戏结束");
}
}
}else {
if (a <= bao) {
System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy()) * 2+"滴血");
}else{
System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy())+"滴血");
}
System.out.println("****boss已被杀死,恭喜您游戏胜利****");
}
}
public static void zt(Zj zj) { //查询状态
System.out.println("等级:"+zj.getDj()+"\n"+"血量:"+zj.getXl()+"\n"+"攻击力:"+zj.getGj()+"\n"+"防御力"+zj.getFy()+"\n"+"经验值"+zj.getJy()+"\n"+"暴击率"+bao+"%");
}
static int jy = 100;
public static void xzc(Zj zj,Xb xb) { //杀小兵
int a = (int)(Math.random() * 100) + 1;
if (a <= bao) {
xb.setXl(xb.getXl() - ((zj.getGj() - xb.getFy()) * 2));
System.out.println("**双倍暴击**");
}else{
xb.setXl(xb.getXl() - (zj.getGj() - xb.getFy()));
}
if (xb.getXl() > 0) {
if (a <= bao) {
System.out.println("砍掉小兵"+(zj.getGj() - xb.getFy()) * 2+"滴血"+",小兵剩下"+xb.getXl()+"滴血");
}else{
System.out.println("砍掉小兵"+(zj.getGj() - xb.getFy())+"滴血"+",小兵剩下"+xb.getXl()+"滴血");
}
if (xb.getGj() <= zj.getFy()) {
zj.setXl(zj.getXl() -1);
System.out.println("小兵回击,砍掉你1滴血,你现在剩下"+zj.getXl()+"滴血");
}else {
zj.setXl(zj.getXl() - (xb.getGj() - zj.getFy()));
System.out.println("小兵回击,砍掉你"+(xb.getGj() - zj.getFy())+"滴血,你现在剩下"+zj.getXl()+"滴血");
}
if (zj.getXl() <= 0) {
System.out.println("你居然被小兵砍死了,游戏结束");
}
}else {
zj.setJy(zj.getJy() + 50);
System.out.println("小兵被杀死,经验加"+50+"现总经验为"+zj.getJy());
xb.setXl(20);
if (zj.getJy() >= jy) {
zj.setJy(0);
zj.setDj(zj.getDj()+ 1);
zj.setXl(zj.getXl()+ 20);
zj.setGj(zj.getGj()+ 5);
zj.setFy(zj.getFy()+ 2);
jy += 20;
bao = bao + 5;
System.out.println("\n"+"----------恭喜您升级了,现在等级为"+zj.getDj()+"级!!!!"+"\n"+"\n");
}
}
}
}
abstract class RenWu {
private int xl,gj,fy;
public RenWu(){}
public RenWu(int xl,int gj,int fy){
this.xl = xl;
this.gj = gj;
this.fy = fy;
}
public void setXl(int xl){ //血量
this.xl = xl;
}
public int getXl(){
return xl;
}
public void setGj(int gj){ //攻击
this.gj = gj;
}
public int getGj(){
return gj;
}
public void setFy(int fy){ //防御
this.fy = fy;
}
public int getFy(){
return fy;
}
}
class Zj extends RenWu {
private int jy;
private int dj;
public Zj(){}
public Zj(int xl,int gj,int fy,int jy,int dj){
super(xl,gj,fy);
this.jy = jy;
this.dj = dj;
}
public void setJy(int jy){ //经验
this.jy = jy;
}
public int getJy(){
return jy;
}
public void setDj(int dj){ //等级
this.dj = dj;
}
public int getDj(){
return dj;
}
}
class Xb extends RenWu {
public Xb(){}
public Xb(int xl,int gj,int fy){
super(xl,gj,fy);
}
}
class Boss extends RenWu {
public Boss(){}
public Boss(int xl,int gj,int fy){
super(xl,gj,fy);
}
}
复制代码
前几天学完延迟,但是没时间做了,谁有兴趣拿去修改下。
try(
Thread.sleep(1000); //延迟1秒
)catch(Exception e){}
作者:
素锦流年
时间:
2016-1-6 19:03
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2