好的,这是我的代码,我知道它的代码混乱且充满其他错误,我仍在尝试学习。我知道我可以在一堂课中做到这一点,但是这与Java的OOP部分无关。我认为如果我要学习的话,我还是会学得对。
我一直在努力寻找如何打印charHpArray
的两天时间,我在Google上发现的所有内容都没有用,因为它们不包含另一个数组。本质上,我正在尝试使其级别用作参数,因此,当level
= 1 hp
为5时,而level
为2 hp
为10时,依此类推。
如果您能告诉我为什么level + #
不能正常工作,那将是很好的。
//如果您也想对此进行破解,我正在尝试使mage
,arch
和war
的起始奖金都不同,因此war
会有比基本的level
奖金更健康。
**鼓励所有的答案,即使它只是尝试学习的新思路**
谢谢。
代码:
import java.io.*;
import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[]args) {
Scanner input = new Scanner(System.in);
Random roll = new Random();
System.out.println("Welcome To Adventure Heroes");
System.out.println("-------------------");
System.out.println("You awake to the sound of screaming, \"GET AWAY FROM ME!\"");
System.out.println("You call out to the voice in the distance...");
System.out.println("There is no answer");
System.out.println("You run towards the troubled screams in the distance");
System.out.println("You see a man on the floor being kicked, without hesitation you charge in and push the attacker off the man.");
System.out.println("You examine the man to see if he is okay. When you look up the attacker is gone.");
System.out.println("\"Thank you so much... erm, come to think of it I've never seen you around these parts. What is Your name?\"");
String yourName = input.next();
System.out.println("\"What a weird name, Hi " + yourName + ", I'm Borgan\"");
System.out.print("\"Well " + yourName + ", your journey begins here.\"");
Character.getcharHp() ;
public class Character {
int[] level ={1,2,3,4,5,6,7,8,9,10};
int[] charHpArray = {5,10,15,20,25,30,35,40,45,50};
Character(int[] charHp)
{
charHp = charHpArray;
}
public int[] getCharHp() {
return charHpArray;
}
int xp;
int def;
int meleeDmg;
int magicDmg;
function increment(array)
int mage[] = {
charHpArray[level],
def = level + 2,
meleeDmg = level + 1,
magicDmg = level + 6
};
int archer[] = {charHp[level] = level + 4,
def = level + 3,
meleeDmg= level + 4,
magicDmg = level + 1};
int[] warrior = {getcharHp()[level] = level + 5,
def = level + 4,
meleeDmg = level + 3,
magicDmg = level + 0};
int player[][] = {mage, archer, warrior};
}
答案 0 :(得分:0)
您有一个关卡数组,但未指定关卡的int值。这就是为什么添加不起作用的原因(因为level是一个数组,并且您要向其中添加一个int)。我建议尝试利用HashMap将级别映射到hp(例如,将此字段称为levelHpMap,并使其保持不变),然后让每个字符都设置一个单独的字段,称为level,该字段用于初始化字符属性/ fields(而不是hp)。
其他字符将通过继承扩展Character类。
答案 1 :(得分:0)
我不确定这是否会回答您的任何问题-但这是有关在Java中使用数组的一些信息。
我一直在尝试找出如何打印出
charHpArray
两天了,我在Google上发现的所有内容都没有用,因为 他们不包含另一个数组。本质上,我正在努力做到这一点 因此level
作为参数,所以当level
= 1hp
为5时, 当level
为2hp
为10时,依此类推。
使用级别打印charHpArray:
使用charHpArray
数组元素作为索引来打印数组level
元素的情况-如下。
int[] level ={1,2,3,4,5,6,7,8,9,10};
int[] charHpArray = {5,10,15,20,25,30,35,40,45,50};
for (int i : level) {
int j = charHpArray [i];
System.out.println("Level " + i + ", charHpArray element: " + j);
}
这是预期的输出:
Level 1, charHpArray element: 10
Level 2, charHpArray element: 15
Level 3, charHpArray element: 20
Level 4, charHpArray element: 25
Level 5, charHpArray element: 30
Level 6, charHpArray element: 35
Level 7, charHpArray element: 40
Level 8, charHpArray element: 45
Level 9, charHpArray element: 50
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Testing.main(Testing.java:35)
请注意,charHpArray
的第一个元素5是 not 打印的。注意输出的最后一行:运行时异常;请参阅下面的说明。
如果您能告诉我为什么水平+#不起作用,那将会是 很好。
在Java中,数组具有元素和索引。数组中的第一个元素的索引为0(始终)。下一个元素的索引为1,依此类推。因此,数组的最后一个元素的索引为:数组长度减 1。
这是使用Arrays的Oracle Java教程。
因此,如果尝试访问数组中不存在的索引中的元素,则会遇到运行时异常:ArrayIndexOutOfBoundsException
charHpArray
有10个元素。可以使用以下元素的索引来访问和打印每个元素:
System.out.println("First element charHpArray [0]: " + charHpArray[0]); // this will print 5
System.out.println("Second element charHpArray [1]: " + charHpArray[1]); // this will print 10
...
System.out.println("Tenth element charHpArray [9]: " + charHpArray[9]); // this will print 50
-OR-
for (int i = 0; i < 10; i++) {
System.out.println("Element " + (i+1) + " of charHpArray: " + charHpArray[i]);
}
输出:
Element 1 of charHpArray: 5
Element 2 of charHpArray: 10
Element 3 of charHpArray: 15
Element 4 of charHpArray: 20
Element 5 of charHpArray: 25
Element 6 of charHpArray: 30
Element 7 of charHpArray: 35
Element 8 of charHpArray: 40
Element 9 of charHpArray: 45
Element 10 of charHpArray: 50
在上面的代码10中是数组的长度(数组有10个元素)。可以在代码中使用数组的length变量来实现:charHpArray.length
System.out.println("Size of the array: " + charHpArray.length); // this prints 10.
因此,要打印的代码如下:
for (int i = 0; i < charHpArray.length; i++) {
System.out.println("Element " + (i+1) + " of charHpArray: " + charHpArray[i]);
}