?大家好,我是kai_Childe,作為一名java剛入門的小白,本期就以java基礎來模擬地下城與勇士(DNF)的裝備強化程序,并以此來記錄我的學習程序,
文章目錄
- 強化未成功懲罰機制
- 各等級強化成功概率
- 一、最終效果預覽
- 二、實作步驟
- 1.創建Level類
- 2.創建ChengGonLv類
- 3.創建QiangHua類
- 4.撰寫測驗類
- 5.測驗
- 總結
強化未成功懲罰機制
DNF裝備強化在+1~+3 不會失敗;
+4~+7,失敗后物品原有強化等級降低1級;
+8~+10,失敗后掉3級;
10上11或以上就爆了,
各等級強化成功概率
| 等級 | 成功率 |
|---|---|
| 1~3 | 100% |
| 3~4 | 95% |
| 4~5 | 90% |
| 5~6 | 80% |
| 6~7 | 75% |
| 7~8 | 62.1% |
| 8~9 | 53.7% |
| 9~10 | 41.4% |
| 10~11 | 33.9% |
| 11~12 | 28% |
| 12~13 | 20.7% |
| 13~14 | 17.3% |
| 14~15 | 13.6% |
| 15~16 | 10.1% |
一、最終效果預覽

二、實作步驟
1.創建Level類
代碼如下:
public class Level {
/**
* 定義一個私有屬性:等級(level),用來存放用戶要強化裝備的初始等級,
*/
private static int level ;
/**
* 該方法用於回傳level.
* @return 回傳level
*/
public int getLevel() {
return level;
}
/**
* 該方法用於給私有屬性level傳值,
*
* @param level
*/
public void setLevel(int level) {
this.level = level;
}
}
該類用於存取用戶輸入的初始裝備等級,
2.創建ChengGonLv類
代碼如下:
public class ChengGonLv {
/**
* 定義一個int型數據,用來存儲存儲生成的隨機數,
*/
private static int cgl;
/**
* 該方法用於給私有屬性cgl傳值,
*
* @param cgl
*/
public void setCgl(int cgl) {
this.cgl = cgl;
}
/**
*
* @return 回傳cgl
*/
public int getCgl() {
return cgl;
}
/**
* 該方法用於產生一個0-10000的隨機數
*/
public void suiJiShu() {
setCgl((int) (Math.random() * 100001));
}
}
該類用於動態產生一個0~100000的隨機數,並對其進行存取操作,後面裝備強化的成功率便是根據此處生成的隨機數判斷,
3.創建QiangHua類
代碼如下:
public class QiangHua {
/**
* 創建Level對象
*/
Level level = new Level();
/**
* 定義一個int型變量dengJi用於接收裝備初始等級,
*/
int dengJi = level.getLevel();
/**
* 創建ChengGonLv對象
*/
ChengGonLv cg = new ChengGonLv();
/**
* 該方法用於強化裝備
*
* @return 回傳強化後的裝備等級
*/
public int qiangHua() {
switch (dengJi) {
case 0:
case 1:
case 2:
dengJi++;
break;
case 3:
if (cg.getCgl() > 95000) {
dengJi--;
} else {
dengJi++;
}
break;
case 4:
if (cg.getCgl() > 90000) {
dengJi--;
} else {
dengJi++;
}
break;
case 5:
if (cg.getCgl() > 80000) {
dengJi--;
} else {
dengJi++;
}
break;
case 6:
if (cg.getCgl() > 75000) {
dengJi--;
} else {
dengJi++;
}
break;
case 7:
if (cg.getCgl() > 62100) {
dengJi -= 3;
} else {
dengJi++;
}
break;
case 8:
if (cg.getCgl() > 53700) {
dengJi -= 3;
} else {
dengJi++;
}
break;
case 9:
if (cg.getCgl() > 41400) {
dengJi -= 3;
} else {
dengJi++;
}
break;
case 10:
if (cg.getCgl() > 33900) {
dengJi = -1;
} else {
dengJi++;
}
break;
case 11:
if (cg.getCgl() > 28000) {
dengJi = -1;
} else {
dengJi++;
}
break;
case 12:
if (cg.getCgl() > 20700) {
dengJi = -1;
} else {
dengJi++;
}
break;
case 13:
if (cg.getCgl() > 17300) {
dengJi = -1;
} else {
dengJi++;
}
break;
case 14:
if (cg.getCgl() > 13600) {
dengJi = -1;
} else {
dengJi++;
}
break;
case 15:
if (cg.getCgl() > 10100) {
dengJi = -1;
} else {
dengJi++;
}
break;
default:
dengJi = 16;
break;
}
return dengJi;
}
}
該類接收接收來自Level類和ChengGonLv類存儲的裝備初始等級和隨機數,通過switch語句對裝備進行強化,並回傳強化後的等級,
4.撰寫測驗類
import java.util.Scanner;
/**
*
* @author kaishao
*
*/
public class DNFZhuangBeiQiangHua {
public static void main(String[] args) {
// 實例化一個Scanner類對象,用來從鍵盤輸入數據,
Scanner sc = new Scanner(System.in);
// 實例化一個Level類對象
Level level = new Level();
System.out.println("=======請輸入裝備的原始等級=======");
System.out.print("\t\t");
// 接收用戶輸入的初始等級,傳入Level類中儲存,
level.setLevel(sc.nextInt());
System.out.println();
// 實例化一個QiangHua類對象
QiangHua qiangHua = new QiangHua();
// 實例化一個ChengGonLv類對象
ChengGonLv chengGonLv = new ChengGonLv();
while (true) {
// 生成裝備強化概率
chengGonLv.suiJiShu();
// 將接收到的裝備強化後的等級賦值給a
int a = qiangHua.qiangHua();
// -1代表 裝備從等級10上強化到11或以上時失敗銷毀,
if (a == -1) {
System.out.println("===============抱歉!================");
System.out.println("======等級" + level.getLevel() + "強化到等級" + (level.getLevel() + 1) + "失敗=======");
System.out.println("============裝備已銷毀=============");
break;
// 16代表裝備的最高等級,已無法繼續強化
} else if (a == 16) {
if (level.getLevel() >= 16) {
System.out.println("==您的裝備已達到滿級16,無法繼續強化==");
} else {
System.out.println("===============恭喜!================");
System.out.println("=======您的裝備已強化到滿級=======");
}
break;
} else {
if (a > level.getLevel()) {
System.out.println("===============恭喜!================");
System.out.println("=======裝備強化成功,當前等級=======");
System.out.println("\t\t" + a + "\n");
} else {
System.out.println("===============抱歉!================");
System.out.println("=======裝備強化失敗,當前等級=======");
System.out.println("\t\t" + a + "\n");
}
System.out.println("============是否繼續強化===========");
System.out.println("==========是請輸入1,否請輸入2=========");
System.out.print("\t\t");
int b = sc.nextInt();
System.out.println();
if (b == 1) {
level.setLevel(a);
} else if (b == 2) {
break;
}
}
}
}
}
5.測驗



總結
以上就是今天要講的內容,本文僅僅是對java基礎的簡單運用,隨著學習的加深,我將為大家帶來更多內容,我們下期再見,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/198596.html
標籤:其他
上一篇:JAVA練習題二
下一篇:Java面向物件總結

