From 35686de5627af0360d0fa69d9cdbdf9a82f11dd8 Mon Sep 17 00:00:00 2001
From: Monoki Dorina <mondo1@cortex.itk.ppke.hu>
Date: Sun, 19 May 2024 01:07:16 +0200
Subject: [PATCH] letezik egy nem mukodo jatekgenerator

---
 gamemaster.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-
 gamemaster.hpp |  5 ++++-
 2 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/gamemaster.cpp b/gamemaster.cpp
index f52cc4d..379a6e9 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 8efc431..37d84a0 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;
-- 
GitLab