Select Git revision
mester.cpp 3.16 KiB
#include "mester.h"
#include "palya.h"
#include "palyamezo.h"
#include "player.h"
#include <vector>
#include <iostream>
using namespace genv;
Mester::Mester()
{
player1 = new Player("Player1", 1);
player2 = new Player("Player2", 2);
aktiv = player1;
}
void Mester::set_negyzetek(std::vector<Palyamezo*> v){
negyzetek = v;
}
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->get_filled() && !f->get_hovered()){
f->hovered_draw();
f->set_hovered();
}
if(!f->hozzaer(ev) && !f->get_filled() && f->get_hovered()){
f->draw();
f->reset_hovered();
}
if(f->select(ev) && !f->get_filled()){
f->occupy(aktiv->get_sorszam());
f->fillin();
PlayerChange();
}
}
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() {}