From 0c4c648402881e6dbdd60daa9ca42b03a546b410 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Papp=20Benj=C3=A1min?= <papbe5@cortex.itk.ppke.hu>
Date: Mon, 20 May 2024 19:21:46 +0200
Subject: [PATCH] =?UTF-8?q?POST=20HAT=C3=81RID=C5=90s=20kieg=C3=A9sz=C3=AD?=
 =?UTF-8?q?t=C5=91=20commit,=20de=20nem=20akartam=20befejezetlen=C3=BCl=20?=
 =?UTF-8?q?hagyni:=20won/draw=20ablak=20hozz=C3=A1adva?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 mester.cpp | 24 +++++++++++++++---------
 mester.h   |  3 ++-
 palya.cpp  | 28 ++++++++++++++++++++++------
 palya.h    |  2 ++
 4 files changed, 41 insertions(+), 16 deletions(-)

diff --git a/mester.cpp b/mester.cpp
index 16e954b..3421257 100644
--- a/mester.cpp
+++ b/mester.cpp
@@ -7,7 +7,7 @@
 
 using namespace genv;
 
-Mester::Mester()
+Mester::Mester(Palya* _p) : p(_p)
 {
     player1 = new Player("Player1", 1);
     player2 = new Player("Player2", 2);
@@ -155,17 +155,23 @@ int Mester::vertic_vizsg(Palyamezo* f, int szam){
 
 bool Mester::streak_vizsgalo(Palyamezo* vizsgalt){
     int vizsgalt_index = vizsgalt->index;
-    if(moncsok_vizsg(vizsgalt, vizsgalt_index) >= 5 || monno_vizsg(vizsgalt, vizsgalt_index) >= 5 || horizont_vizsg(vizsgalt, vizsgalt_index) >= 5 || vertic_vizsg(vizsgalt, vizsgalt_index) >= 5){
-        std::cout << "streak" << std::endl;
-        return true;}
-    else {
-        std::cout << "not really" << std::endl;
-        return false;}
+    if(moncsok_vizsg(vizsgalt, vizsgalt_index) >= 5 || monno_vizsg(vizsgalt, vizsgalt_index) >= 5 || horizont_vizsg(vizsgalt, vizsgalt_index) >= 5 || vertic_vizsg(vizsgalt, vizsgalt_index) >= 5)
+        {return true;}
+    else    {return false;}
 }
 
 void Mester::gameover() {
-    /*if(player1->get_pontszam() == 3)
-        p->won()*/
+    if(player1->get_pontszam() == 3)
+        p->won(player1->get_name());
+    if(player2->get_pontszam() == 3)
+        p->won(player2->get_name());
+    if(turn == 400){
+        if(player1->get_pontszam() > player2->get_pontszam())
+            p->won(player1->get_name());
+        else{ if(player2->get_pontszam() > player1->get_pontszam())
+            p->won(player2->get_name());
+        else{ if(player1->get_pontszam() == player2->get_pontszam())
+            p->dontetlen();}}}
 }
 
 void Mester::szabalyzat(Palyamezo* f){
diff --git a/mester.h b/mester.h
index a87d76f..777d851 100644
--- a/mester.h
+++ b/mester.h
@@ -9,13 +9,14 @@ class Player;
 
 class Mester
 {
+    Palya* p;
     Player* aktiv;
     std::vector<Palyamezo*> negyzetek;
     bool lepes = false;
     int turn = 0;
     int focused_index = 200;
 public:
-    Mester();
+    Mester(Palya* _p);
     Player* player1;
     Player* player2;
     void set_negyzetek(std::vector<Palyamezo*> v);
diff --git a/palya.cpp b/palya.cpp
index a777000..a049e84 100644
--- a/palya.cpp
+++ b/palya.cpp
@@ -18,7 +18,7 @@ Palya::Palya()
             negyzet->draw();
         }
     }
-    mesztor = new Mester();
+    mesztor = new Mester(this);
     title = new TextWidget(this, 410, 30, 200, 50, "Tic-tac-toe");
     title->draw();
     gout << font("LiberationSans-Regular.ttf",24);
@@ -36,10 +36,12 @@ Palya::Palya()
 }
 
 void Palya::jatek(event ev){
-    mesztor->set_negyzetek(palyaterulet);
-    for(Palyamezo* negyzet : palyaterulet){
-        mesztor->iranyitas(negyzet, ev);
-        mesztor->szabalyzat(negyzet);
+    if(!vege){
+        mesztor->set_negyzetek(palyaterulet);
+        for(Palyamezo* negyzet : palyaterulet){
+            mesztor->iranyitas(negyzet, ev);
+            mesztor->szabalyzat(negyzet);
+        }
     }
 }
 
@@ -52,8 +54,22 @@ void Palya::grafikai_valtozas(){
 
 void Palya::won(string gyoztes) {
     gout << font("LiberationSans-Regular.ttf",35);
-    TextWidget* ablak = new TextWidget(this, 450, 450, 150, 150, gyoztes);
+    TextWidget* ablak = new TextWidget(this, 400, 400, 230, 200, gyoztes + " won!");
     ablak->draw();
+    gout << font("LiberationSans-Regular.ttf",24);
+    TextWidget* kilepes = new TextWidget(this, 400, 750, 250, 100, "Press 'Esc' to exit!");
+    kilepes->draw();
+    vege = true;
+}
+
+void Palya::dontetlen(){
+    gout << font("LiberationSans-Regular.ttf",35);
+    TextWidget* ablak = new TextWidget(this, 400, 400, 230, 200, "Draw!");
+    ablak->draw();
+    gout << font("LiberationSans-Regular.ttf",24);
+    TextWidget* kilepes = new TextWidget(this, 400, 750, 250, 100, "Press 'Esc' to exit!");
+    kilepes->draw();
+    vege = true;
 }
 
 Palya::~Palya() {}
diff --git a/palya.h b/palya.h
index 37ad4ef..a3c51c9 100644
--- a/palya.h
+++ b/palya.h
@@ -11,6 +11,7 @@ class Palya
 {
     const int XX = 1000;
     const int YY = 1000;
+    bool vege = false;
     TextWidget* title;
     TextWidget* bo3;
     TextWidget* nev1;
@@ -24,6 +25,7 @@ public:
     void jatek(genv::event ev);
     void grafikai_valtozas();
     void won(std::string gyoztes);
+    void dontetlen();
     ~Palya();
 };
 
-- 
GitLab