diff --git a/main.cpp b/main.cpp index 9a5d6f5e3d1731a99a5d8848a52f1e3b9f67bc18..dbdcfe308ab279ae989cc757780f958e23d07bd8 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,5 @@ #include "palya.h" -using namespace std; using namespace genv; int main() diff --git a/mester.cpp b/mester.cpp index 0901d21ceda2b6c0f0381f0a55a52fdf38c1b8a0..3370a8e7b1a5ce4b88d0f3dcadc9969e9657ed0d 100644 --- a/mester.cpp +++ b/mester.cpp @@ -1,25 +1,40 @@ #include "mester.h" #include "palya.h" #include "palyamezo.h" +#include "player.h" #include <iostream> using namespace genv; +using namespace std; -Mester::Mester(Palya* _p) : p(_p) {} +Mester::Mester() +{ + player1 = new Player("Player1", 0); + player2 = new Player("Player2", 1); + aktiv = player1; +} + +void Mester::PlayerChange(){ + if(aktiv == player1) {aktiv = player2;} + else + if(aktiv == player2) {aktiv = player1;} +} void Mester::iranyitas(Palyamezo* f, event ev) { - if(f->hozzaer(ev) && !f->filled && !f->chosen){ + if(f->hozzaer(ev) && !f->get_filled() && !f->get_chosen()){ f->chosen_draw(); f->set_chosen(); } - if(!f->hozzaer(ev) && !f->filled && f->chosen){ + if(!f->hozzaer(ev) && !f->get_filled() && f->get_chosen()){ f->draw(); f->reset_chosen(); } - if(f->select(ev) && !f->filled) - lepes = true; + if(f->select(ev) && !f->get_filled()){ + cout << aktiv->get_name() << endl; + f->mark(aktiv->get_sorszam()); + f->fillin(); + PlayerChange(); + } } -void Mester::turn() {} - Mester::~Mester() {} diff --git a/mester.h b/mester.h index 62aeca9ac91f85cd5dd9b5c4a40c5de85b6bd834..3df804007e3b48d6aa1961834ec44403865c6e7f 100644 --- a/mester.h +++ b/mester.h @@ -4,16 +4,19 @@ class Palya; class Palyamezo; +class Player; class Mester { Palya* p; genv::event ev; - bool lepes = false; + Player* player1; + Player* player2; + Player* aktiv; public: - Mester(Palya* _p); + Mester(); void iranyitas(Palyamezo* f, genv::event ev); - void turn(); + void PlayerChange(); ~Mester(); }; diff --git a/palya.cpp b/palya.cpp index 363310f7a06811e710754081b03e82517d6f8737..6596218a27048ab5c3d189165c4074a0c2a22e29 100644 --- a/palya.cpp +++ b/palya.cpp @@ -16,7 +16,7 @@ Palya::Palya() negyzet->draw(); } } - mesztor = new Mester(this); + mesztor = new Mester(); } void Palya::jatek(event ev){ diff --git a/palya.h b/palya.h index 6bf74b3ffb9339914471b72cb6531c1eb3c0bb80..01bef8e28684ed40013f35de0566e3322f9076f2 100644 --- a/palya.h +++ b/palya.h @@ -10,9 +10,9 @@ class Palya { const int XX = 1000; const int YY = 1000; + std::vector<Palyamezo*> palyaterulet; public: Palya(); - std::vector<Palyamezo*> palyaterulet; Mester* mesztor; void jatek(genv::event ev); ~Palya(); diff --git a/palyamezo.cpp b/palyamezo.cpp index bda2805f9d3759eaa39330000ccb29d4c58d12de..cceab9563de269b40b8fcf22ae8094a5a97cc69f 100644 --- a/palyamezo.cpp +++ b/palyamezo.cpp @@ -1,4 +1,6 @@ #include "palyamezo.h" +#define red 235,25,25 +#define blue 0,175,255 using namespace genv; @@ -17,6 +19,12 @@ void Palyamezo::chosen_draw(){ gout << move_to(x+1,y+1) << color(t,t,t) << box(w-2,h-2); } +bool Palyamezo::get_filled() {return filled;} + +void Palyamezo::fillin() {filled = true;} + +bool Palyamezo::get_chosen() {return chosen;} + void Palyamezo::set_chosen(){ if(!chosen) chosen = true; @@ -27,4 +35,12 @@ void Palyamezo::reset_chosen(){ chosen = false; } +void Palyamezo::mark(int id){ + gout << move_to(x+1,y+1) << color(0,0,0) << box(w-2,h-2); + if(id == 0) + gout << move_to(x+5,y+5) << color(red) << line(0,30) << line(30,0) << line(0,-30) << line(-30,0); + if(id == 1) + gout << move_to(x+5,y+35) << color(blue) << line(30,0) << line_to(x+w/2,y+5) << line_to(x+5,y+35); +} + Palyamezo::~Palyamezo() {} diff --git a/palyamezo.h b/palyamezo.h index af4b2d3c574aa3d188aaaa1c80729e514297b288..107f436b9e5b4c730478d0c78a8bfda76d75f560 100644 --- a/palyamezo.h +++ b/palyamezo.h @@ -6,15 +6,19 @@ class Palyamezo : public Widget { int index_m; int index_n; + bool filled = false; + bool chosen = false; public: Palyamezo(Palya* _p, int _x, int _y, int _w, int _h, int _m, int _n); ~Palyamezo(); void draw() override; void chosen_draw(); - bool filled = false; - bool chosen = false; + bool get_filled(); + void fillin(); + bool get_chosen(); void set_chosen(); void reset_chosen(); + void mark(int id); }; #endif // PALYAMEZO_H diff --git a/player.cpp b/player.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3e413598f398dc862dd615da212e200dd570d3b0 --- /dev/null +++ b/player.cpp @@ -0,0 +1,13 @@ +#include "player.h" + +using namespace std; + +Player::Player(string _name, int _sorszam) : name(_name), sorszam(_sorszam) {} + +string Player::get_name() {return name;} + +int Player::get_pontszam() {return pontszam;} + +int Player::get_sorszam() {return sorszam;} + +Player::~Player() {} diff --git a/player.h b/player.h new file mode 100644 index 0000000000000000000000000000000000000000..18e9519f2c452806742789eb4d4e48f901e0d969 --- /dev/null +++ b/player.h @@ -0,0 +1,18 @@ +#ifndef PLAYER_H +#define PLAYER_H +#include <string> + +class Player +{ + std::string name; + int pontszam = 0; + int sorszam; +public: + Player(std::string _nev, int _sorszam); + std::string get_name(); + int get_pontszam(); + int get_sorszam(); + ~Player(); +}; + +#endif // PLAYER_H diff --git a/widget.cpp b/widget.cpp index 61c0f6f10c9c874df015156ed0f2652ebd3e7b29..fe57a295f7a011dc7254331f6c1dc9f8a8cb2dfb 100644 --- a/widget.cpp +++ b/widget.cpp @@ -12,8 +12,10 @@ bool Widget::hozzaer(event ev){ } bool Widget::select(event ev){ - if(hozzaer(ev) && ev.button==btn_left) - return true; - if(!hozzaer(ev) && ev.button==btn_left) - return false; + if(ev.type == ev_mouse){ + if(hozzaer(ev) && ev.button==btn_left) + return true; + else + return false; + } }