2021-07-24java学习

标题Java小白学习之制作一个猫狗大战小游戏

代码:还有一些内容需要一写改进,输出效果不太好,后期有时间改进

package com.shujua.PK.cat_vs_dog;
/*

制作猫狗大战的小游戏
方法:
1.创建一个角色类。角色包括cat与dog,类的属性有生命值,攻击力,防御力,速度,其值随机生成
 生成随机数的范围:生命值(50-100),攻击力(30-50),防御力(20-30)速度(0-100)
2,开始战斗,每个回合,猫攻击狗一次,狗攻击猫一次,造成的伤害计算公式为 (自身攻击力-对面防御力),然后对面损失响应生命值
战斗不能超过最大回合,一旦超过,则生命值高的获得胜利,设置最大回合数为5
速度快的先攻击,慢的后攻击


 */

import java.util.Random;
//创建角色类,用来保存猫与狗的属性与状态
class role{
    //定义生命值
    int Health;
    //定义攻击力
    int aggressivity;
    //定义防御力
    int defense;
    //定义速度
    int speed;
    //显示角色状态
    public void state(){
        System.out.println("生命值: "+Health);
        System.out.println("攻击力: "+aggressivity);
        System.out.println("防御力: "+defense);
        System.out.println("速度: "+speed);

    }

}
public class game {

    public static void main(String[] args) {


        role cat = new role();
        role dog = new role();
        //产生一个0-100的随机数
        Random ran = new Random();
        cat.Health = ran.nextInt(50)+50;//猫的生命值
        cat.aggressivity = ran.nextInt(20)+30;//猫的攻击力
        cat.defense = ran.nextInt(10)+20;//猫的防御力
        cat.speed = ran.nextInt(100);//猫的速度
        dog.Health = ran.nextInt(50)+50;
        dog.aggressivity = ran.nextInt(20)+30;
        dog.defense = ran.nextInt(10)+20;
        dog.speed = ran.nextInt(100);
        //游戏开始时展示猫与狗的状态
        System.out.println("猫的状态");
        cat.state();
        System.out.println("狗的状态");
        dog.state();
        //猫狗开始对决
        //设置循环,最大回合数不能超过5回合
        //猫先手
        if(cat.speed>dog.speed){


          for(int i=1; i<6 ;i++) {
              dog.Health = dog.Health - cat.aggressivity + dog.defense;
              if (dog.Health <= 0) {
                System.out.println("游戏结束,猫胜利");
                System.out.println("猫的生命值:" + cat.Health);
                System.out.println("狗的生命值:" + dog.Health);

                break;
              }
              else {
                cat.Health = cat.Health - dog.aggressivity + cat.defense;
                if (cat.Health <= 0) {
                    System.out.println("游戏结束,狗胜利");
                    System.out.println("猫的生命值:" + cat.Health);
                    System.out.println("狗的生命值:" + dog.Health);
                    break;
                } else {
                    System.out.println("第" + i + "回合结束");
                    System.out.println("猫的生命值:" + cat.Health);
                    System.out.println("狗的生命值:" + dog.Health);
                }
              }
              //如果超过了最大回合数
              if(i==5){
                  if(cat.Health>dog.Health){
                      System.out.println("游戏结束,猫胜利");
                  }
                  else{
                      System.out.println("游戏结束,狗胜利");
                  }
              }
          }
        }
        //狗先手
        else{
            for(int i=1; i<6 ;i++) {

                cat.Health = cat.Health - dog.aggressivity + cat.defense;
                if (cat.Health <= 0) {
                    System.out.println("游戏结束,狗胜利");
                    System.out.println("猫的生命值:" + cat.Health);
                    System.out.println("狗的生命值:" + dog.Health);
                    break;
                }
                else {
                    dog.Health = dog.Health - cat.aggressivity + dog.defense;
                    if (dog.Health <= 0) {
                        System.out.println("游戏结束,猫胜利");
                        System.out.println("猫的生命值:" + cat.Health);
                        System.out.println("狗的生命值:" + dog.Health);
                        break;
                    } else {
                        System.out.println("第" + i + "回合结束");
                        System.out.println("猫的生命值:" + cat.Health);
                        System.out.println("狗的生命值:" + dog.Health);

                    }
                }
                //如果超过了最大回合数
                if(i==5){
                    if(cat.Health>dog.Health){
                        System.out.println("游戏结束,猫胜利");
                    }
                    else{
                        System.out.println("游戏结束,狗胜利");
                    }
                }
            }

        }


    }



结果显示:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值