黑马程序员技术交流社区

标题: 在空余时间做的判断打怪游戏,现在没用了,贴上来分享下 [打印本页]

作者: 王子墨    时间: 2016-1-6 12:44
标题: 在空余时间做的判断打怪游戏,现在没用了,贴上来分享下
  1. class YouXi{
  2.         static int bao = 10;
  3.         public static void main(String[] args)        {
  4.                 Scanner arr = new Scanner(System.in);
  5. /*

  6. 杀死小兵,获得 50经验值;
  7. 经验值到达100,升级!
  8. 升级后:+5攻击,+20血量,+2防御
  9. 然后,经验上限达到120,才能升级,每升一级,经验上限就提升20.
  10. 暴击,如果小于等于10,就2倍伤害
  11. 根据键盘录入,输入1就是杀小兵,输入0就是杀boss

  12. 主角:血量100,攻击15,防御5,经验0,等级1
  13. 小兵:血量20,攻击10,防御5
  14. boss:血量500,攻击30,防御15
  15. */
  16. //人物属性值设定
  17.                 Zj zj = new Zj(100,15,5,0,1);
  18.                 Xb xb = new Xb(20,10,10);
  19.                 Boss boss = new Boss(500,30,15);
  20.                
  21. //
  22.                
  23.                
  24.                 while (true) {
  25.                         if (boss.getXl() <= 0) {
  26.                                 break;
  27.                         }
  28.                         System.out.println("输入1是杀小兵,2是查询状态,0是杀boss");
  29.                         int vs = arr.nextInt();
  30.                         if (vs == 1){
  31.                                 xzc(zj,xb);
  32.                         }else if (vs == 2){
  33.                                 zt(zj);
  34.                         }else if (vs == 0) {
  35.                                 bos(boss,zj);
  36.                         }else {
  37.                                 System.out.println("您的输入有误!");
  38.                         }
  39.                 }
  40.        

  41.         }       

  42.         public static void bos(Boss boss,Zj zj){        //杀Boss
  43.                 int a = (int)(Math.random() * 100) + 1;
  44.                 int b = (int)(Math.random() * 100) + 1;
  45.                 if (a <= bao) {
  46.                         boss.setXl(boss.getXl() - ((zj.getGj() - boss.getFy()) * 2));
  47.                         System.out.println("**获取双倍暴击**");
  48.                 }else{
  49.                         boss.setXl(boss.getXl() - (zj.getGj() - boss.getFy()));
  50.                 }
  51.                 if (boss.getXl() > 0) {
  52.                         if (a <= bao) {
  53.                                 System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy()) * 2+"滴血"+"boss剩下"+boss.getXl()+"滴血");
  54.                         }else{
  55.                                 System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy())+"滴血"+"boss剩下"+boss.getXl()+"滴血");
  56.                         }
  57.                         if (boss.getGj() <= zj.getFy()) {
  58.                                 zj.setXl(zj.getXl() -1);
  59.                                 System.out.println("boss回击,砍掉你1滴血");
  60.                                 if (zj.getXl() <= 0) {
  61.                                         System.out.println("你被boss砍死了,游戏结束");
  62.                                 }
  63.                         }else {
  64.                                 if (b <= 20) {
  65.                                         zj.setXl(zj.getXl() - (boss.getGj() - zj.getFy()) * 2);
  66.                                         System.out.println("**Boss获取双倍暴击**");
  67.                                         System.out.println("boss回击,砍掉你"+(boss.getGj()-zj.getFy()) * 2+"滴血");
  68.                                 }else {
  69.                                         zj.setXl(zj.getXl() - (boss.getGj() - zj.getFy()));
  70.                                         System.out.println("boss回击,砍掉你"+(boss.getGj()-zj.getFy())+"滴血");
  71.                                 }if (zj.getXl() <= 0) {
  72.                                         System.out.println("你被boss砍死了,游戏结束");       
  73.                                 }
  74.                         }
  75.                 }else {
  76.                         if (a <= bao) {
  77.                                 System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy()) * 2+"滴血");
  78.                         }else{
  79.                                 System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy())+"滴血");
  80.                         }
  81.                         System.out.println("****boss已被杀死,恭喜您游戏胜利****");
  82.                 }
  83.         }

  84.         public static void zt(Zj zj) {        //查询状态
  85.                 System.out.println("等级:"+zj.getDj()+"\n"+"血量:"+zj.getXl()+"\n"+"攻击力:"+zj.getGj()+"\n"+"防御力"+zj.getFy()+"\n"+"经验值"+zj.getJy()+"\n"+"暴击率"+bao+"%");
  86.         }
  87.         static int jy = 100;

  88.         public static void xzc(Zj zj,Xb xb) {                        //杀小兵
  89.                 int a = (int)(Math.random() * 100) + 1;
  90.                 if (a <= bao) {
  91.                         xb.setXl(xb.getXl() - ((zj.getGj() - xb.getFy()) * 2));
  92.                         System.out.println("**双倍暴击**");

  93.                 }else{
  94.                         xb.setXl(xb.getXl() - (zj.getGj() - xb.getFy()));
  95.                 }
  96.                 if (xb.getXl() > 0) {
  97.                         if (a <= bao) {
  98.                                 System.out.println("砍掉小兵"+(zj.getGj() - xb.getFy()) * 2+"滴血"+",小兵剩下"+xb.getXl()+"滴血");
  99.                         }else{
  100.                                 System.out.println("砍掉小兵"+(zj.getGj() - xb.getFy())+"滴血"+",小兵剩下"+xb.getXl()+"滴血");
  101.                         }
  102.                         if (xb.getGj() <= zj.getFy()) {
  103.                                 zj.setXl(zj.getXl() -1);
  104.                                 System.out.println("小兵回击,砍掉你1滴血,你现在剩下"+zj.getXl()+"滴血");
  105.                         }else {
  106.                                 zj.setXl(zj.getXl() - (xb.getGj() - zj.getFy()));
  107.                                 System.out.println("小兵回击,砍掉你"+(xb.getGj() - zj.getFy())+"滴血,你现在剩下"+zj.getXl()+"滴血");
  108.                         }
  109.                         if (zj.getXl() <= 0) {
  110.                                 System.out.println("你居然被小兵砍死了,游戏结束");
  111.                         }
  112.                 }else {
  113.                         zj.setJy(zj.getJy() + 50);
  114.                         System.out.println("小兵被杀死,经验加"+50+"现总经验为"+zj.getJy());
  115.                         xb.setXl(20);
  116.                         if (zj.getJy() >= jy) {
  117.                                 zj.setJy(0);
  118.                                 zj.setDj(zj.getDj()+ 1);
  119.                                 zj.setXl(zj.getXl()+ 20);
  120.                                 zj.setGj(zj.getGj()+ 5);
  121.                                 zj.setFy(zj.getFy()+ 2);
  122.                                 jy += 20;
  123.                                 bao = bao + 5;
  124.                                 System.out.println("\n"+"----------恭喜您升级了,现在等级为"+zj.getDj()+"级!!!!"+"\n"+"\n");
  125.                         }
  126.                 }
  127.        
  128.         }
  129. }

  130. abstract class RenWu {
  131.         private int xl,gj,fy;
  132.         public RenWu(){}
  133.         public RenWu(int xl,int gj,int fy){
  134.                 this.xl = xl;
  135.                 this.gj = gj;
  136.                 this.fy = fy;
  137.         }
  138.         public void setXl(int xl){                                        //血量
  139.                 this.xl = xl;
  140.         }
  141.         public int getXl(){                       
  142.                 return xl;
  143.         }
  144.         public void setGj(int gj){                                        //攻击
  145.                 this.gj = gj;
  146.         }
  147.         public int getGj(){
  148.                 return gj;
  149.         }
  150.         public void setFy(int fy){                                        //防御
  151.                 this.fy = fy;
  152.         }
  153.         public int getFy(){
  154.                 return fy;
  155.         }
  156. }



  157. class  Zj extends RenWu {
  158.         private int jy;
  159.         private int dj;
  160.         public Zj(){}
  161.         public Zj(int xl,int gj,int fy,int jy,int dj){
  162.                 super(xl,gj,fy);
  163.                 this.jy = jy;
  164.                 this.dj = dj;
  165.         }
  166.         public void setJy(int jy){                                        //经验
  167.                 this.jy = jy;
  168.         }
  169.         public int getJy(){
  170.                 return jy;
  171.         }
  172.         public void setDj(int dj){                                        //等级
  173.                 this.dj = dj;
  174.         }
  175.         public int getDj(){
  176.                 return dj;
  177.         }
  178. }

  179. class Xb extends RenWu {
  180.         public Xb(){}
  181.         public Xb(int xl,int gj,int fy){
  182.                 super(xl,gj,fy);
  183.         }
  184. }

  185. class Boss extends RenWu {
  186.         public Boss(){}
  187.         public Boss(int xl,int gj,int fy){
  188.                 super(xl,gj,fy);
  189.         }
  190. }
复制代码



前几天学完延迟,但是没时间做了,谁有兴趣拿去修改下。  
try(
Thread.sleep(1000);     //延迟1秒
)catch(Exception e){}
作者: 素锦流年    时间: 2016-1-6 19:03
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2