Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

#ifndef CARACTERE_H_INCLUDED

#define CARACTERE_H_INCLUDED

#include <string>
#include <vector>
#include <windows.h>
using namespace std;

const int height = 5;


const int spatii = 30;
const int frameL = 50;

class litera
{
vector<string> l;

public:
litera(){}

litera(const vector<string> &_l)


{
l.resize(height);
for(int i=0;i<height;i++)
l[i] = _l[i];
}

litera(const litera &_l)


{
l.resize(height);
for(int i=0;i<height;i++)
l[i] = _l.l[i];
}

bool empty()
{
return l[0].length() == 0;
}

cls()
{
//for(int i=0;i<10;i++)
// cout<<"\n\n\n\n\n\n\n\n\n\n";

//cout<<"\0";

//clrscr();
}

display(const int _spatii = spatii, const int _frameL = frameL)


{
litera banner = (sp * _spatii) + (*this);

while(!banner.empty())
{
system("cls");
//cls();
cout<<banner;

Sleep(_frameL);
--banner;
}
}

litera operator+(const litera &_l)


{
litera rez = *this;
for(int i=0;i<height;i++)
rez.l[i] += _l.l[i];
return rez;
}

friend litera operator*(const litera &l, const int x)


{
litera rez = l;
for(int i=0;i<height;i++)
for(int j=1;j<x;j++)
rez.l[i] += l.l[i];
return rez;
}

friend ostream &operator<<(ostream &out, const litera &l)


{
for(string s : l.l)
out<<s<<'\n';
return out;
}

litera& operator--()
{
for(int i=0;i<height;i++)
this->l[i].erase(0,1);
return *this;
}

static litera sp;


static litera H;
static litera E;
static litera L;
static litera O;
static litera excl;
};

litera litera::sp = litera({


" ",
" ",
" ",
" ",
" "
});

litera litera::H = litera({


"* *",
"* *",
"******",
"* *",
"* *"
}) + sp;
litera litera::E = litera({
"******",
"* ",
"******",
"* ",
"******"
}) + sp;
litera litera::L = litera({
"* ",
"* ",
"* ",
"* ",
"******"
}) + sp;
litera litera::O = litera({
" **** ",
"* *",
"* *",
"* *",
" **** "
}) + sp;
litera litera::excl = litera({
" * ",
" * ",
" * ",
" ",
" * "
}) + sp;

#endif // CARACTERE_H_INCLUDED

You might also like