模拟地下城与勇士(DNF)的装备强化过程

模拟地下城与勇士(DNF)的装备强化过程

刚刚开始学习java的小白一枚,给大家分享一下做的一个题目,希望大家能够指导一下我,让我进步更快!

**提示1:

  • DNF装备强化在+1~+3 不会失败;
  • +4~+7,失败后物品原有强化等级降低1级;
  • +8~+10,失败后掉3级;
  • 10上11或以上就爆了。
    提示2:
  • DNF装备强化1~3级,成功率100%
  • DNF装备强化3~4级,成功率95%
  • DNF装备强化4~5级,成功率90%
  • DNF装备强化5~6级,成功率80%
  • DNF装备强化6~7级,成功率75%
  • DNF装备强化7~8级,成功率62.1%
  • DNF装备强化8~9级,成功率53.7%
  • DNF装备强化9~10级,成功率41.4%
  • DNF装备强化10~11级,成功率33.9%
  • DNF装备强化11~12级,成功率28%
  • DNF装备强化12~13级,成功率20.7%
  • DNF装备强化13~14级,成功率17.3%
  • DNF装备强化14~15级,成功率13.6%
  • DNF装备强化15~16级,成功率10.1%
    实现流程:
    要求输入装备的原始等级,输入1执行强化,根据原始等级以及强化的成功率,显示装备的强化结果(用Math.random(),来随机一个数字,利用取值范围的区间来确定概率。)**
	// 要求输入装备的原始等级,输入1执行强化,根据原始等级以及强化的成功率,显示装备的强化结果
	public static void main(String[] args) {
		//从控制台输入
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入1执行强化");
		//读取下一个整数
		int n = sc.nextInt();
		// 用number来记录强化的等级
		int number = 0;
		//写一个addNumber方法来实现装备的升级
		number = addNumber(number);
		//利用循环工具来实现,输入1之后可以继续强化
		while (number != 0 ) {
		//容错处理到了16级就不在执行此循环了
			if (number == 16) {
				break;
			}
			System.out.println("请输入1执行强化,按0结束强化");
			n = sc.nextInt();
			//判断用户输入的数字是几
			if (n == 1) {
				number = addnumber(number);
			} else {
				break;
			}
		}
		// 判断装备是否爆掉,并给出不同的输出语句
		if (number == 0) {
			System.out.println("很遗憾,一天后可以继续,加油!");
		} else {
			System.out.println("恭喜您将装备强化到" + number + "级");
		}
	}

	// 写一个方法来进行装备的强化
	public static int addNumber(int number) {
	//利用switch来实现装备的升级
		switch (number) {
		case 0:
		case 1:
		case 2:
			number++;
			System.out.println("强化成功,目前强化等级为" + number);
			break;
		case 3:
			if ((Math.random() * 100) <= 95) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			number--;
			System.out.println("强化失败,目前强化等级为" + number);
			break;
		case 4:
			if ((Math.random() * 100) <= 90) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			number--;
			System.out.println("强化失败,目前强化等级为" + number);
			break;
		case 5:
			if ((Math.random() * 100) <= 80) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			number--;
			System.out.println("强化失败,目前强化等级为" + number);
			break;
		case 6:
			if ((Math.random() * 100) <= 75) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			number--;
			System.out.println("强化失败,目前强化等级为" + number);
			break;
		case 7:
			if ((Math.random() * 100) <= 62.1) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			number--;
			System.out.println("强化失败,目前强化等级为" + number);
			break;
		case 8:
			if ((Math.random() * 100) <= 53.7) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			number = number - 3;
			System.out.println("强化失败,目前强化等级为" + number);
			break;
		case 9:
			if ((Math.random() * 100) <= 41.4) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			number = number - 3;
			System.out.println("强化失败,目前强化等级为" + number);
			break;
		case 10:
			if ((Math.random() * 100) <= 33.9) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			System.out.println("强化失败,装备爆掉,强化等级重置为0,强化结束!");
			    number = 0;
			    break;
		case 11:
			if ((Math.random() * 100) <= 28) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			System.out.println("强化失败,装备爆掉,强化等级重置为0,强化结束!");
			    number = 0;
			    break;
		case 12:
			if ((Math.random() * 100) <= 20.7) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			System.out.println("强化失败,装备爆掉,强化等级重置为0,强化结束!");
			 	number = 0;
			    breakcase 13:
			if ((Math.random() * 100) <= 17.3) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			System.out.println("强化失败,装备爆掉,强化等级重置为0,强化结束!");
			    number = 0;
			    break;
		case 14:
			if ((Math.random() * 100) <= 13.6) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number);
				break;
			}
			System.out.println("强化失败,装备爆掉,强化等级重置为0,强化结束!");
			    number = 0;
			    break;
		case 15:
			if ((Math.random() * 100) <= 10.1) {
				number++;
				System.out.println("强化成功,目前强化等级为" + number + "已到达最高等级,强化结束");
				break;
			}
			System.out.println("强化失败,装备爆掉,强化等级重置为0,强化结束!");
			    number = 0;
			    break;
		}
		//返回强化后的等级
		return number;
	}
}

刚刚开始学java,不知道还有没其它方法来实现这个功能。如果有,希望大佬能评论告诉我,感觉自己写的太繁琐了。由于知识水平有限,写的东西难免会有些错误,希望大家能帮我指正出来,谢谢大家了!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值