我一直在研究暗黑破坏神2如何动态生成战利品,我认为创建一个有趣的应用程序会很有趣,该应用程序将使用此系统随机生成项目。
我目前有代码,我认为应该读取整个txt文件,但它没有被解析。
看起来像:
private void itemGenerator() {
int ch;
StringBuffer strContent = new StringBuffer("");
InputStream fs = getResources().openRawResource(R.raw.treasureclass);
// read file until end and put into strContent
try {
while((ch = fs.read()) != -1){
strContent.append((char)ch);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
文本文件中的示例如下所示:
Treasure Class Item1 Item2 Item3
tc:armo3 Quilted_Armor Buckler Leather_Armor
tc:armo60a Embossed_Plate Sun_Spirit Fury_Visor
tc:armo60b Sacred_Rondache Mage_Plate Diadem
所以我现在想的是将每一行放入一个由{n分隔的StringTokenizer
的数组中以获取每一行。然后以某种方式再次使用制表符分隔数组中的每个项目并将其放入2D数组?
我还没有对它进行编码,因为我觉得有更好的方法来实现这个我无法找到的方法,并希望对此事有一些有用的意见。
对于真正有兴趣知道项目生成方式如何工作的人来说,他们的wiki页面http://diablo2.diablowiki.net/Item_Generation_Tutorial非常深入!
答案 0 :(得分:0)
我认为您在区分从文件中读出的每一行时遇到问题。为了逐行读取文件,您应该更改以下代码:
InputStream fs = getResources().openRawResource(R.raw.treasureclass);
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
String line = null;
while((line = br.readLine()) != null){
Log.i("line", line);
//split the content of 'line' and save them in your desired way
}