public void bouwSpeelveld() throws AngryTanksException { //bouwt het speelveld op basis van level
        if(!isSpeelveldBouwKlaar()) throw new AngryTanksException("Speelveld kan niet gebouwd worden. Stel eerst een level in.");

        laatsteSchot = new Schot(Orientatie.RECHTS, 0, 0, new Positie(0,0), 0, new HashMap<String, HashSet<Positie>>()); //dummy schot
        schutterAPositie = null;
        schutterBPositie = null;
        obstructie = new Obstructie();
        schutterAZone = new HashSet<Positie>();
        schutterBZone = new HashSet<Positie>();

        HashMap<Positie, Onderdeel> opbouw = new HashMap<Positie, Onderdeel>(level.getOpbouw());
        for(Positie p : opbouw.keySet()){
            if(opbouw.get(p) == Onderdeel.OBSTRUCTIE){
                obstructie.add(new Positie(p.getX(), p.getY()));
            } else if(opbouw.get(p) == Onderdeel.SCHUTTER_A){
                schutterAPositie = new Positie(p.getX(), p.getY());
                schutterAZone.add(new Positie(p.getX(), p.getY()));
            } else if(opbouw.get(p) == Onderdeel.SCHUTTER_B) {
                schutterBPositie = new Positie(p.getX(), p.getY());
                schutterBZone.add(new Positie(p.getX(), p.getY()));
            } else if(opbouw.get(p) == Onderdeel.SCHUTTER_A_ZONE){
                schutterAZone.add(new Positie(p.getX(), p.getY()));
            } else if(opbouw.get(p) == Onderdeel.SCHUTTER_B_ZONE){
                schutterBZone.add(new Positie(p.getX(), p.getY()));
            }
        }
    }