package squidpony.examples; import squidpony.squidgrid.SoundMap; import squidpony.squidgrid.mapping.DungeonGenerator; import squidpony.squidgrid.mapping.DungeonUtility; import squidpony.squidmath.Coord; import squidpony.squidmath.LightRNG; import squidpony.squidmath.RNG; import java.util.HashMap; import java.util.HashSet; import java.util.Map; /** * Created by Tommy Ettinger on 4/25/2015. */ public class SoundTest { public static void main(String[] args) { for (SoundMap.Measurement m : SoundMap.Measurement.values()) { LightRNG lrng = new LightRNG(0x57a8deadbeef0ffal); RNG rng = new RNG(lrng); DungeonGenerator dg = new DungeonGenerator(40, 40, rng); char[][] dun = dg.generate(); SoundMap audio = new SoundMap(dun, m); System.out.println(dg); HashSet<Coord> dudes = new HashSet<>(5); dudes.add(dg.utility.randomFloor(dun)); dudes.add(dg.utility.randomFloor(dun)); dudes.add(dg.utility.randomFloor(dun)); dudes.add(dg.utility.randomFloor(dun)); dudes.add(dg.utility.randomFloor(dun)); HashMap<Coord, Double> noises = new HashMap<>(8); for(int i = 0; i < 6; i++) { noises.put(dg.utility.randomStep(dun, dg.utility.randomFloor(dun), (m == SoundMap.Measurement.CHEBYSHEV)), rng.nextDouble(10.0) + 1.0 + i); } audio.findAlerted(dudes, noises); double[][] gm = audio.gradientMap; char[][] md = DungeonUtility.doubleWidth(dun), hl = DungeonUtility.doubleWidth(DungeonUtility.hashesToLines(dun)); for (int x = 0; x < md.length; x++) { for (int y = 0; y < md[x].length; y++) { char t; if (gm[x / 2][y] == SoundMap.WALL) t = hl[x][y]; else if (x % 2 == 0 && gm[x / 2][y] == 0) t = '.'; else t = ' '; md[x][y] = t; } } int i = 1; for (Map.Entry<Coord, Double> snd : audio.sounds.entrySet()) { md[snd.getKey().x * 2][snd.getKey().y] = '!'; } for (Map.Entry<Coord, Double> guy : audio.alerted.entrySet()) { md[guy.getKey().x * 2][guy.getKey().y] = (String.format("%-2d", (int) Math.floor(guy.getValue()))).charAt(0); md[guy.getKey().x * 2 + 1][guy.getKey().y] = (String.format("%-2d", (int) Math.floor(guy.getValue()))).charAt(1); } dg.setDungeon(md); System.out.println(dg); System.out.println(); } } }