From 9b3f9c9ab7d999e4011a6337c35b913e208e05ae 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 08:58:49 +0200
Subject: [PATCH] =?UTF-8?q?jav=C3=ADtott=20streak=20vizsg=C3=A1l=C3=A1s,?=
 =?UTF-8?q?=20hib=C3=A1s=20key=20kezel=C3=A9s,=20ink=C3=A1bb=20kikommentel?=
 =?UTF-8?q?tem,=20nem=20befejezett=20won=20ablak?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 mester.cpp | 92 ++++++++++++++++++++++++++++++++----------------------
 mester.h   |  2 ++
 palya.cpp  | 12 +++++--
 palya.h    |  1 +
 4 files changed, 66 insertions(+), 41 deletions(-)

diff --git a/mester.cpp b/mester.cpp
index 66ddbf8..16e954b 100644
--- a/mester.cpp
+++ b/mester.cpp
@@ -24,38 +24,64 @@ void Mester::PlayerChange(){
 }
 
 void Mester::iranyitas(Palyamezo* f, event ev) {
-    if(f->hozzaer(ev) && !f->get_filled() && !f->get_hovered()){
-        f->hovered_draw();
-        f->set_hovered();
-    }
-    if(!f->hozzaer(ev) && !f->get_filled() && f->get_hovered()){
-        f->draw();
-        f->reset_hovered();
-    }
-    if(f->select(ev) && !f->get_filled()){
-        f->occupy(aktiv->get_sorszam());
-        f->fillin();
-        lepes = true;
+    /*if(ev.type == ev_key){
+        negyzetek[focused_index]->hovered_draw();
+        negyzetek[focused_index]->set_hovered();
+        if(ev.keycode == key_left && focused_index-20 >= 0){
+            negyzetek[focused_index]->draw();
+            negyzetek[focused_index]->reset_hovered();
+            focused_index = focused_index-20;
+            negyzetek[focused_index]->hovered_draw();
+            negyzetek[focused_index]->set_hovered();}
+        if(ev.keycode == key_right && focused_index+20 < 400){
+            negyzetek[focused_index]->draw();
+            negyzetek[focused_index]->reset_hovered();
+            focused_index = focused_index+20;
+            negyzetek[focused_index]->hovered_draw();
+            negyzetek[focused_index]->set_hovered();}
+        if(ev.keycode == key_up && focused_index-1 >= 0){
+            negyzetek[focused_index]->draw();
+            negyzetek[focused_index]->reset_hovered();
+            focused_index = focused_index+20;
+            negyzetek[focused_index]->hovered_draw();
+            negyzetek[focused_index]->set_hovered();}
+        if(ev.keycode == key_up && focused_index+1 < 400){
+            negyzetek[focused_index]->draw();
+            negyzetek[focused_index]->reset_hovered();
+            focused_index = focused_index+20;
+            negyzetek[focused_index]->hovered_draw();
+            negyzetek[focused_index]->set_hovered();}
+    }*/
+    if(ev.type == ev_mouse){
+        if(f->hozzaer(ev) && !f->get_filled() && !f->get_hovered()){
+            f->hovered_draw();
+            f->set_hovered();
+        }
+        if(!f->hozzaer(ev) && !f->get_filled() && f->get_hovered()){
+            f->draw();
+            f->reset_hovered();
+        }
+        if(f->select(ev) && !f->get_filled()){
+            f->occupy(aktiv->get_sorszam());
+            f->fillin();
+            lepes = true;
+        }
     }
 }
 
 int Mester::moncsok_vizsg(Palyamezo* f, int szam){
     int streak = 1;
     for(int i = 1; i<=4;){
-        if(szam-(i*20) > 0 && negyzetek[szam-(i*20)]->occupied_by == f->occupied_by){
+        if(szam-(i*21) > 0 && negyzetek[szam-(i*21)]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "bal-fel" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
         }
     }
     for(int i = 1; i<=4;){
-        if(szam+(i*20) <= 400 && negyzetek[szam+(i*20)]->occupied_by == f->occupied_by){
+        if(szam+(i*21) < 400 && negyzetek[szam+(i*21)]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "jobb-le" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
@@ -67,20 +93,16 @@ int Mester::moncsok_vizsg(Palyamezo* f, int szam){
 int Mester::monno_vizsg(Palyamezo* f, int szam){
     int streak = 1;
     for(int i = 1; i<=4;){
-        if(szam-(i*18) > 0 && negyzetek[szam-(i*18)]->occupied_by == f->occupied_by){
+        if(szam-(i*19) > 0 && negyzetek[szam-(i*19)]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "bal-le" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
         }
     }
     for(int i = 1; i<=4;){
-        if(szam+(i*18) <= 400 && negyzetek[szam+(i*18)]->occupied_by == f->occupied_by){
+        if(szam+(i*19) < 400 && negyzetek[szam+(i*19)]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "bal-fel" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
@@ -92,20 +114,16 @@ int Mester::monno_vizsg(Palyamezo* f, int szam){
 int Mester::horizont_vizsg(Palyamezo* f, int szam){
     int streak = 1;
     for(int i = 1; i<=4;){
-        if(szam-(i*19) > 0 && negyzetek[szam-(i*19)]->occupied_by == f->occupied_by){
+        if(szam-(i*20) > 0 && negyzetek[szam-(i*20)]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "bal" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
         }
     }
     for(int i = 1; i<=4;){
-        if(szam+(i*19) <= 400 && negyzetek[szam+(i*19)]->occupied_by == f->occupied_by){
+        if(szam+(i*20) <  400 && negyzetek[szam+(i*20)]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "jobb" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
@@ -117,20 +135,16 @@ int Mester::horizont_vizsg(Palyamezo* f, int szam){
 int Mester::vertic_vizsg(Palyamezo* f, int szam){
     int streak = 1;
     for(int i = 1; i<=4;){
-        if(szam-i > 0 && negyzetek[szam-i]->occupied_by == negyzetek[szam]->occupied_by){
+        if(szam-i > 0 && negyzetek[szam-i]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "fel" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
         }
     }
     for(int i = 1; i<=4;){
-        if(szam+i <= 400 && negyzetek[szam+i]->occupied_by == f->occupied_by){
+        if(szam+i < 400 && negyzetek[szam+i]->occupied_by == f->occupied_by){
             streak++;
-            std::cout << "le" << std::endl;
-            std::cout << streak << std::endl;
             i++;
         } else {
             i = 5;
@@ -149,7 +163,10 @@ bool Mester::streak_vizsgalo(Palyamezo* vizsgalt){
         return false;}
 }
 
-void Mester::gameover() {}
+void Mester::gameover() {
+    /*if(player1->get_pontszam() == 3)
+        p->won()*/
+}
 
 void Mester::szabalyzat(Palyamezo* f){
     if(lepes && turn < 400){
@@ -158,7 +175,6 @@ void Mester::szabalyzat(Palyamezo* f){
         PlayerChange();
         lepes = false;
         turn++;
-        std::cout << turn << std::endl;
     }
     if(player1->get_pontszam() == 3 || player2->get_pontszam()  == 3 || turn == 400)
         gameover();
diff --git a/mester.h b/mester.h
index c43afbf..a87d76f 100644
--- a/mester.h
+++ b/mester.h
@@ -3,6 +3,7 @@
 #include "graphics.hpp"
 #include <vector>
 
+class Palya;
 class Palyamezo;
 class Player;
 
@@ -12,6 +13,7 @@ class Mester
     std::vector<Palyamezo*> negyzetek;
     bool lepes = false;
     int turn = 0;
+    int focused_index = 200;
 public:
     Mester();
     Player* player1;
diff --git a/palya.cpp b/palya.cpp
index b4bddc5..a777000 100644
--- a/palya.cpp
+++ b/palya.cpp
@@ -11,9 +11,9 @@ Palya::Palya()
 {
     gout.open(XX,YY);
     gout << font("LiberationSans-Regular.ttf",32);
-    for(int i = 1; i<=20; i++){
-        for(int j = 1; j<=20; j++){
-            Palyamezo* negyzet = new Palyamezo(this, 100+((i-1)*40), 100+((j-1)*40), 40, 40, 20*(i-1)+j);
+    for(int i = 0; i<20; i++){
+        for(int j = 0; j<20; j++){
+            Palyamezo* negyzet = new Palyamezo(this, 100+(i*40), 100+(j*40), 40, 40, 20*i+j);
             palyaterulet.push_back(negyzet);
             negyzet->draw();
         }
@@ -50,4 +50,10 @@ void Palya::grafikai_valtozas(){
     pontok2->draw();
 }
 
+void Palya::won(string gyoztes) {
+    gout << font("LiberationSans-Regular.ttf",35);
+    TextWidget* ablak = new TextWidget(this, 450, 450, 150, 150, gyoztes);
+    ablak->draw();
+}
+
 Palya::~Palya() {}
diff --git a/palya.h b/palya.h
index 9b06a12..37ad4ef 100644
--- a/palya.h
+++ b/palya.h
@@ -23,6 +23,7 @@ public:
     Mester* mesztor;
     void jatek(genv::event ev);
     void grafikai_valtozas();
+    void won(std::string gyoztes);
     ~Palya();
 };
 
-- 
GitLab