Skip to content
Snippets Groups Projects
Select Git revision
  • a8b2fedc47d35c5c0ecd7a9d9b10aee289467b10
  • main default protected
2 results

gamemaster.cpp

Blame
  • gamemaster.cpp 5.09 KiB
    #include "gamemaster.hpp"
    
    #define jelenlegi_i 9*jelenlegi.sor+jelenlegi.oszlop
    #define sorszam_i 9*sorszam.sor+sorszam.oszlop
    
    using namespace std;
    
    GameMaster::GameMaster(Application* parent, std::string mo, std::string fe) :
        _parent(parent), _fajl_megoldas(mo), _fajl_feladat(fe), _fajl_save("save.txt")
    {
        _parent->register_gm(this);
    
        std::ifstream fajl("palyaszam.txt");
        if (!fajl.good())
        {
            cout << "NEM JO A FAJL" << endl;
        }
        fajl >> _palyaszam;
        fajl.close();
    
        kezdo_jatek();
    
        // megmondja hogy melyik indexek melyik nagy negyzethez tartoznak
        _negyzetek.resize(9);
        for (int j=0; j<9; j++)  // sor
        {
            for (int i=0; i<9; i++)  // oszlop
            {
                Index sorszam(j,i);
                int negyzet = negyzet_szama(sorszam);
                _negyzetek[negyzet].push_back(sorszam_i);
            }
        }
    }
    
    
    set<int> GameMaster::aura(int jelenlegi_int)
    {
        Index jelenlegi(jelenlegi_int);
        set<int> s;
    
        int negyzet=negyzet_szama(jelenlegi);
    
        for (int i=0; i<9; i++)
        {
            Index sorszam(jelenlegi.sor,i);
            s.insert(sorszam_i);
        }
    
        for (int i=0; i<9; i++)
        {
            Index sorszam(i,jelenlegi.oszlop);
            s.insert(sorszam_i);
        }
    
        for (int i=0; i<9; i++)
        {
            int sorszam = _negyzetek[negyzet][i];
            s.insert(sorszam);
        }
    
        s.erase(jelenlegi_i);
    
        return s;
    }
    
    set<int> GameMaster::szabalytalanok()
    {
        set<int> s;