diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e3c00aefde04b1e49521406226cf4a4b2b7fb934 --- /dev/null +++ b/main.cpp @@ -0,0 +1,18 @@ +#include "palya.h" + +using namespace std; +using namespace genv; + +int main() +{ + Palya* tictac = new Palya(); + + event ev; + while (gin >> ev && ev.keycode!=key_escape) + { + tictac->proba(ev); + gout << refresh; + } +} + +//Papp Benjamin (I8KQEC) diff --git a/palya.cpp b/palya.cpp new file mode 100644 index 0000000000000000000000000000000000000000..28ea3984db23d7fe8a2b929c3d55d8f566fc396e --- /dev/null +++ b/palya.cpp @@ -0,0 +1,28 @@ +#include <iostream> +#include "palya.h" + +using namespace std; +using namespace genv; + +Palya::Palya() +{ + gout.open(XX,YY); + for(int i = 0; i<20; i++){ + for(int j = 0; j<20; j++){ + Palyamezo* proba = new Palyamezo(this, 100+(i*40), 100+(j*40), 40, 40, i, j); + palyaterulet.push_back(proba); + } + } + for(Widget* r : palyaterulet) + r->draw(); +} + +void Palya::proba(event ev) +{ + for(Palyamezo* r : palyaterulet){ + if(r->hozzaer(ev)) + cout << r->index_m << " - " << r->index_n << endl; + } +} + +Palya::~Palya() {} diff --git a/palya.h b/palya.h new file mode 100644 index 0000000000000000000000000000000000000000..198ef9964ac3c5f99186753391f27bc8747a37d5 --- /dev/null +++ b/palya.h @@ -0,0 +1,17 @@ +#ifndef PALYA_H +#define PALYA_H +#include <vector> +#include "palyamezo.h" + +class Palya +{ + std::vector<Palyamezo*> palyaterulet; +public: + const int XX = 1000; + const int YY = 1000; + Palya(); + void proba(genv:: event ev); + ~Palya(); +}; + +#endif // PALYA_H diff --git a/palyamezo.cpp b/palyamezo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b6bf45ec7bbc8195c3910d9b96802fc1e9c89333 --- /dev/null +++ b/palyamezo.cpp @@ -0,0 +1,15 @@ +#include "palyamezo.h" + +using namespace genv; + +Palyamezo::Palyamezo(Palya* _p, int _x, int _y, int _w, int _h, int _m, int _n) : + Widget(_p, _x, _y, _w, _h), index_m(_m), index_n(_n) {} + +Palyamezo::~Palyamezo() {} + +void Palyamezo::draw(){ + int t = 255; + gout << move_to(x,y) << color(t,t,t) << box(w,h); + t = 0; + gout << move_to(x+1,y+1) << color(t,t,t) << box(w-2,h-2); +} diff --git a/palyamezo.h b/palyamezo.h new file mode 100644 index 0000000000000000000000000000000000000000..a2ea4f0fd18df2fe16d15db6969b060bdaefdb81 --- /dev/null +++ b/palyamezo.h @@ -0,0 +1,15 @@ +#ifndef PALYAMEZO_H +#define PALYAMEZO_H +#include "widget.h" + +class Palyamezo : public Widget +{ +public: + Palyamezo(Palya* _p, int _x, int _y, int _w, int _h, int _m, int _n); + ~Palyamezo(); + int index_m; + int index_n; + void draw() override; +}; + +#endif // PALYAMEZO_H diff --git a/widget.cpp b/widget.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7684c8e8fa7b62b5d2263a4734eee704ca0665bc --- /dev/null +++ b/widget.cpp @@ -0,0 +1,21 @@ +#include "widget.h" + +using namespace genv; + +Widget::Widget(Palya* _p, int _x, int _y, int _w, int _h) : p(_p), x(_x), y(_y), w(_w), h(_h){} + +bool Widget::hozzaer(event ev) +{ + if(ev.pos_x > x && ev.pos_x < x+w && ev.pos_y < y+h && ev.pos_y > y) + return true; + else + return false; +} + +bool Widget::select(event ev) +{ + if(hozzaer(ev) && ev.button==btn_left) + return true; + if(!hozzaer(ev) && ev.button==btn_left) + return false; +} diff --git a/widget.h b/widget.h new file mode 100644 index 0000000000000000000000000000000000000000..fedfd3a2c7ec70cc49f50504fdf18123f87052e8 --- /dev/null +++ b/widget.h @@ -0,0 +1,18 @@ +#ifndef WIDGET_H +#define WIDGET_H +#include "graphics.hpp" + +class Palya; + +class Widget{ +protected: + int x,y,w,h; + Palya* p; +public: + Widget(Palya* _p, int _x, int _y, int _w, int _h); + bool hozzaer(genv::event ev); + bool select(genv::event ev); + virtual void draw() = 0; +}; + +#endif