Java实现简单的回合制游戏

实现简单的回合制游戏

测试类

package turn_base;

import javax.security.sasl.SaslServer;

/*
 * 回合制游戏的需求
 *        1.玩家
 *             血量
 *             基础攻击力(物理攻击/法术攻击)
 *             基础防御力(物理/法术)
 *             敏捷度(随机生成)
 *                   武器(需购买,然后进行选择)
 *                        攻击力(物理/法术)
 *                        耐久度
 *                       暴击率
 *                  防具(需购买,然后进行选择)
 *                       防御力(物理/法术)
 *                       闪避率
 *                       耐久度
 *       2.10回合制
 *             每回合先手攻击的玩家是由敏捷度决定的
 *             一个回合两个玩家分别都得进行攻击和防御操作
 *             每回合之后,都会输出两个玩家的剩余血量
 *             每次攻击都会显示攻击伤害值,抵挡伤害值
 *             最后血量剩余最多的玩家获胜
 *       3.
 *         攻击
 *         防御
 *       * */
public class Test extends Method {
       public static void main(String[] args)
       {
           Test t=new Test();

        t.Narrator();
        System.out.println("------------------------------------------");
         t.boundary1();
         t.choose1();


       }
}

方法类

package turn_base;

import com.sun.javafx.collections.MappingChange;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

import java.util.*;
import java.util.jar.Attributes;

public class Method {
    public int sum_priece_play1=500;
    public int sum_priece_play2=500;

    //明天的任务:将这三个map进行存储使用
    Map<Player,Attribute1> map001=new LinkedHashMap<>();//存储玩家和武器
    Map<Player,User> map002=new LinkedHashMap<>();//存储玩家和角色
    Map<Player,Attribute2> map003=new LinkedHashMap<>();//存储玩家和防具


    User user1=new User(1,"索隆",2000,200,0,50,50);
    User user2=new User(2,"甄姬",1000,0,400,50,50);
    User user3=new User(3,"丘比特",1500,300,300,100,100);
    User user4=new User(4,"狄仁杰",1200,600,0,100,100);
    User user5=new User(5,"无敌的寂寞",10000,10000,10000,10000,10000);
    public Scanner scanner=new Scanner(System.in);
    Player player1=new Player();
    Player player2=new Player();

//旁白
    public void Narrator()
    {
        System.out.println("I see the player you mean.\n" +
                "\n" +
                "我看到你所指的那位玩家了。 ******(Playername)?\n" +
                "\n" +
                "******(玩家名称)?");
        System.out.println("------------请输入任意键+回车继续------------");
        Scanner input = new Scanner(System.in);
        String str = input.next();
        System.out.println("Yes. Take care. It has reached a higher level now. It can read our thoughts.\n" +
                "\n" +
                "是的。小心。它已达到了更高的境界。它能够阅读我们的思想。");
        System.out.println("------------请输入任意键+回车继续------------");
        Scanner input1 = new Scanner(System.in);
        String str1 = input.next();
        System.out.println("That doesn't matter. It thinks we are part of the game.\n" +
                "\n" +
                "无伤大雅。它认为我们是游戏的一部分。");
        System.out.println("------------请输入任意键+回车继续------------");
        Scanner input2 = new Scanner(System.in);
        String str2 = input2.next();
        System.out.println("废话少说,来吧!哈哈哈哈");
        System.out.println("------------请输入任意键+回车继续------------");
        Scanner input3 = new Scanner(System.in);
        String str3 = input3.next();
    }
//界面
    public  void  boundary1()
    {
//      System.out.println("------------------------------------------");
      System.out.println("-----------欢迎进入二人世纪------------");
      System.out.println("-------------1.开始游戏---------------");
      System.out.println("-------------2.金币余额---------------");
      System.out.println("-------------3.退出游戏---------------");
    }
    public void choose1()
    {
        System.out.println("--------------请选择----------------");
        int i;
        i= scanner.nextInt();
       switch (i)
       {
           case 1:
               System.out.println("------------------------------------------");
               boundary2();
               choose2();
               break;
           case 2:
               System.out.println("------------------------------------------");
               gold_coin();
               boundary1();
               choose1();
               break;
           case 3:
              System.out.println("------------------------------------------");
              exit();
               break;
               default:
                   System.out.println("-------输入错误!重新输入!---------");
                   choose1();
                   break;
       }
    }
    public void gold_coin()
    {
        System.out.println("------------金币余额----------");
        System.out.print("玩家1的金币仓库: ");
        System.out.println(sum_priece_play1);
        System.out.println("---------------------");
        System.out.print("玩家2的金币仓库: ");
        System.out.println(sum_priece_play2);
    }
    //进入开始游戏后的选择
    public void boundary2()
    {
        System.out.println("-------------1.角色选择--------------");
        System.out.println("-------------2.开始战斗--------------");
        System.out.println("-------------3.返回上层--------------");

    }
    public void choose2()
    {
        System.out.println("--------------请选择----------------");
        int i;
        i= scanner.nextInt();
        switch (i)
        {
            case 1:
                System.out.println("------------------------------------------");
                role();
                System.out.println("------------------------------------------");
                System.out.println("------------------------------------------");
                System.out.println("------------------------------------------");
                if(j==3)
                {
            if(map1.isEmpty())
            {
                System.out.println("两位玩家都未购买武器!");
            }
            if(map2.isEmpty())
            {
                System.out.println("两位玩家都未购买防具!");
            }
                System.out.print("角色--->>>");
                System.out.println(map);
                System.out.print("武器--->>>");
                System.out.println(map1);
                System.out.print("防具--->>>");
                System.out.println(map2);
            System.out.println("两位玩家角色,武器,防具都已备齐!!!");
            System.out.println("两位玩家即将回到新手村哦......");
        }
        else {}
                boundary2();
                choose2();
                break;
            case 2:
                System.out.println("------------------------------------------");
                if (map.isEmpty())
                {
                    System.out.println("请玩家先选择角色然后战斗哦!");
                    boundary2();
                    choose2();
                }else
                {
                    battle();
                }
                boundary1();
                choose1();
                break;
            case 3:
                boundary1();
                choose1();
                break;
            default:
                System.out.println("-------输入错误!重新输入!---------");
                choose2();
                break;
        }
    }
//购买装备
     //武器商店(武器有属性)
class Attribute1
{
    private String name;//武器名
    private double physis_aggressivity;//物理攻击力
    private double magic_aggressivity;//法术攻击力
    private int durability1 ;//耐久度
    private int  critical_hit;//触发暴击
    private double critical;//暴击率
    private int priece;//价格


