Select Git revision
gamemaster.cpp
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;