diff --git a/mester.cpp b/mester.cpp index 66ddbf8a213613e0c0b4cb8bea0f0cab10764dfa..16e954bc9f407c26bfbd35ffb761235f7ad8c019 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 c43afbfd7876db62c956413b2b0b2fe4bbdbe2db..a87d76f0169d538118a4bd2cea0b6893481fcf85 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 b4bddc55b7f02d69bb901a260f95c1d4356b4e92..a7770002c1a6885564f049397ef0a80e47186f86 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 9b06a12daa8bd5037ebeebd60afc8f6f850226e3..37ad4ef18cfe647c57a6f63aa17b38cca7ba9b09 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(); };