    public Attribute1(String name, double physis_aggressivity, double magic_aggressivity, int durability1, int critical_hit, double critical,int priece) {
        this.name = name;
        this.physis_aggressivity = physis_aggressivity;
        this.magic_aggressivity = magic_aggressivity;
        this.durability1 = durability1;
        this.critical_hit = critical_hit;
        this.critical = critical;
        this.priece = priece;
    }

    @Override
    public String toString() {
        return "Attribute1{" +
                "name='" + name + '\'' +
                ", physis_aggressivity=" + physis_aggressivity +
                ", magic_aggressivity=" + magic_aggressivity +
                ", durability1=" + durability1 +
                ", critical_hit=" + critical_hit +
                ", priece=" + priece +
                '}';
    }

    public double getCritical() {
        return critical;
    }

    public void setCritical(double critical) {
        this.critical = critical;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPriece() {
        return priece;
    }

    public void setPriece(int priece) {
        this.priece = priece;
    }

    public double getPhysis_aggressivity() {
        return physis_aggressivity;
    }

    public void setPhysis_aggressivity(double physis_aggressivity) {
        this.physis_aggressivity = physis_aggressivity;
    }

    public double getMagic_aggressivity() {
        return magic_aggressivity;
    }

    public void setMagic_aggressivity(double magic_aggressivity) {
        this.magic_aggressivity = magic_aggressivity;
    }

    public int getDurability1() {
        return durability1;
    }

    public void setDurability1(int durability1) {
        this.durability1 = durability1;
    }

    public int isCritical_hit() {
        return critical_hit;
    }

    public void setCritical_hit(int critical_hit) {
        this.critical_hit = critical_hit;
    }
}
    Attribute1 attribute11=new Attribute1("护魂法杖",0,100,30,(int)(Math.random()*10),0.5,100);
    Attribute1 attribute12=new Attribute1("流光星陨刀",100,0,30,(int)(Math.random()*10),0.5,100);
    Attribute1 attribute13=new Attribute1("散月拳套",200,0,40,(int)(Math.random()*8),0.7,200);
    Attribute1 attribute14=new Attribute1("念珠",0,200,40,(int)(Math.random()*8),0.7,200);
    public void weapons_store(User user)
    {
        int i;

        System.out.println("------------------------------------------");
        System.out.println("1"+"--->>>"+attribute11);
        System.out.println("------------------------------------------");
        System.out.println("2"+"--->>>"+attribute12);
        System.out.println("------------------------------------------");
        System.out.println("3"+"--->>>"+attribute13);
        System.out.println("------------------------------------------");
        System.out.println("4"+"--->>>"+attribute14);
        System.out.println("------------------------------------------");
        System.out.println("5"+"--->>>"+"不购买武器");
        System.out.println("请输入相应武器编号选择要购买的武器!(注意根据自己所选角色的属性购买哦)");
        hhh1(user);//先购买武器
    }
    Map<String,String> map1=new HashMap<>();//武器存储
    int a;
    public void hhh1(User user)
    {


           System.out.println("请玩家"+j+"进行武器购买");
           a=scanner.nextInt();
           switch (a)
           {
               case 1:
                   if(j==1)
                   {
                       if(sum_priece_play1>=attribute11.getPriece())
                       {
                           map1.put("玩家1的武器",attribute11.getName());
                           map001.put(player1,attribute11);
                           player1.setPhysis_hurt((attribute11.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player1.setMagic_hurt((attribute11.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player1.setWuqi_durability(attribute11.getDurability1());
                           player1.setCritical((user.getMagic_base_aggressivity()*attribute11.getCritical()));

                           sum_priece_play1-=attribute11.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }

                   }
                   else if(j==2)
                   {
                       if(sum_priece_play2>=attribute11.getPriece())
                       {
                           map1.put("玩家2的武器",attribute11.getName());
                           map001.put(player2,attribute11);
                           player2.setPhysis_hurt((attribute11.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player2.setMagic_hurt((attribute11.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player2.setWuqi_durability(attribute11.getDurability1());
                           player2.setCritical(user.getMagic_base_aggressivity()*attribute11.getCritical());

                           sum_priece_play2-=attribute11.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }
                   }
                   else {}

                   break;
               case 2:
                   if(j==1)
                   {
                       if(sum_priece_play1>=attribute12.getPriece())
                       {
                           map1.put("玩家1的武器",attribute12.getName());
                           map001.put(player1,attribute12);
                           player1.setPhysis_hurt((attribute12.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player1.setMagic_hurt((attribute12.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player1.setWuqi_durability(attribute12.getDurability1());
                           player1.setCritical(user.getMagic_base_aggressivity()*attribute12.getCritical());

                           sum_priece_play1-=attribute12.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }

                   }
                   else if(j==2)
                   {
                       if(sum_priece_play2>=attribute12.getPriece())
                       {
                           map1.put("玩家2的武器",attribute12.getName());
                           map001.put(player2,attribute12);
                           player2.setPhysis_hurt((attribute12.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player2.setMagic_hurt((attribute12.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player2.setWuqi_durability(attribute12.getDurability1());
                           player2.setCritical(user.getMagic_base_aggressivity()*attribute12.getCritical());

                           sum_priece_play2-=attribute12.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }
                   }
                   else {}

                   break;
               case 3:
                   if(j==1)
                   {
                       if(sum_priece_play1>=attribute13.getPriece())
                       {
                           map1.put("玩家1的武器",attribute13.getName());
                           map001.put(player1,attribute13);
                           player1.setPhysis_hurt((attribute13.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player1.setMagic_hurt((attribute13.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player1.setWuqi_durability(attribute13.getDurability1());
                           player1.setCritical(user.getMagic_base_aggressivity()*attribute13.getCritical());

                           sum_priece_play1-=attribute13.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }

                   }
                   else if(j==2)
                   {
                       if(sum_priece_play2>=attribute13.getPriece())
                       {
                           map1.put("玩家2的武器",attribute13.getName());
                           map001.put(player2,attribute13);
                           player2.setPhysis_hurt((attribute13.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player2.setMagic_hurt((attribute13.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player2.setWuqi_durability(attribute13.getDurability1());
                           player2.setCritical(user.getMagic_base_aggressivity()*attribute13.getCritical());

                           sum_priece_play2-=attribute13.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }
                   }
                   else {}

                   break;
               case 4:
                   if(j==1)
                   {
                       if(sum_priece_play1>=attribute14.getPriece())
                       {
                           map1.put("玩家1的武器",attribute14.getName());
                           map001.put(player1,attribute14);
                           player1.setPhysis_hurt((attribute14.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player1.setMagic_hurt((attribute14.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player1.setWuqi_durability(attribute14.getDurability1());
                           player1.setCritical(user.getMagic_base_aggressivity()*attribute14.getCritical());

                           sum_priece_play1-=attribute14.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }

                   }
                   else if(j==2)
                   {
                       if(sum_priece_play2>=attribute14.getPriece())
                       {
                           map1.put("玩家2的武器",attribute14.getName());
                           map001.put(player2,attribute14);
                           player2.setPhysis_hurt((attribute14.getPhysis_aggressivity()+user.getPhysis_base_aggressivity()));
                           player2.setMagic_hurt((attribute14.getMagic_aggressivity()+user.getMagic_base_aggressivity()));
                           player2.setWuqi_durability(attribute14.getDurability1());
                           player2.setCritical(user.getMagic_base_aggressivity()*attribute14.getCritical());

                           sum_priece_play2-=attribute14.getPriece();
                           System.out.println(map1);
                       }
                       else
                       {
                           System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                       }
                   }
                   else {}

                   break;
               case 5:
                   System.out.println("玩家"+j+"未购买武器");
                   break;
               default:
                   System.out.println("输入错误!请重新输入!");
                   hhh1(user);
                   break;
           }
    }
    //防具商店(防具有属性)
    class Attribute2
       {
           private String name;
           private int durability1;//耐久度
           private double physics_defensive;//物理防御力
           private double magic_defensive;//法术防御力
           private int dodge;//闪避(触发闪避之后抵御全部攻击)
           private double priece;
           public int getDurability1() {
               return durability1;
           }

           public void setDurability1(int durability1) {
               this.durability1 = durability1;
           }

           public double getPhysics_defensive() {
               return physics_defensive;
           }

           public void setPhysics_defensive(double physics_defensive) {
               this.physics_defensive = physics_defensive;
           }

           public double getMagic_defensive() {
               return magic_defensive;
           }

           public void setMagic_defensive(double magic_defensive) {
               this.magic_defensive = magic_defensive;
           }

           public int isDodge() {
               return dodge;
           }

           public void setDodge(int dodge) {
               this.dodge = dodge;
           }

           public String getName() {
               return name;
           }

           public void setName(String name) {
               this.name = name;
           }

           public double getPriece() {
               return priece;
           }

           public void setPriece(double priece) {
               this.priece = priece;
           }

           public Attribute2(String name, int durability1, double physics_defensive, double magic_defensive, int dodge, double priece) {
               this.name = name;
               this.durability1 = durability1;
               this.physics_defensive = physics_defensive;
               this.magic_defensive = magic_defensive;
               this.dodge = dodge;
               this.priece = priece;
           }

           @Override
           public String toString() {
               return "Attribute2{" +
                       "name='" + name + '\'' +
                       ", durability1=" + durability1 +
                       ", physics_defensive=" + physics_defensive +
                       ", magic_defensive=" + magic_defensive +
                       ", dodge=" + dodge +
                       ", priece=" + priece +
                       '}';
           }
       }
        Attribute2 attribute21=new Attribute2("血之魂臂铠",30,0,100,(int)(Math.random()*13),300);
        Attribute2 attribute22=new Attribute2("百战盔",30,100,0,(int)(Math.random()*13),300);
        Attribute2 attribute23=new Attribute2("奥尔卡的黑狼图腾 ",40,200,200,(int)(Math.random()*9),500);
        public void armor_store(User user)
        {
            int i;

            System.out.println("------------------------------------------");
            System.out.println("1"+"--->>>"+attribute21);
            System.out.println("------------------------------------------");
            System.out.println("2"+"--->>>"+attribute22);
            System.out.println("------------------------------------------");
            System.out.println("3"+"--->>>"+attribute23);
            System.out.println("------------------------------------------");
            System.out.println("4"+"--->>>"+"不购买防具");
            System.out.println("请输入相应防具编号选择要购买的防具!(注意根据自己所选角色的属性购买哦)");
            hhh2(user);
        }
        int b;
        Map<String,String> map2=new LinkedHashMap<>();//防具存储
    public void hhh2(User user)
        {
            System.out.println("请玩家"+j+"进行防具购买");
            b=scanner.nextInt();
            switch (b)
            {
                case 1:
                    if(j==1)
                    {
                        if (sum_priece_play1>=attribute21.getPriece())
                        {
                            map2.put("玩家1的防具:",attribute21.getName());
                            map003.put(player1,attribute21);
                            player1.setPhysis_defend((user.getBase_defensive_physis()+attribute21.getPhysics_defensive()));
                            player1.setMagic_defend((user.getBase_defensive_magic()+attribute21.getMagic_defensive()));
                            player1.setFangju_durability(attribute21.getDurability1());
//                            player1.setDodge(attribute21.isDodge());
                            sum_priece_play1-=attribute21.getPriece();
                            System.out.println(map2);
                            j++;
                        }
                        else
                            {
                                System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                                j++;
                            }
                    }
                    else if(j==2)
                    {
                        if (sum_priece_play2>=attribute21.getPriece())
                        {
                            map2.put("玩家2的防具:",attribute21.getName());
                            map003.put(player2,attribute21);
                            player2.setPhysis_defend((user.getBase_defensive_physis()+attribute21.getPhysics_defensive()));
                            player2.setMagic_defend((user.getBase_defensive_magic()+attribute21.getMagic_defensive()));
                            player2.setFangju_durability(attribute21.getDurability1());
//                            player2.setDodge(attribute21.isDodge());
                            sum_priece_play2-=attribute21.getPriece();
                            System.out.println(map2);
                            j++;
                        }
                        else
                            {
                                System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                                j++;
                            }
                    }
                    else {}

                    break;
                case 2:
                    if(j==1)
                    {
                        if (sum_priece_play1>=attribute22.getPriece())
                        {
                            map2.put("玩家1的防具:",attribute22.getName());
                            map003.put(player1,attribute22);
                            player1.setPhysis_defend((user.getBase_defensive_physis()+attribute22.getPhysics_defensive()));
                            player1.setMagic_defend((user.getBase_defensive_magic()+attribute22.getMagic_defensive()));
                            player1.setFangju_durability(attribute22.getDurability1());
//                            player1.setDodge(attribute22.isDodge());
                            sum_priece_play1-=attribute22.getPriece();
                            System.out.println(map2);
                            j++;
                        }
                        else
                        {
                            System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                            j++;
                        }
                    }
                    else if(j==2)
                    {
                        if (sum_priece_play2>=attribute22.getPriece())
                        {
                            map2.put("玩家2的防具:",attribute21.getName());
                            map003.put(player2,attribute22);
                            player2.setPhysis_defend((user.getBase_defensive_physis()+attribute22.getPhysics_defensive()));
                            player2.setMagic_defend((user.getBase_defensive_magic()+attribute22.getMagic_defensive()));
                            player2.setFangju_durability(attribute22.getDurability1());
//                            player2.setDodge(attribute22.isDodge());
                            sum_priece_play2-=attribute22.getPriece();
                            System.out.println(map2);
                            j++;
                        }
                        else
                        {
                            System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                            j++;
                        }
                    }
                    else {}
                   break;
                case 3:
                    if(j==1)
                    {
                        if (sum_priece_play1>=attribute23.getPriece())
                        {
                            map2.put("玩家1的防具:",attribute23.getName());
                            map003.put(player1,attribute23);
                            player1.setPhysis_defend((user.getBase_defensive_physis()+attribute23.getPhysics_defensive()));
                            player1.setMagic_defend((user.getBase_defensive_magic()+attribute23.getMagic_defensive()));
                            player1.setFangju_durability(attribute23.getDurability1());
//                            player1.setDodge(attribute23.isDodge());
                            sum_priece_play1-=attribute23.getPriece();
                            System.out.println(map2);
                            j++;
                        }
                        else
                        {
                            System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                            j++;
                        }
                    }
                    else if(j==2)
                    {
                        if (sum_priece_play2>=attribute23.getPriece())
                        {
                            map2.put("玩家2的防具:",attribute23.getName());
                            map003.put(player2,attribute23);
                            player2.setPhysis_defend((user.getBase_defensive_physis()+attribute23.getPhysics_defensive()));
                            player2.setMagic_defend((user.getBase_defensive_magic()+attribute23.getMagic_defensive()));
                            player2.setFangju_durability(attribute23.getDurability1());
//                            player2.setDodge(attribute23.isDodge());
                            sum_priece_play2-=attribute23.getPriece();
                            System.out.println(map2);
                            j++;
                        }
                        else
                        {
                            System.out.println("余额不够哦!请玩家"+j+"先参加战斗赚取金币哦!");
                            j++;
                        }
                    }
                    else {}
                    break;
                case 4:
                    System.out.println("玩家"+j+"未购买防具");
                    j++;
                    break;
                default:
                    System.out.println("输入错误!请重新输入!");
                    hhh2(user);
                        break;
            }
        }
//开始游戏
      //选择角色
    Map<String,String> map=new LinkedHashMap<String, String>();
    public int j=1;
    public void role()
    {
        hhh();
    }
    public void hhh()
    {
        for (j=1;j<=2;)
        {
            System.out.println("---------请进行角色选择:----------");
            System.out.println("编号:"+user1.getId()+"--->>>角色:"+user1);
            System.out.println("------------------------------------------");
            System.out.println("编号:"+user2.getId()+"--->>>角色:"+user2);
            System.out.println("------------------------------------------");
            System.out.println("编号:"+user3.getId()+"--->>>角色:"+user3);
            System.out.println("------------------------------------------");
            System.out.println("编号:"+user4.getId()+"--->>>角色:"+user4);
            System.out.println("------------------------------------------");
            System.out.println("编号:"+user5.getId()+"--->>>角色:"+user5);
            System.out.println("------------------------------------------");
            System.out.println("请玩家"+j+"进行角色选择");
            System.out.println("请输入角色对应的编号:");
            int i=scanner.nextInt();
            switch (i)
            {
                case 1:
                    System.out.print("恭喜玩家"+j+"获得角色:--->>>");
                    System.out.println(user1.getName());
                    if(j==1)
                    {
                        map.put("玩家1",user1.getName());
                        map002.put(player1,user1);
                        player1.setName(user1.getName());
                        player1.setBleed(user1.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user1);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user1);
                    }
                    else if(j==2)
                    {

                        map.put("玩家2",user1.getName());
                        map002.put(player2,user1);
                        player2.setName(user1.getName());
                        player2.setBleed(user1.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user1);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user1);
                    }
                    else
                        {}
                    break;
                case 2:
                    System.out.print("恭喜玩家"+j+"获得角色:--->>>");
                    System.out.println(user2.getName());
                    if(j==1)
                    {
                        map.put("玩家1",user2.getName());
                        map002.put(player1,user2);
                        player1.setName(user2.getName());
                        player1.setBleed(user2.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user2);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user2);
                    }
                    else if(j==2)
                    {
                        map.put("玩家2",user2.getName());
                        map002.put(player2,user2);
                        player2.setName(user2.getName());
                        player2.setBleed(user2.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user2);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user2);
                    }
                    else {}
                    break;
                case 3:
                    System.out.print("恭喜玩家"+j+"获得角色:--->>>");
                    System.out.println(user3.getName());
                    if(j==1)
                    {
                        map.put("玩家1",user3.getName());
                        map002.put(player1,user3);
                        player1.setName(user3.getName());
                        player1.setBleed(user3.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user3);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user3);
                    }
                    else if(j==2)
                    {
                        map.put("玩家2",user3.getName());
                        map002.put(player2,user3);
                        player2.setName(user3.getName());
                        player2.setBleed(user3.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user3);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user3);
                    }
                    else {}
                    break;
                case 4:
                    System.out.print("恭喜玩家"+j+"获得角色:--->>>");
                    System.out.println(user4.getName());
                    if(j==1)
                    {
                        map.put("玩家1",user4.getName());
                        map002.put(player1,user4);
                        player1.setName(user4.getName());
                        player1.setBleed(user4.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user4);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user4);
                    }
                    else if(j==2)
                    {
                        map.put("玩家2",user4.getName());
                        map002.put(player2,user4);
                        player2.setName(user4.getName());
                        player2.setBleed(user4.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user4);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user4);
                    }
                    else {}
                    break;
                case 5:
                    System.out.print("恭喜玩家"+j+"获得角色:--->>>");
                    System.out.println(user5.getName());
                    if(j==1)
                    {
                        map.put("玩家1",user5.getName());
                        map002.put(player1,user5);
                        player1.setName(user5.getName());
                        player1.setBleed(user5.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user5);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user5);
                    }
                    else if(j==2)
                    {
                        map.put("玩家2",user5.getName());
                        map002.put(player2,user5);
                        player2.setName(user5.getName());
                        player2.setBleed(user5.getBase_blood_volume());
                        System.out.println("玩家"+j+"请购买武器");
                        weapons_store(user5);
                        System.out.println("玩家"+j+"请购买防具");
                        armor_store(user5);
                    }
                    else {}
                    break;
                default:
                    System.out.println("-------输入错误!重新输入!---------");
                    hhh();
                    break;
            }
        }
    }
     //攻击
     public int k;
            //每次攻击都会消耗武器的耐久度每次消耗6
     public double sum_attack=0;
      //每进入一次攻击回合都会对武器的暴击率进行调用
    public void attack(Player player)
    {

        System.out.println("玩家"+player.getName()+"开始攻击");
        if(player.getWuqi_durability()>0)
        {
            System.out.println(map001.get(player).isCritical_hit());
           if(map001.get(player).isCritical_hit()==3||map001.get(player).isCritical_hit()==5||map001.get(player).isCritical_hit()==1||map003.get(player).isDodge()==7||map003.get(player).isDodge()==2||map003.get(player).isDodge()==0)//触发暴击
           {
               sum_attack=(player.getPhysis_hurt()+player.getMagic_hurt());
               sum_attack+=(sum_attack*player.getCritical());
               System.out.println("玩家"+player.getName()+"触发暴击并造成了"+sum_attack+"伤害");
           }
           else//未触发
           {
               sum_attack=(player.getPhysis_hurt()+player.getMagic_hurt());
               System.out.println("玩家"+player.getName()+"未触发暴击并造成了"+sum_attack+"伤害");
           }
           player.setWuqi_durability((player.getWuqi_durability()-4));
        }
        else//没有武器了
        {
            sum_attack=map002.get(player).getMagic_base_aggressivity()+map002.get(player).getPhysis_base_aggressivity();
            System.out.println("玩家"+player.getName()+"武器报废或者无武器时造成了"+sum_attack+"伤害");
        }
    }
     //防御
     public int h;
          //每次防御都会消耗防具的耐久度为6
     public  double sum_defend;
     //每一回合进入防御都会对防具的闪避率进行调用
    public void defend(Player player)
    {

       System.out.println("玩家"+player.getName()+"开始防御");
       if(player.getFangju_durability()>0)
       {
           System.out.println(map003.get(player).isDodge());
           if(map003.get(player).isDodge()==5||map003.get(player).isDodge()==7||map003.get(player).isDodge()==1||map003.get(player).isDodge()==2)//触发闪避
           {
               System.out.println("玩家"+player.getName()+"触发闪避了,敌方攻击无效!哈哈哈!");
           }
           else //未触发闪避
           {
               sum_defend=(player.getMagic_defend()+player.getPhysis_defend());
               if(sum_defend<=sum_attack)
               {
                   System.out.println("玩家"+player.getName()+"的防具抵挡了"+sum_defend+"伤害");
                   player.setBleed((player.getBleed()-(sum_attack-sum_defend)));
               }
               else//没有防具
               {

                   System.out.println("玩家"+player.getName()+"的防具抵挡了"+sum_defend+"伤害");

               }

           }
           player.setFangju_durability((player.getFangju_durability()-4));
       }
       else //没有防具了
       {
           sum_defend=map002.get(player).getBase_defensive_magic()+map002.get(player).getBase_defensive_physis();
           System.out.println("玩家"+player.getName()+"防具报废或无防具时抵挡了"+sum_defend+"伤害");
           player.setBleed((player.getBleed()-(sum_attack-sum_defend)));
       }
    }
    //开始战斗
    public void battle()
    {
        /*Player player3=new Player(player1.getName(),player1.getBleed(),player1.getPhysis_hurt(),player1.getMagic_hurt(),player1.getPhysis_defend(),player1.getMagic_defend(),player1.getWuqi_durability(),player1.getFangju_durability(),player1.getCritical());//玩家1
        Player player4=new Player(player2.getName(),player2.getBleed(),player2.getPhysis_hurt(),player2.getMagic_hurt(),player2.getPhysis_defend(),player2.getMagic_defend(),player2.getWuqi_durability(),player2.getFangju_durability(),player2.getCritical());//玩家2
        System.out.println(player3.toString());
        System.out.println(player4.toString());*/
        System.out.println(player1);
        System.out.println(player2);
        int i;
        for (i=1;i<=15;i++)
        {
            System.out.println("-------------------------------");
            k=(int)(Math.random()*2);
            System.out.println("第"+i+"回合开始");
            if (k==1)
            {
                attack(player1);
               defend(player2);
            }
            else
            {
                attack(player2);
               defend(player1);
            }
            System.out.println("第"+i+"回合结束");
            if (player1.getBleed()<=0||player2.getBleed()<=0)
            {
                System.out.println("最终的获胜者为:");
                if(player1.getBleed()>player2.getBleed())
                {
                    System.out.println(player1.getName());
                    sum_priece_play1+=200;
                    sum_priece_play2+=100;
                }
                else
                {
                    System.out.println(player2.getName());
                    sum_priece_play1+=100;
                    sum_priece_play2+=200;
                }
                System.out.println("比赛第二,友谊第一!!!");
                System.out.println("战斗结束后,不论输赢都有金币奖励哦!快去金币仓库看看吧!");
                System.out.println("即将回到新手村......");
                System.out.println("---------------欢迎回到新手村---------------");
                break;
            }
            else
            {
                System.out.println("玩家的血量分别为:");
                System.out.println("玩家1的血量:"+player1.getBleed());
                System.out.println("玩家2的血量:"+player2.getBleed());
                System.out.println("-------------------------------");
            }

        }
        if(player1.getBleed()>0&&player2.getBleed()>0)
        {
            System.out.println("最终的获胜者为:");
            if(player1.getBleed()>player2.getBleed())
            {
                System.out.println(player1.getName());
                sum_priece_play1+=200;
                sum_priece_play2+=100;
            }
            else
            {
                System.out.println(player2.getName());
                sum_priece_play1+=100;
                sum_priece_play2+=200;
            }
            System.out.println("比赛第二,友谊第一!!!");
            System.out.println("战斗结束后,不论输赢都有金币奖励哦!快去金币仓库看看吧!");
            System.out.println("即将回到新手村......");
            System.out.println("---------------欢迎回到新手村---------------");
        }
       else {}
    }


//退出游戏
    public void exit()
    {
        System.out.println("正在退出游戏...");
        System.out.println("");
        System.out.println("");
        System.out.println("");
        System.out.println("已退出...");
        System.exit(0);
    }
}

角色类

package turn_base;
//角色
public class User {
    private int id;
    private String name;
    private double base_blood_volume;//血量
    private double physis_base_aggressivity;//基础物理攻击
    private double magic_base_aggressivity;//基础法术攻击
    private double base_defensive_physis;//基础物理防御
    private double base_defensive_magic;//基础法术防御

    public User() {
    }

    /*public User(int id, String name, double base_blood_volume, double physis_base_aggressivity, double magic_base_aggressivity, double base_defensive_power) {
        this.id = id;
        this.name = name;
        this.base_blood_volume = base_blood_volume;
        this.physis_base_aggressivity = physis_base_aggressivity;
        this.magic_base_aggressivity = magic_base_aggressivity;
        this.base_defensive_physis = base_defensive_power;
    }*/

    public User(int id, String name, double base_blood_volume, double physis_base_aggressivity, double magic_base_aggressivity, double base_defensive_physis, double base_defensive_magic) {
        this.id = id;
        this.name = name;
        this.base_blood_volume = base_blood_volume;
        this.physis_base_aggressivity = physis_base_aggressivity;
        this.magic_base_aggressivity = magic_base_aggressivity;
        this.base_defensive_physis = base_defensive_physis;
        this.base_defensive_magic = base_defensive_magic;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getBase_blood_volume() {
        return base_blood_volume;
    }

    public void setBase_blood_volume(double base_blood_volume) {
        this.base_blood_volume = base_blood_volume;
    }

    public double getPhysis_base_aggressivity() {
        return physis_base_aggressivity;
    }

    public void setPhysis_base_aggressivity(double physis_base_aggressivity) {
        this.physis_base_aggressivity = physis_base_aggressivity;
    }

    public double getMagic_base_aggressivity() {
        return magic_base_aggressivity;
    }

    public void setMagic_base_aggressivity(double magic_base_aggressivity) {
        this.magic_base_aggressivity = magic_base_aggressivity;
    }

    public double getBase_defensive_physis() {
        return base_defensive_physis;
    }

    public void setBase_defensive_physis(double base_defensive_physis) {
        this.base_defensive_physis = base_defensive_physis;
    }

    public double getBase_defensive_magic() {
        return base_defensive_magic;
    }

    public void setBase_defensive_magic(double base_defensive_magic) {
        this.base_defensive_magic = base_defensive_magic;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", base_blood_volume=" + base_blood_volume +
                ", physis_base_aggressivity=" + physis_base_aggressivity +
                ", magic_base_aggressivity=" + magic_base_aggressivity +
                ", base_defensive_physis=" + base_defensive_physis +
                ", base_defensive_magic=" + base_defensive_magic +
                '}';
    }
}

玩家类

package turn_base;

public class Player {
    private String name;//角色名称
    private double bleed;//角色血量
    private double physis_hurt;//总共的物理伤害
    private double magic_hurt;//总共的法术伤害
    private double physis_defend;//总共的物理防御
    private double magic_defend;//总共的法术防御
    private double wuqi_durability;//武器的耐久度
    private double fangju_durability;//防具的耐久度
    private boolean dodge;//闪避(若触发true则躲避所有伤害,若触发false则正常受击)
    private boolean critical_hit;//触发暴击(若触发true则武器的暴击率乘以角色的本身的攻击力,否则正常攻击伤害)
    private double critical;//暴击率
    public Player() {
    }

    public Player(String name, double bleed, double physis_hurt, double magic_hurt, double physis_defend, double magic_defend, double wuqi_durability, double fangju_durability) {
        this.name = name;
        this.bleed = bleed;
        this.physis_hurt = physis_hurt;
        this.magic_hurt = magic_hurt;
        this.physis_defend = physis_defend;
        this.magic_defend = magic_defend;
        this.wuqi_durability = wuqi_durability;
        this.fangju_durability = fangju_durability;
    }

    public Player(String name, double bleed, double physis_hurt, double magic_hurt, double physis_defend, double magic_defend, double wuqi_durability, double fangju_durability, double critical) {
        this.name = name;
        this.bleed = bleed;
        this.physis_hurt = physis_hurt;
        this.magic_hurt = magic_hurt;
        this.physis_defend = physis_defend;
        this.magic_defend = magic_defend;
        this.wuqi_durability = wuqi_durability;
        this.fangju_durability = fangju_durability;
        this.critical = critical;
    }

    public boolean isDodge() {
        return dodge;
    }

    public void setDodge(boolean dodge) {
        this.dodge = dodge;
    }

    public boolean isCritical_hit() {
        return critical_hit;
    }

    public void setCritical_hit(boolean critical_hit) {
        this.critical_hit = critical_hit;
    }

    public double getCritical() {
        return critical;
    }

    public void setCritical(double critical) {
        this.critical = critical;
    }

    public double getWuqi_durability() {
        return wuqi_durability;
    }

    public void setWuqi_durability(double wuqi_durability) {
        this.wuqi_durability = wuqi_durability;
    }

    public double getFangju_durability() {
        return fangju_durability;
    }

    public void setFangju_durability(double fangju_durability) {
        this.fangju_durability = fangju_durability;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getBleed() {
        return bleed;
    }

    public void setBleed(double bleed) {
        this.bleed = bleed;
    }

    public double getPhysis_hurt() {
        return physis_hurt;
    }

    public void setPhysis_hurt(double physis_hurt) {
        this.physis_hurt = physis_hurt;
    }

    public double getMagic_hurt() {
        return magic_hurt;
    }

    public void setMagic_hurt(double magic_hurt) {
        this.magic_hurt = magic_hurt;
    }

    public double getPhysis_defend() {
        return physis_defend;
    }

    public void setPhysis_defend(double physis_defend) {
        this.physis_defend = physis_defend;
    }

    public double getMagic_defend() {
        return magic_defend;
    }

    public void setMagic_defend(double magic_defend) {
        this.magic_defend = magic_defend;
    }



    @Override
    public String toString() {
        return "Player{" +
                "name='" + name + '\'' +
                ", bleed=" + bleed +
                ", physis_hurt=" + physis_hurt +
                ", magic_hurt=" + magic_hurt +
                ", physis_defend=" + physis_defend +
                ", magic_defend=" + magic_defend +
                ", wuqi_durability=" + wuqi_durability +
                ", fangju_durability=" + fangju_durability +
                ", critical=" + critical +
                '}';
    }


}

在这里插入图片描述
源代码请参考:
https://github.com/LK-330/turn_base_game.git
想了解前端相关内容,请参考:
https://blog.csdn.net/qq_42440991/article/details/113406863
小生不才,有自己的网站,望大家支持。有好的文章私发我,我替大家多多宣传
https://to24615835.jzfkw.cn

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值