Třída Hádanka

Proměnné:

    public ArrayList<String> omezeni = new ArrayList<>();	// seznam nazvu pouzitych omezeni
    public ArrayList<String> barvy = new ArrayList<>();	// seznam pouzitych barev
    public ArrayList<String> jmena = new ArrayList<>();	// seznam jmen
 
    public ArrayList<Postava> postavy;  // posloupnost postav v danem poradi, jak jsou na fotce,
                                        // kazda postava je definovana promennymi barvaKalhot a barvaKosile, 
    // Struktury popisujici nadefinovana omezeni
    public HashMap<String,ArrayList<String>> sousedi;   // Omezeni: kazde jmeno ma prirazen seznam jmen, se kterymi MUSI sousednit
    public HashMap<String,ArrayList<String>> nesousedi; // Omezeni: kazde jmeno ma prirazen seznam jmen, se kterymi NESMI sousednit
    public HashMap<String,ArrayList<String>> jeNalevoOd;    // Omezeni: kazde jmeno ma prirazen seznam jmen, od kterych musi byt nalevo
    public HashMap<String,ArrayList<String>> jeNapravoOd;   // Omezeni: kazde jmeno ma prirazen seznam jmen, od kterych musi byt napravo
    public HashMap<String,String> maKosiliBarvy;    // Omezeni: kazde jmeno ma prirazenu povinnou barvu kosile
    public HashMap<String,ArrayList<String>> nemaKosiliBarvy;   // Omezeni: kazde jmeno ma prirazen seznam zakazanych barev kosile
    public HashMap<String,String> maKalhotyBarvy;   // Omezeni: kazde jmeno ma prirazenu povinnou barvu kalhot
    public HashMap<String,ArrayList<String>> nemaKalhotyBarvy;  // Omezeni: kazde jmeno ma prirazen seznam zakazanych barev kalhot
    public HashMap<String,ArrayList<String>> pripustneBarvyKosile;  // kazde jmeno ma prirazen seznam pripustnych barev kosile
    public HashMap<String,ArrayList<String>> pripustneBarvyKalhot;  // kazde jmeno ma prirazen seznam pripustnych barev kalhot
    public HashMap<String,ArrayList<Integer>> pripustnaPrirazeni;   // kazde jmeno ma prirazen seznam pripustnych pozic
                                                                    // POZOR: Pouze, uvazuji se omezeni na barvu kalhot a kosile.
                                                                    //        Omezeni typu sousedi, nesousedi, nalevood, napravood nejsou zohlednena.

Metody:

    /**
     * Nacte celou definici hadanky ze vstupniho souboru.
     * @param vstSoubor 
     */
    private void nactiHadanku(String vstSoubor)
 
    /**
     * Vypise seznam postav jako dvojice barvaKalhot-barvaKosile
     */
    public void vypisPostavy()
 
    /**
     * Vypise pro kazde jsmeno seznam vsech pripustnych pozic.
     */
    public void vypisPripustnaPrirazeni(){
 
    /**
     * Naplni strukturu pripustneBarvyKosile na zaklade vsech omezeni typu
     * mabarvukosile a nemabarvukosile.
     * Kazdemu jmenu vytvori seznam pripustnych barev kosile. 
     */
    public void zpracujBarvyKosile()
 
    /**
     * Naplni strukturu pripustneBarvyKalhot na zaklade vsech omezeni typu
     * mabarvukalhot a nemabarvukalhot.
     * Kazdemu jmenu vytvori seznam pripustnych barev kalhot. 
     */
    public void zpracujBarvyKalhot()
 
    /**
     * Vytvori strukturu, ve ktere bude mit kazde jmeno prirazen seznam vsech pripustnych pozic.
     * 
     * POZOR: Uvazuje pouze omezeni na barvu kalhot a kosile. 
     *        Jina omezeni neuvazuje.
     */
    public void nastavPripustnaPrirazeni()
 
    /**
     * Zpracuje jedno konkretni omezeni typu sousedi(A,B).
     * To znamena, ze prida do seznamu omezeni sousedi jmeno B do seznamu sousedu A
     * a jmeno A do seznamu sousedu B.
     * @param parametry
     * @return true, kdyz je omezeni konzistentni se stavajici mnozinou omezeni.
     */
    public boolean zpracujSousedi(String[] parametry)
 
    /**
     * Vypise seznam omezeni typu sousedi.
     * U kazdeho jmena vypise seznam jmen, se kterymi musi postava daneho jmena sousedit.
     */
    public void vypisSousedi()
 
    /**
     * Zpracuje jedno konkretni omezeni typu nesousedi(A,B), tzn. postava A neni na fotce vedle postavy B.
     * To znamena, ze prida do seznamu omezeni nesousedi jmeno B do seznamu nesousedu A
     * a jmeno A do seznamu nesousedu B.
     * @param parametry
     * @return true, kdyz je omezeni konzistentni se stavajici mnozinou omezeni.
     */
    public boolean zpracujNesousedi(String[] parametry)
 
    /**
     * Vypise seznam omezeni typu nesousedi.
     * U kazdeho jmena vypise seznam jmen, se kterymi NESMI postava daneho jmena sousedit.
     */
    public void vypisNesousedi()
 
    /**
     * Zpracuje jedno konkretni omezeni typu nalevood(A,B), tzn. postava A je na fotce nalevo od postavy B.
     * Prida jmeno B do seznamu omezeni jeNalevoOd zaznamu s klicem A,
     * a jmeno A do seznamu jeNapravoOd zaznamu s klicem B.
     * @param parametry
     * @return true, kdyz je omezeni konzistentni se stavajici mnozinou omezeni.
     */
    public boolean zpracujJeNalevoOd(String[] parametry)
 
    /**
     * Zpracuje jedno konkretni omezeni typu makosilibarvy(jmeno,barva), 
     * tzn. priradi danou barvu postave s danym jmenem.
     * @param parametry
     * @return true, kdyz je omezeni konzistentni se stavajici mnozinou omezeni.
     */
    public boolean zpracujMaKosiliBarvy(String[] parametry)
 
    /**
     * Zpracuje jedno konkretni omezeni typu nemakosilibarvy(jmeno,barva), 
     * tzn. priradi danou barvu do seznamu nepripustnych barev kosile postave s danym jmenem.
     * @param parametry
     * @return true, kdyz je omezeni konzistentni se stavajici mnozinou omezeni.
     */
    public boolean zpracujNemaKosiliBarvy(String[] parametry)
 
    /**
     * Zpracuje jedno konkretni omezeni typu makalhotybarvy(jmeno,barva), 
     * tzn. priradi danou barvu kalhot postave s danym jmenem.
     * @param parametry
     * @return true, kdyz je omezeni konzistentni se stavajici mnozinou omezeni.
     */
    public boolean zpracujMaKalhotyBarvy(String[] parametry)
 
    /**
     * Zpracuje jedno konkretni omezeni typu nemakalhotybarvy(jmeno,barva), 
     * tzn. priradi danou barvu do seznamu NEpripustnych barev kalhot postave s danym jmenem.
     * @param parametry
     * @return true, kdyz je omezeni konzistentni se stavajici mnozinou omezeni.
     */
    public boolean zpracujNemaKalhotyBarvy(String[] parametry)

Třída Reseni

Třída Nahodny

Třída Main

Zpět na stránku se zadáním

 
2017_2018/kdo_je_kdo/tridahadanka.txt · Last modified: 2017/10/26 16:21 by vecerka