diff --git a/gamemaster.cpp b/gamemaster.cpp index f52cc4d57f586d38c68ecb978d1e1beefee4f0dd..379a6e977842f2cebebb563381ea68e525fbdbe1 100644 --- a/gamemaster.cpp +++ b/gamemaster.cpp @@ -77,10 +77,26 @@ set<int> GameMaster::szabalytalanok() } } } - return s; } +bool GameMaster::szabalyos_e(int jelenlegi_int, int jelenlegi_ertek) +{ + bool valasz=true; + std::set<int> aura_halmaz = aura(jelenlegi_int); + for (int i=0; i<_megoldas.size(); i++) + { + if (aura_halmaz.find(i) != aura_halmaz.end()) + { + if (jelenlegi_ertek == _megoldas[i] && _megoldas[i]!=0) + { + valasz=false; + } + } + } + return valasz; +} + int GameMaster::negyzet_szama(Index jelenlegi) { if (jelenlegi.sor <= 2) @@ -125,6 +141,42 @@ bool GameMaster::kesz() return valasz; } +void GameMaster::uj_jatek() +{ + for (int i=0; i<_megoldas.size(); i++) + { + _megoldas[i]=0; + } + + for (int i=0; i<17; i++) + { + _megoldas[i] = rand()%9+1; + cout << i << " " <<_megoldas[i] << endl; + + while (!szabalyos_e(i,_megoldas[i])) + { + _megoldas[i] = rand()%9+1; + cout << i << " " << _megoldas[i] << endl; + } + //fajl_kiiras("megoldas_generalo.txt",_megoldas); + } + + for (int i=17; i<_megoldas.size(); i++) + { + for (int j=1; j<=9; j++) + { + if (szabalyos_e(i,j)) + { + _megoldas[i]=j; + j = 9; + } + } + cout << i << " " << _megoldas[i] << endl; + } + + fajl_kiiras("megoldas_generalo.txt",_megoldas); +} + void GameMaster::save(int sorszam, int ertek) { _save[sorszam]=ertek; diff --git a/gamemaster.hpp b/gamemaster.hpp index 8efc431c1ed66bf69bb2422ab98d1654ac9bcdec..37d84a035f75d952bde64ab1fdf4e79b84fd460b 100644 --- a/gamemaster.hpp +++ b/gamemaster.hpp @@ -22,9 +22,12 @@ class GameMaster std::set<int> aura(int); std::set<int> szabalytalanok(); - virtual bool kesz(); virtual int negyzet_szama(Index); + virtual bool kesz(); + virtual bool szabalyos_e(int,int); + virtual void uj_jatek(); + protected: std::string _fajl_megoldas, _fajl_feladat, _fajl_save; std::vector<int> _megoldas, _feladat, _save;