我有点受约束,主要是因为我是编程的新手。我是Mass Effect 2 speedrunning社区的一员,我们试图为游戏制作一个随机游戏。基本思想是使用控制台为角色获取随机功能。从本质上讲,这很容易做到,经过一些研究,我设法做了一个,也许没有优化,但你可以在下面找到工作程序。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Random;
public class Main {
public static void main(String [ ] args) throws IOException {
FileInputStream fs = null;
try {
fs = new FileInputStream("powers.txt");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
PrintStream out = new PrintStream("powers2.txt");
System.setOut(out);
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
ArrayList<String> array = new ArrayList<>();
int i=1;
System.out.println("GiveTalentPoints 50");
System.out.println("RemovePower self SFXPower_Incinerate_Engineer");
System.out.println("RemovePower self SFXPower_IncendiaryAmmo_Engineer");
System.out.println("RemovePower self SFXPower_CombatDrone_Engineer");
System.out.println("RemovePower self SFXPower_AIHacking_Engineer");
System.out.println("RemovePower self SFXPower_CryoFreeze_Engineer");
System.out.println("RemovePower self SFXPower_Overload_Engineer");
System.out.println("RemovePower self SFXPower_AntiOrganicAmmo_Player");
String line;{
do {
try {
while((line = br.readLine()) != null)
array.add(line);
} catch (IOException e) {
e.printStackTrace();
}
// variable so that it is not re-seeded every call.
Random rand = new Random();
// nextInt is exclusive. Should be good with output for array.
int randomIndex = rand.nextInt(array.size());
// Print the powers
System.out.print("GivePower self ");
System.out.println(array.get(randomIndex));
System.out.print("SetRank self ");
System.out.print(array.get(randomIndex));
System.out.println(" 3");
i=i+1;
}
while (i<=5);
}
out.flush();
out.close();
fs.close();
}
}
这样有效。我们的想法是创建一个文本文件然后在游戏控制台中执行。现在我的主要问题是,这可以给我重复。如果随机值落在同一条线上,我将拥有相同功率的两倍,这在游戏中是不可能的。因此,我需要一种方法来制作“独占”随机值,或者在打印文件后再进行检查,如果完成,重新启动程序,直到我没有任何重复项。我希望我有意义,我确信这是一个简单的解决方案,但编码并不是我的主要领域,我真的很难学习它。
提前致谢。 另外我知道我的缩进可能不好,我只是想让它在网站的代码中读取。遗憾!