<commit_before>//
// Leinad
//
// description: School project for OOP (Object Oriented Programming)
// author: <NAME>
// url: https://github.com/joselisboa/leinad
//
#ifndef LEINAD_H
#define LEINAD_H
#include <vector>
#include "c:\\htdocs\\ze\\ze.h"
#include "jogador.h"
#include "grelha.h"
#include "caixa.h"

using namespace std;

// Leinad
//-------
class Leinad
{
private:
    // dimenso da consola
    COORD _screen;

    // caixas (elementos estticos)
    Caixas *_caixas = nullptr;

    // dimenso do mapa
    COORD _map;

    // offset da grelha no mapa
    COORD _M;

    // grelha do mapa
    Grelha *_grelha;

    // painel de pontuao
    Grelha *_painel;

    // barra de informao
    Grelha *_barra;

    // funes ajudantes
    void _draw(CHAR_INFO, COORD);
    void _info(COORD c);
    void info(string);
    bool _colision(COORD pos, char = '#');

    //TESTE
    Jogador dummie;

public:
    BOOL menu();
    BOOL move();
    COORD M() { return _M; }
    Leinad &right(Jogador &);
    Leinad &left(Jogador &);
    Leinad &up(Jogador &);
    Leinad &down(Jogador &);
    Leinad &M(COORD M) { _M = M; return *this; }
    Leinad &caixas(Caixas *caixas) { _caixas = caixas, _map = _caixas->size(); return *this; }
    Leinad &drawPlayer(Jogador &, bool flag = true);
    Leinad &drawCaixa(Caixa &caixa);
    Leinad &init();
    Leinad &render(Jogador);

    Leinad(short, short, Grelha *);
    ~Leinad();

    //TODO mover para privado?
    Ze console;

    void _menu(COORD pos, WORD attr, string s)
    {
        console.cursorPosition(pos).textColor(attr);
        cout << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187 << endl;
        console.cursorPosition(COORD{ pos.X, ++pos.Y });
        cout << (char)186 << s << (char)186 << endl;
        console.cursorPosition(COORD{ pos.X, ++pos.Y });
        cout << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188 << endl;
    }
};

#endif
<commit_msg>Update Leinad<commit_after>//
// Leinad
//
// description: School project for OOP (Object Oriented Programming)
// author: <NAME>
// url: https://github.com/joselisboa/leinad
//
#ifndef LEINAD_H
#define LEINAD_H
#include <vector>
#include "ze.h"
#include "jogador.h"
#include "grelha.h"
#include "caixa.h"

using namespace std;

// Leinad
//-------
class Leinad
{
private:
    // dimenso da consola
    COORD _screen;

    // caixas (elementos estticos)
    Caixas *_caixas = nullptr;

    // dimenso do mapa
    COORD _map;

    // offset da grelha no mapa
    COORD _M;

    // grelha do mapa
    Grelha *_grelha;

    // painel de pontuao
    Grelha *_painel;

    // barra de informao
    Grelha *_barra;

    // funes ajudantes
    void _draw(CHAR_INFO, COORD);
    void _info(COORD c);
    void info(string);
    bool _colision(COORD pos, char = '#');

    //TESTE
    Jogador dummie;

public:
    BOOL menu();
    BOOL move();
    COORD M() { return _M; }
    Leinad &right(Jogador &);
    Leinad &left(Jogador &);
    Leinad &up(Jogador &);
    Leinad &down(Jogador &);
    Leinad &M(COORD M) { _M = M; return *this; }
    Leinad &caixas(Caixas *caixas) { _caixas = caixas, _map = _caixas->size(); return *this; }
    Leinad &drawPlayer(Jogador &, bool flag = true);
    Leinad &drawCaixa(Caixa &caixa);
    Leinad &init();
    Leinad &render(Jogador);

    Leinad(short, short, Grelha *);
    ~Leinad();

    //TODO mover para privado?
    Ze console;

    void _menu(COORD pos, WORD attr, string s)
    {
        console.cursorPosition(pos).textColor(attr);
        cout << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187 << endl;
        console.cursorPosition(COORD{ pos.X, ++pos.Y });
        cout << (char)186 << s << (char)186 << endl;
        console.cursorPosition(COORD{ pos.X, ++pos.Y });
        cout << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188 << endl;
    }
};

#endif

{'fraction_non_alphanumeric': 0.16476143141153082, 'fraction_numerical': 0.0268389662027833, 'mean_word_length': 2.71309963099631, 'pattern_counts': {'":': 0, '<': 95, '<?xml version=': 0, '>': 9, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5717902', 'n_tokens_mistral': 1660, 'n_tokens_neox': 1545, 'n_words': 371}