import java.util.Random; import java.util.ArrayList; import java.util.Scanner; import java.io.File; class Terreng { final private static int GJENSTANDER_PER_STED = 3; protected ArrayList steder; protected Random r = new Random(); protected Scanner stedFil; private ArrayList gjenstander; // alle gjenstander fra fil Terreng (String stedFilnavn, String gjenstandFilnavn) { lesSteder(stedFilnavn); lesGjenstander(gjenstandFilnavn); lagPrimaerVei(); // Sikrer at alle steder lenkes sammen lagOgPlasserSkattkister(); } public Sted hentStart() { // Leverer random inngang til ferdigbygget terreng return steder.get(r.nextInt(steder.size())); } private void lesSteder(String stedFilnavn){ stedFil = apneFil(stedFilnavn); steder = new ArrayList<>(); Sted nytt; while (stedFil.hasNextLine()) { nytt = lagSted(); steder.add(nytt); } stedFil.close(); } protected Sted lagSted () { return new Sted(stedFil.nextLine()); } // legger alle inn i instansvariabel ArrayList for senere plassering private void lesGjenstander(String gjenstandFilnavn) { Scanner fil = apneFil(gjenstandFilnavn); gjenstander = new ArrayList(); Gjenstand ny = null; while (fil.hasNextLine()) { ny = new Gjenstand(fil.next(), fil.nextInt()); gjenstander.add(ny); } fil.close(); } private Scanner apneFil(String filnavn) { Scanner sc = null; try { sc = new Scanner(new File(filnavn)); } catch (Exception e) { System.out.println("Finner ikke fil " + filnavn); System.exit(1); } return sc; } private void lagPrimaerVei() { Sted start = steder.get(0); // alle steder lenkes sammen gjennom ¨Śn utgang for (int i = 0; i < steder.size()-1; i++) { steder.get(i).setUtgang(steder.get(i + 1)); } steder.get(steder.size() - 1).setUtgang(start); // Syklisk vei gjennom steder } private void lagOgPlasserSkattkister() { Random r = new Random(); ArrayList gjs; for (Sted sted: steder) { gjs = new ArrayList(); for (int i=0; i