From cc1ed139d3342d93ed21ad04603430e6d12b575f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Papp=20Benj=C3=A1min?= <papbe5@cortex.itk.ppke.hu> Date: Sun, 19 May 2024 15:33:20 +0200 Subject: [PATCH] =?UTF-8?q?player=20l=C3=A9trehozva,=20m=C3=A1r=20lehet=20?= =?UTF-8?q?=C3=A1br=C3=A1kat=20nyomni=20a=20p=C3=A1ly=C3=A1ra?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 1 - mester.cpp | 29 ++++++++++++++++++++++------- mester.h | 9 ++++++--- palya.cpp | 2 +- palya.h | 2 +- palyamezo.cpp | 16 ++++++++++++++++ palyamezo.h | 8 ++++++-- player.cpp | 13 +++++++++++++ player.h | 18 ++++++++++++++++++ widget.cpp | 10 ++++++---- 10 files changed, 89 insertions(+), 19 deletions(-) create mode 100644 player.cpp create mode 100644 player.h diff --git a/main.cpp b/main.cpp index 9a5d6f5..dbdcfe3 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 0901d21..3370a8e 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 62aeca9..3df8040 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 363310f..6596218 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 6bf74b3..01bef8e 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 bda2805..cceab95 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 af4b2d3..107f436 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 0000000..3e41359 --- /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 0000000..18e9519 --- /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 61c0f6f..fe57a29 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; + } } -- GitLab