[Java] 纯文本查看 复制代码
package Game;
import java.util.Random;
import java.util.Scanner;
/* 1.进入强化机器,进入欢迎界面
2.输入数字1 2 3选择武器,不同武器初始伤害不同,强化等级不同,输入非123 得到生锈的
3.选择点击任意键开始 或者 输入"退出"
4.强化成功后 提示成功,武器等级,伤害,有无特效,下一级强化概率
5.强化后可选择继续强化,或者输入“退出”,退出强化机器
6.强化达到一定等级[3,6),武器开始发光,达到更高等级[6,14)武器特效升级,达到14以上后特效强化
7.强化失败后 提示失败,武器损坏得到无色晶体,如果强化达到一定等级(8),还会额外得到金色小晶体
*/
public class Perfect_QiangHua {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0; //控制变量
int b = 0; // 强化等级
int c = 0; // 伤害
System.out.println("我是凯丽~.~ 小帅哥 来玩一玩嘛");
System.out.println("选择武器开始强化:1 杀猪刀 2 倚天剑 3 屠戮之刃");
String wuqi = sc.next();
//根据输入武器编号,输出武器对应的初始伤害
switch(wuqi){
case "1" :
System.out.println("武器:杀猪刀");
b = 0 ;
c = 300 ;
break;
case "2" :
System.out.println("武器:倚天剑");
b = 5 ;
c = 450;
break;
case "3":
System.out.println("武器:屠戮之刃");
b = 12;
c = 1250;
break;
default:
System.out.println("输入错误数字,给你一把生锈的武士刀 ");
System.out.println("武器:生锈的武士刀 ");
}
System.out.println("武器强化等级"+"+"+b);
System.out.println("武器初始伤害为"+c);
System.out.println(" ");
System.out.println("选择退出或者点任意键开始");
String e = sc.next();
//进入强化界面,进行选择 可选择强化或者退出,退出需要输入字符串"退出",输入任意数 开始
switch(e){
case "退出":
System.out.println("退出强化机器~");
a = 22;
break ;
default:
System.out.println("开始");
break ;
}
//强化方法P中的数组,每一个强化等级对应一个数值,除以100即为对应概率
int[] arr={100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,18,15,12,10};
while(a<22){
String result = P("成功","失败",b) ; //调用方法P,得到结果 成功 或者 失败
int index = arr[b+1] ; //通过数组调出方法中对应的数值
if(result=="成功"){
b++ ;
a++ ;
c += b*100 ; //伤害计算
System.out.println("------------------------------------------------------------");
System.out.println("成功");
System.out.println("强化等级+"+ b);
System.out.println("伤害+"+ c);
if(b>=3&&b<6){
System.out.println("特效 ~散发着淡淡的光芒");
}else if(b>=6&&b<14){
System.out.println("特效 ~耀眼的光芒");
}else if(b>=14){
System.out.println("特效 ~金光闪闪***亮瞎狗眼");
}
System.out.println("继续强化吗?点任意键继续强化,不继续请输入“退出”");
System.out.println("下一级强化概率为:"+index+"%");
System.out.println("------------------------------------------------------------");
String choice = sc.next();
switch(choice){
case "退出":
a = 23 ;
System.out.println("退出强化机器~");
break;
default :
choice = null ;
}
// 强化等级b如果达到一定数值 会分解得到金色小晶体
}else{
if(b>=8){
System.out.println("强化失败,装备损坏得到"+(10*b)+"个无色小晶体 "+(5*b)+"金色小晶体");
}else{
System.out.println("强化失败,装备损坏得到"+(10*b)+"个无色小晶体");
}
break;
}
}sc.close();
}
//利用随机数计算概率 然后返回一个结果 a或者b,c为强化等级供主方法调用
public static String P(String a,String b,int c){
Random r = new Random();
// 强化0到21的对应数组中arr[x]的数值,计算后得到概率
int[] arr={100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,18,15,12,10};
int x = r.nextInt(100);
if(x<arr[c]){
return a ;
}else{
return b ;
}
}
}