Skip to content
Snippets Groups Projects
Commit 4c62d9c3 authored by Papp Benjámin's avatar Papp Benjámin
Browse files

még nem pontosan ismeri fel a 5jelet egymás mellett, de már zavart, hogy régen volt commit

(debug version)
parent d4e929c4
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
#include "palya.h" #include "palya.h"
#include "palyamezo.h" #include "palyamezo.h"
#include "player.h" #include "player.h"
#include <vector>
#include <iostream>
using namespace genv; using namespace genv;
...@@ -12,6 +14,10 @@ Mester::Mester() ...@@ -12,6 +14,10 @@ Mester::Mester()
aktiv = player1; aktiv = player1;
} }
void Mester::set_negyzetek(std::vector<Palyamezo*> v){
negyzetek = v;
}
void Mester::PlayerChange(){ void Mester::PlayerChange(){
if(aktiv == player1) {aktiv = player2;} if(aktiv == player1) {aktiv = player2;}
else if(aktiv == player2) {aktiv = player1;} else if(aktiv == player2) {aktiv = player1;}
...@@ -33,6 +39,91 @@ void Mester::iranyitas(Palyamezo* f, event ev) { ...@@ -33,6 +39,91 @@ void Mester::iranyitas(Palyamezo* f, event ev) {
} }
} }
void Mester::szabalyzat() {} int Mester::atlo_vizsg(Palyamezo* f, int szam){
int streak = 1;
for(int i = 1; i<=4;){
if(negyzetek[szam-(i*20)]->occupied_by == f->occupied_by){
streak++;
if(szam-((i+1)*20) > 0)
i++;
} else {
i = 5;
}
}
for(int i = 1; i<=4;){
if(negyzetek[szam+(i*20)]->occupied_by == f->occupied_by){
streak++;
if(szam+((i+1)*20) < 381)
i++;
} else {
i = 5;
}
}
return streak;
}
int Mester::horizont_vizsg(Palyamezo* f, int szam){
int streak = 1;
for(int i = 1; i<=4;){
if(negyzetek[szam-(i*19)]->occupied_by == f->occupied_by){
streak++;
std::cout << "daaamn" << std::endl;
if(szam-((i+1)*19) > 0)
i++;
} else {
i = 5;
}
}
for(int i = 1; i<=4;){
if(negyzetek[szam+(i*19)]->occupied_by == f->occupied_by){
streak++;
if(szam+((i+1)*19) < 381)
i++;
} else {
i = 5;
}
}
return streak;
}
int Mester::vertic_vizsg(Palyamezo* f, int szam){
int streak = 1;
for(int i = 1; i<=4;){
if(negyzetek[szam-i]->occupied_by == f->occupied_by){
streak++;
if(szam-(i+1) > 0)
i++;
} else {
i = 5;
}
}
for(int i = 1; i<=4;){
if(negyzetek[szam+i]->occupied_by == f->occupied_by){
streak++;
if(szam+(i+1) < 381)
i++;
} else {
i = 5;
}
}
return streak;
}
bool Mester::streak_vizsgalo(Palyamezo* vizsgalt){
int vizsgalt_index = vizsgalt->index;
if(atlo_vizsg(vizsgalt, vizsgalt_index) >= 5 || horizont_vizsg(vizsgalt, vizsgalt_index) >= 5 || vertic_vizsg(vizsgalt, vizsgalt_index) >= 5){
return true;
std::cout << "daaamn" << std::endl;}
else {
return false;
std::cout << "not really" << std::endl;}
}
void Mester::szabalyzat(Palyamezo* f){
streak_vizsgalo(f);
//if(streak_vizsgalo())
//aktiv->pontszam_novelo();
}
Mester::~Mester() {} Mester::~Mester() {}
...@@ -14,9 +14,14 @@ class Mester ...@@ -14,9 +14,14 @@ class Mester
std::vector<Palyamezo*> negyzetek; std::vector<Palyamezo*> negyzetek;
public: public:
Mester(); Mester();
void set_negyzetek(std::vector<Palyamezo*> v);
void iranyitas(Palyamezo* f, genv::event ev); void iranyitas(Palyamezo* f, genv::event ev);
void PlayerChange(); void PlayerChange();
void szabalyzat(); int atlo_vizsg(Palyamezo* f, int szam);
int horizont_vizsg(Palyamezo* f, int szam);
int vertic_vizsg(Palyamezo* f, int szam);
bool streak_vizsgalo(Palyamezo* f);
void szabalyzat(Palyamezo* f);
~Mester(); ~Mester();
}; };
......
...@@ -11,7 +11,7 @@ Palya::Palya() ...@@ -11,7 +11,7 @@ Palya::Palya()
gout.open(XX,YY); gout.open(XX,YY);
for(int i = 0; i<20; i++){ for(int i = 0; i<20; i++){
for(int j = 0; j<20; j++){ for(int j = 0; j<20; j++){
Palyamezo* negyzet = new Palyamezo(this, 100+(i*40), 100+(j*40), 40, 40, i, j); Palyamezo* negyzet = new Palyamezo(this, 100+(i*40), 100+(j*40), 40, 40, (19*i)+j);
palyaterulet.push_back(negyzet); palyaterulet.push_back(negyzet);
negyzet->draw(); negyzet->draw();
} }
...@@ -20,8 +20,12 @@ Palya::Palya() ...@@ -20,8 +20,12 @@ Palya::Palya()
} }
void Palya::jatek(event ev){ void Palya::jatek(event ev){
for(Palyamezo* negyzet : palyaterulet) mesztor->set_negyzetek(palyaterulet);
for(Palyamezo* negyzet : palyaterulet){
mesztor->iranyitas(negyzet, ev); mesztor->iranyitas(negyzet, ev);
if(negyzet->select(ev))
mesztor->szabalyzat(negyzet);
}
} }
Palya::~Palya() {} Palya::~Palya() {}
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
using namespace genv; using namespace genv;
Palyamezo::Palyamezo(Palya* _p, int _x, int _y, int _w, int _h, int _m, int _n) : Palyamezo::Palyamezo(Palya* _p, int _x, int _y, int _w, int _h, int _i) :
Widget(_p, _x, _y, _w, _h), index_m(_m), index_n(_n) {} Widget(_p, _x, _y, _w, _h), index(_i) {}
void Palyamezo::draw(){ void Palyamezo::draw(){
int t = 255; int t = 255;
......
...@@ -6,11 +6,10 @@ class Palyamezo : public Widget ...@@ -6,11 +6,10 @@ class Palyamezo : public Widget
{ {
bool filled = false; bool filled = false;
bool hovered = false; bool hovered = false;
int occupied_by = 0;
public: public:
int index_m; int occupied_by = 0;
int index_n; int index;
Palyamezo(Palya* _p, int _x, int _y, int _w, int _h, int _m, int _n); Palyamezo(Palya* _p, int _x, int _y, int _w, int _h, int _i);
~Palyamezo(); ~Palyamezo();
void draw() override; void draw() override;
void hovered_draw(); void hovered_draw();
......
...@@ -8,6 +8,8 @@ string Player::get_name() {return name;} ...@@ -8,6 +8,8 @@ string Player::get_name() {return name;}
int Player::get_pontszam() {return pontszam;} int Player::get_pontszam() {return pontszam;}
void Player::pontszam_novelo() {pontszam++;}
int Player::get_sorszam() {return sorszam;} int Player::get_sorszam() {return sorszam;}
Player::~Player() {} Player::~Player() {}
...@@ -11,6 +11,7 @@ public: ...@@ -11,6 +11,7 @@ public:
Player(std::string _nev, int _sorszam); Player(std::string _nev, int _sorszam);
std::string get_name(); std::string get_name();
int get_pontszam(); int get_pontszam();
void pontszam_novelo();
int get_sorszam(); int get_sorszam();
~Player(); ~Player();
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment