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

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

题目:

  • 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%
    要求://方法执行后输出强化结果:
    //nowLevel表示当前装备等级
    //targetLevel表示目标等级
    //1.恭喜你强化成功,当前等级:targetLevel
    //2.强化失败,当前等级:nowLevel-1
    //3.强化失败,当前等级:nowLevel-3
    //4.很遗憾,强化失败,装备损坏

实现思路:
定义一个初始装备等级nowLevel和目标装备等级targetLevel,创建一个grade方法,循环使用if else 语句来进行判断,假如装备等级为3级,定义一个随机数,用if判断随机数生成的数字,例如90%的概率就是随机生成的数大于10这样去判断,所以装备等级升级或者降级的概率都用次方法来判断即可,然后再判断升级的if判断语句里加入判断装备的等级是否与目标等级一致,如果一致的话直接return掉这个方法退出循环,输出语句,写完每一级的实现代码,再加上一个死循环即可实现模拟DNF装备强化的过程。

package com.softeem.lesson02;

import java.util.Scanner;

public class Dnf {

	public void grade(int nowLevel, int targetLevel) {
		
		for (int k = 1;; k++) {
			if (nowLevel == 1) {
				nowLevel += 1;
				System.out.println("强化成功,当前您的装备等级为:" + nowLevel);

				if (nowLevel == targetLevel) {
					return;
				}

			} else if (nowLevel == 2) {
				nowLevel += 1;
				System.out.println("强化成功,当前您的装备等级为:" + nowLevel);

				if (nowLevel == targetLevel) {
					return;
				}

			} else if (nowLevel == 3) {
				int i = (int) (Math.random() * 100);

				if (i < 95) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);

					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					nowLevel -= 1;
					System.out.println("很遗憾,强化失败,当前您的装备等级为:" + nowLevel);

				}

			} else if (nowLevel == 4) {
				int i1 = (int) (Math.random() * 100);
				if (i1 < 90) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);

					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					nowLevel -= 1;
					System.out.println("很遗憾,强化失败,当前您的装备等级为:" + nowLevel);

				}

			} else if (nowLevel == 5) {
				int i2 = (int) (Math.random() * 100);

				if (i2 < 80) {

					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					nowLevel -= 1;
					System.out.println("很遗憾,强化失败,当前您的装备等级为:" + nowLevel);
				}
			} else if (nowLevel == 6) {
				int i3 = (int) (Math.random() * 100);

				if (i3 < 75) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					nowLevel -= 1;
					System.out.println("很遗憾,强化失败,当前您的装备等级为:" + nowLevel);
				}
			} else if (nowLevel == 7) {
				int j1 = (int) (Math.random() * 1000);

				if (j1 < 621) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					nowLevel -= 1;
					System.out.println("很遗憾,强化失败,当前您的装备等级为:" + nowLevel);
				}
			} else if (nowLevel == 8) {
				int j2 = (int) (Math.random() * 1000);

				if (j2 < 537) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					nowLevel -= 3;
					System.out.println("很遗憾,强化失败,当前您的装备等级为:" + nowLevel);
				}
			} else if (nowLevel == 9) {
				int j3 = (int) (Math.random() * 1000);

				if (j3 < 414) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					nowLevel -= 3;
					System.out.println("很遗憾,强化失败,当前您的装备等级为:" + nowLevel);
				}
			} else if (nowLevel == 10) {
				int j4 = (int) (Math.random() * 1000);

				if (j4 < 339) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					System.out.println("很遗憾,强化失败,装备损坏");
					break;
				}
			} else if (nowLevel == 11) {
				int j5 = (int) (Math.random() * 1000);

				if (j5 < 280) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					System.out.println("很遗憾,强化失败,装备损坏");
					break;
				}
			} else if (nowLevel == 12) {
				int j6 = (int) (Math.random() * 1000);

				if (j6 < 207) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					System.out.println("很遗憾,强化失败,装备损坏");
					break;
				}
			} else if (nowLevel == 13) {
				int j7 = (int) (Math.random() * 1000);

				if (j7 < 173) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					System.out.println("很遗憾,强化失败,装备损坏");
					break;
				}
			} else if (nowLevel == 14) {
				int j8 = (int) (Math.random() * 1000);

				if (j8 < 136) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					System.out.println("很遗憾,强化失败,装备损坏");
					break;
				}
			} else if (nowLevel == 15) {
				int j9 = (int) (Math.random() * 1000);

				if (j9 < 101) {
					nowLevel += 1;
					System.out.println("强化成功,当前您的装备等级为:" + nowLevel);
					if (nowLevel == targetLevel) {
						return;
					}
				} else {
					System.out.println("很遗憾,强化失败,装备损坏");
					break;
				}
			}
		}		
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("输入您的装备等级:");
		int nowLevel = sc.nextInt();
		System.out.println("输入您的目标等级:");
		int targetLevel = sc.nextInt();
		Dnf d = new Dnf();
		d.grade(nowLevel, targetLevel);
		
	}
}

测试:
在这里插入图片描述
运行以上代码输入当前装备等级以及目标等级,简单实现DNF装备的强化
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值