diff --git a/mester.cpp b/mester.cpp index 16e954bc9f407c26bfbd35ffb761235f7ad8c019..3421257b5704b95a2a2bfe886b510bd9a6780ed4 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 a87d76f0169d538118a4bd2cea0b6893481fcf85..777d851b68f7c0b27aa43f1241541962be696d0f 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 a7770002c1a6885564f049397ef0a80e47186f86..a049e8490592b457dd769ea45655b1828a13d77d 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 37ad4ef18cfe647c57a6f63aa17b38cca7ba9b09..a3c51c9c6c02d042dc3d934a4c19edd3298d35ad 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(); };