Как установить значения для типа из текстового файла
Привет, так что в основном у меня возникли некоторые проблемы с инициализацией некоторых значений из текстового файла:
4 4 1
Воин: 2
0 0 1 воздух 1 30.5 30 72 2 e
1 1 2 Пламя 1 85.5 30 72 2 e
Оружие: 2
0 0 3
0 1 30
Я в порядке с битвой воина, однако секция оружия-это то, где я борюсь. По сути, я хочу прочитать значения 0 0 3 и 0 1 30 как различные атрибуты для двух объектов оружия, которые я должен создать.
Например:
weapon1 бы строка 0, коль от 0 и сила 3. Между тем оружие 2 бы строка 0, столбец 1 и сила 30.
Что я уже пробовал:
До сих пор я превратил текстовый файл в список массивов, каждый элемент которого представляет собой строку.
for (int i = 0; i < list.size(); i++) { if (list.get(i).contains("Stone")) { /*Here we are making an attributes array for each line. This is so for each line we can easily parse the attributes and set them through the methods below.*/ StoneWarrior_23722002 s = new StoneWarrior_23722002(); final String[] attributes = list.get(i).split(" "); boardArray[Integer.parseInt(attributes[0])][Integer.parseInt(attributes[1])] = s; s.setChar('S'); setWarriorAttributes(s, attributes); warriorList.add(s); pieceList.add(s); } else if (list.get(i).contains("Air")) { AirWarrior_23722002 a = new AirWarrior_23722002(); final String[] attributes = list.get(i).split(" "); boardArray[Integer.parseInt(attributes[0])][Integer.parseInt(attributes[1])] = a; a.setChar('A'); setWarriorAttributes(a, attributes); warriorList.add(a); pieceList.add(a); } else if (list.get(i).contains("Water") && list.get(i).length() > 8) { WaterWarrior_23722002 w = new WaterWarrior_23722002(); final String[] attributes = list.get(i).split(" "); boardArray[Integer.parseInt(attributes[0])][Integer.parseInt(attributes[1])] = w; w.setChar('W'); setWarriorAttributes(w, attributes); warriorList.add(w); pieceList.add(w); } else if (list.get(i).contains("Flame")) { FlameWarrior_23722002 f = new FlameWarrior_23722002(); final String[] attributes = list.get(i).split(" "); boardArray[Integer.parseInt(attributes[0])][Integer.parseInt(attributes[1])] = f; f.setChar('F'); setWarriorAttributes(f, attributes); warriorList.add(f); pieceList.add(f); } /*else if (list.get(i).contains("Magic")){ while (!(list.get(i).contains("Water") || !(list.get(i).contains("Weapon")))){ MagicCrystal_23722002 mc = new MagicCrystal_23722002(); final String[] attributes = list.get(i++).split(" "); boardArray[Integer.parseInt(attributes[0])][Integer.parseInt(attributes[1])] = mc; mc.setChar('c'); pieceList.add(mc); magicCrystalCount++; } }*/ else if (list.get(i).contains("Weapon")){ final String[] atttributes1 = list.get(i).split(":"); int cap = Integer.parseInt(atttributes1[1]); for (int j = i; j < cap; j++){ final String[] attributes2 = list.get(i).split(" "); Weapon_23722002 weap = new Weapon_23722002(); boardArray[Integer.parseInt(attributes2[0])][Integer.parseInt(attributes2[1])] = weap; weap.setWeaponOffPower(Double.parseDouble(attributes2[2])); weap.setChar('x'); pieceList.add(weap); weaponList.add(weap); } } }
Итак, как вы можете видеть, я перебираю список массивов и устанавливаю соответствующие атрибуты. Как я могу попасть в раздел оружия, а затем установить его атрибуты?