Implementación basada en Java para simular el proceso de fortalecimiento de equipos de DNF

Hola a todos, mi nombre es kai_Childe. Como principiante que acaba de comenzar con java, este problema usará java para simular el proceso de fortalecimiento del equipo de Dungeon and Warriors (DNF) y lo usaré para registrar mi proceso de aprendizaje.
Inserte la descripción de la imagen aquí


Fortalecer el mecanismo de castigo fallido

La mejora del equipo DNF en + 1 ~ + 3 no fallará;
+ 4 ~ + 7, el nivel de mejora original del artículo se reducirá en 1 después de la falla;
+ 8 ~ + 10, después de la falla, caerá 3 niveles;
10 en 11 o superior explotará .

Fortalecer la probabilidad de éxito en cada nivel.

grado Tasa de éxito
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. La vista previa del efecto final

Inserte la descripción de la imagen aquí

2. Pasos de implementación

1. Crea la clase Level

el código se muestra a continuación:

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;
	}
}

Esta clase se utiliza para acceder al nivel de equipo inicial introducido por el usuario.

2. Cree la clase ChengGonLv

el código se muestra a continuación:

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));
	}
}

Esta clase se utiliza para generar dinámicamente un número aleatorio que va de 0 a 100000 y realizar operaciones de acceso en él. La tasa de éxito de la posterior mejora del equipo se basa en el número aleatorio generado aquí.

3. Crea una clase QiangHua

el código se muestra a continuación:

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;
	}
}

Esta clase recibe el nivel inicial de equipo y números aleatorios almacenados en la clase Level y la clase ChengGonLv, fortalece el equipo a través de una declaración de cambio y regresa al nivel mejorado.

4. Escribir clases de prueba

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. Prueba

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí


para resumir

Lo anterior es el contenido del que hablaré hoy. Este artículo es solo una simple aplicación de los conceptos básicos de Java. Con la profundización del aprendizaje, les traeré más contenido.

Hasta la proxima

Supongo que te gusta

Origin blog.csdn.net/skaihzx/article/details/109400938
Recomendado
Clasificación