public void schiet(Schutter schutter, double kracht, double hoek) throws AngryTanksException { //maakt een Schot aan, en kijkt na of dit botst met de obstructie of met de tegenstander.
        if(!isSpeelveldKlaar()) throw new AngryTanksException("Speelveld is niet klaar om te spelen.");
        if(schutter != schutterA && schutter != schutterB) throw new AngryTanksException("Schutter in parameter is geen deel van het veld.");

        //juiste posities en zones kiezen
        Positie oorsprong;
        HashSet<Positie> zelfZone;
        HashSet<Positie> vijandZone;
        if(schutter == schutterA){ oorsprong = schutterAPositie; zelfZone = schutterAZone; vijandZone = schutterBZone;}
        else { oorsprong = schutterBPositie; zelfZone = schutterBZone; vijandZone = schutterAZone;}

        //zones verenigen in HashMap
        HashMap<String, HashSet<Positie>> elementen = new HashMap<String, HashSet<Positie>>();
        elementen.put("obstructie", obstructie);
        elementen.put("vijandZone", vijandZone);
        elementen.put("zelfZone", zelfZone);

        //schot maken
        laatsteSchot = new Schot(schutter.getOrientatie(), kracht, hoek, oorsprong, wind.getWind(), elementen);

        //controle!
        zelfGeraakt = false;
        vijandGeraakt = false;
        obstructieGeraakt = false;
        if(laatsteSchot.isIetsGeraakt()){
            if(laatsteSchot.getGeraaktId().equals("obstructie")){ //is de obstructie geraakt?
                obstructieGeraakt = true;
                obstructie.remove(laatsteSchot.getRaakpunt()); //verwijder geraakte positie uit obstructie

            } else if(laatsteSchot.getGeraaktId().equals("vijandZone")){ //is de vijand geraakt?
                vijandGeraakt = true;
            } else if(laatsteSchot.getGeraaktId().equals("zelfZone")){ //is de speler zelf geraakt?
                zelfGeraakt = true;
            }
        }
    }