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