Java复习小游戏——“登仙长阶“【已收工】

启动类【主类】

package cn.itsp.dxcj;

import java.util.Random;
import java.util.Scanner;

public class AscendTheImmortals {
public static void main(String[] args) {
    System.out.println("欢迎来到登仙长阶!");

    Scanner scanner = new Scanner(System.in);
    Skills skills = new Skills();

    System.out.println("提示:请输入你的名字,按enter确认");
    if (scanner.hasNextLine()) {
        String name = scanner.next();
        System.out.println("好的,你的名字是" + name);
    }

    sleep(1);

    System.out.println("-----------------------");

    sleep(1);

    System.out.println("你无法决定你的出生,但可以决定其它一切,你的抉择将影响你的命运,请慎重对待!");

    sleep(1);

    System.out.println("正在随机生成出生......");

    sleep(1);

    System.out.println("------------------------");

    Pair<String, String> birth = new PartOfBirth().birth();

    System.out.println(birth.getLeft());

    System.out.println("你的出生地域为:" + birth.getRight());

    sleep(1);

    System.out.println("------------------------");

    System.out.println("请输入数字选择初始武器:");
    System.out.println("1.破旧长剑");
    System.out.println("2.破旧法杖");
    System.out.println("3.破旧法扇");
    System.out.println("4.破旧匕首");
    System.out.println("5.破旧短刀");
    System.out.println("6.赤手空拳");
    System.out.println("7.随机武器");

    String[] initialWeapons = {"破旧长剑", "破旧法杖", "破旧法扇", "破旧匕首", "破旧短刀", "赤手空拳", "+99的新手剑"};

    //对颜值和年龄在一定范围内随机初始化
    State state = new State();
    Random random = new Random();
    state.setAppearance(random.nextInt(100));
    state.setAge(random.nextInt(24));


    GetWeapon(initialWeapons, scanner, state);
    Material material = new Material();


    sleep(1);
    System.out.println("------------------------");
    System.out.println("你已正式踏入登仙之旅,接下来的行动可自行选择!");
    sleep(1);


    actOfGame(scanner, state, skills, material, random);

    sleep(3);

    scanner.close();

}

private static void actOfGame(Scanner scanner, State state, Skills skills, Material material, Random random) {

    if (state.getAge() >= state.getResidualLife() || state.gethP() <= 0) {
        System.out.println("GameOver!");
        System.out.println("请重启程序重修进行游戏");
        return;
    }

    System.out.println("-----------------------");
    sleep(1);

    System.out.println("提示:输入数字进行选择");

    String[] actOfGame = {"1修练", "2突破", "3炼丹", "4炼器", "5游历", "6历炼", "7查看修为", "8查看已装备技能"};
    for (String s : actOfGame) {
        System.out.println(s);
    }

    int act = scanner.nextInt();

    switch (act) {
        case 1:
            if (state.getBoundarysCnt() == 11) {
                System.out.println("你的修为已达至臻境界,无法继续修练");
                actOfGame(scanner, state, skills, material, random);
            }

            state.setBoundaryCnt(state.getBoundaryCnt() + 1);
            //修练一次废时三年
            state.setAge(state.getAge() + 3);
            System.out.println("当前境界为:" + state.getBoundarys(state.getBoundarysCnt()) + ",已累计修练" + state.getBoundaryCnt() + "次");
            System.out.println("境界突破后的首次修练可直接进行突破,突破失败重新修练三次后可进行一次【境界突破】");
            System.out.println("修练失败时,累计修练次数不清零");

        case 2:
            //修练三次后突破一个境界

            if (state.getBoundaryCnt() % 3 == 1) {


                System.out.println("当前境界修练圆满,是否进行突破?");
                System.out.println("提示,输入1进行突破。");
                System.out.println("当前境界突破成功率为:" + (100 - (state.getBoundarysCnt() * 100 / 33)) + "%");

                int i = scanner.nextInt();

                //用于突破概率随机,随机到的数字比当前境界【在境界数组中】的位置数小时,突破失败
                int i1 = random.nextInt(32);

                if (i == 1 && i1 >= state.getBoundarysCnt()) {
                    state.setBoundarysCnt(state.getBoundarysCnt() + 1);
                    //境界提升寿限翻1.5倍,攻击防御生命值成长
                    boundaryUp(state, state.getBoundarysCnt());
                    System.out.println("突破成功!当前境界为:" + state.getBoundarys(state.getBoundarysCnt()));
                    state.setBoundaryCnt(0);
                } else if (i == 1 && i < state.getBoundarysCnt()) {
                    state.setBoundarysCnt(state.getBoundarysCnt() - 1);
                    System.out.println("突破失败!境界下滑,当前境界为:" + state.getBoundarys(state.getBoundarysCnt()));
                } else {
                    System.out.println("未选择突破境界。");
                }
            } else {
                System.out.println("要进行境界突破请先进行修练!");
            }
            break;
        case 3:
            System.out.println("请选择需要炼制的丹药:");
            String[] medicine = {"1.驻颜丹", "2延寿丹", "3三圣丹", "4九转真凰丹", "5穷天碧落丹", "6太乙通玄丹", "7化清真墟丹"};
            for (String s : medicine) {
                System.out.println(s);
            }

            int i = scanner.nextInt();
            switch (i) {
                case 1:
                    //炼制丹药用时一年
                    state.setAge(state.getAge() + 1);
                    int i1 = random.nextInt(10);

                    if (i1 <= 7) {
                        state.setAppearance(state.getAppearance() + 10);
                        System.out.println("炼制驻颜丹成功!用丹后气质外貌得到了提升");
                        System.out.println("当前颜值为:" + state.getAppearance());
                    } else {
                        System.out.println("驻颜丹炼制失败!");
                    }
                    break;
                case 2:
                    state.setAge(state.getAge() + 1);
                    int i2 = random.nextInt(24);

                    if (i2 >= 7) {
                        state.setResidualLife(state.getResidualLife() + 20);
                        System.out.println("炼制延寿丹成功!用丹后寿限得到了提升");
                        System.out.println("当前寿限为:" + state.getResidualLife());
                    } else {
                        System.out.println("延寿丹炼制失败!");
                    }
                    break;
                case 3:
                    state.setAge(state.getAge() + 3);
                    int i3 = random.nextInt(21);
                    if (i3 >= 7) {
                        state.setAtk(state.getAtk() + 100);
                        state.setDef(state.getDef() + 100);
                        state.sethP(state.gethP() + 1000);
                        System.out.println("炼制三圣丹成功!用丹后三维属性得到了提升");
                        System.out.println("当前攻击力:" + state.getAtk());
                        System.out.println("当前防御力:" + state.getDef());
                        System.out.println("当前生命值上限:" + state.gethP());
                    } else {
                        System.out.println("三圣丹炼制失败!");
                    }
                    break;
                case 4:
                    int i4 = random.nextInt(49);
                    if (state.getBoundarysCnt() == 11 && i4 >= 9 && state.getTurnsCnt() < 9) {

                        state.setAge(state.getAge() + 9);
                        state.setBoundarysCnt(0);
        
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值