模拟游戏中的装备强化过程
提示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%
方法一的实现代码:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入原始等级:");
int grade = sc.nextInt();
int n = grade;
int i = 0;
System.out.println("请按下1确认执行强化");
int m = sc.nextInt();
if(m == 1) {
System.out.println("----装备强化中----");
while (grade < 16) {
switch (grade) {
case 1:
case 2:
grade++;
break;
case 3: {
double pro = (Math.random() * 100);
if (pro > 95) {
grade--;
} else {
grade++;
}
}break;
case 4: {
double pro = (Math.random() * 100);
if (pro > 90) {
grade--;
} else {
grade++;
}
}break;
case 5: {
double pro = (Math.random() * 100);
if (pro > 80) {
grade--;
} else {
grade++;
}
}break;
case 6: {
double pro = (Math.random() * 100);
if (pro > 75) {
grade--;
} else {
grade++;
}
}break;
case 7: {
double pro = (Math.random() * 100);
if (pro > 62.1) {
grade--;
} else {
grade++;
}
}break;
case 8: {
double pro = (Math.random() * 100);
if (pro > 53.7) {
grade -= 3;
} else {
grade++;
}
}break;
case 9: {
double pro = (Math.random() * 100);
if (pro > 41.4) {
grade -= 3;
} else {
grade++;
}
}break;
case 10: {
double pro = (Math.random() * 100);
if (pro > 33.9) {
grade = 1;
} else {
grade++;
}
}break;
case 11: {
double pro = (Math.random() * 100);
if (pro > 28) {
grade = 1;
} else {
grade++;
}
}break;
case 12: {
double pro = (Math.random() * 100);
if (pro > 20.7) {
grade = 1;
} else {
grade++;
}
}break;
case 13: {
double pro = (Math.random() * 100);
if (pro > 17.3) {
grade = 1;
} else {
grade++;
}
}break;
case 14: {
double pro = (Math.random() * 100);
if (pro > 13.6) {
grade = 1;
} else {
grade++;
}
}break;
case 15: {
double pro = (Math.random() * 100);
if (pro > 10.1) {
grade = 1;
} else {
grade++;
}
}break;
default:
System.out.println("请输入真实的自己的等级!");
break;
}
i++;
}
if(n>grade) {
System.out.println("很遗憾升级失败,现在等级为:" + grade);
}else if(n<grade){
System.out.println("恭喜你升级成功,现在等级为:" + grade);
}
System.out.println("共升级了:" + i);
}
该代码中主要运用了switch分支语句和while循环,主要功能是,用户输入一个等级,然后计算升级到16级所需要升级的次数。最后升级到的等级都会到16级。
方法二的实现代码:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入原始等级:");
int grade = sc.nextInt();
int n = grade;
System.out.println("请按下1确认执行强化");
int m = sc.nextInt();
if(m == 1) {
System.out.println("----装备强化中----");
while (grade < 16) {
switch (grade) {
case 1:
case 2:
grade++;
break;
case 3: {
double pro = (Math.random() * 100);
if (pro > 95) {
grade--;
} else {
grade++;
}
}break;
case 4: {
double pro = (Math.random() * 100);
if (pro > 90) {
grade--;
} else {
grade++;
}
}break;
case 5: {
double pro = (Math.random() * 100);
if (pro > 80) {
grade--;
} else {
grade++;
}
}break;
case 6: {
double pro = (Math.random() * 100);
if (pro > 75) {
grade--;
} else {
grade++;
}
}break;
case 7: {
double pro = (Math.random() * 100);
if (pro > 62.1) {
grade--;
} else {
grade++;
}
}break;
case 8: {
double pro = (Math.random() * 100);
if (pro > 53.7) {
grade -= 3;
} else {
grade++;
}
}break;
case 9: {
double pro = (Math.random() * 100);
if (pro > 41.4) {
grade -= 3;
} else {
grade++;
}
}break;
case 10: {
double pro = (Math.random() * 100);
if (pro > 33.9) {
grade = 1;
} else {
grade++;
}
}break;
case 11: {
double pro = (Math.random() * 100);
if (pro > 28) {
grade = 1;
} else {
grade++;
}
}break;
case 12: {
double pro = (Math.random() * 100);
if (pro > 20.7) {
grade = 1;
} else {
grade++;
}
}break;
case 13: {
double pro = (Math.random() * 100);
if (pro > 17.3) {
grade = 1;
} else {
grade++;
}
}break;
case 14: {
double pro = (Math.random() * 100);
if (pro > 13.6) {
grade = 1;
} else {
grade++;
}
}break;
case 15: {
double pro = (Math.random() * 100);
if (pro > 10.1) {
grade = 1;
} else {
grade++;
}
}break;
default:
System.out.println("请输入真实的自己的等级!");
break;
}
}
if(n>grade) {
System.out.println("很遗憾升级失败,现在等级为:" + grade);
}else if(n<grade){
System.out.println("恭喜你升级成功,现在等级为:" + grade);
}
}
因为这段代码没有运用循环语句,所以这段代码所实现的功能是用户输入等级,判断是否会升级成功,升级成功输出成功后的等级,升级失败输出失败后的等级。