#include <iostream>
#include <string>
using namespace std;
string crearIntro(string escenariochar, string bordes, string bordesArriba, string bordesAbajo );
string anhadirTexto(string cadenaDelUsuario, string texto, int linea);
int main()
{
string mistring;
mistring = crearIntro("1", "|", "=", "_");
//cout << mistring; //Ejemplo de lo que hace.
mistring = crearIntro(" ", "|", "=", "_");
//cout << endl << mistring; //Ejemplo practico de funcion CrearIntro
mistring = anhadirTexto(mistring, "MI PROGRAMA DE CONSOLA!", 12);
//cout << endl << mistring; //Ejemplo practico de anhadirTexto
string textoDeMiprograma = "Pulsa enter para empezar. ";
mistring = anhadirTexto(mistring,textoDeMiprograma , 23);
textoDeMiprograma = " Sunday,June 09,2019";
mistring = anhadirTexto(mistring,textoDeMiprograma , 2);
cout << endl << mistring; //Ejemplo practico de anhadirTexto
cin.get();
return 0;
}
string crearIntro(string escenariochar, string bordes, string bordesArriba, string bordesAbajo)
{
string escenario;
static int contador = 0;
for ( int i = 0; i < 25; ++i )
{
for ( int j = 0; j < 80; ++j )
{
if(j == 79 || j == 0)
{
if(contador == 0 || contador == 1 || contador == 24)
{
if (contador == 0 || contador == 1)
{
escenario.append(bordesArriba);
}
else
{
escenario.append(bordesAbajo);
}
}
else
{
escenario.append(bordes);
}
}
else
{
if(contador == 0 || contador == 1 || contador == 24)
{
if (contador == 0 || contador == 1)
{
escenario.append(bordesArriba);
}
else
{
escenario.append(bordesAbajo);
}
}
else
{
escenario.append(escenariochar);
}
}
}
++contador;
}
contador = 0;
return escenario;
}
string anhadirTexto(string cadenaDelUsuario, string texto, int linea)
{
int tamanhocadena = cadenaDelUsuario.size();
int tamanhotexto = texto.size();
int mitadtamanhotexto = tamanhotexto/2;
int saltosDeLinea = linea;
string nuevaCadena = cadenaDelUsuario;
int diferenciaTexto;
int x = 80;
string vacio;
diferenciaTexto = x * linea;
diferenciaTexto -= -(40 - mitadtamanhotexto);
vacio.append(cadenaDelUsuario, 0, diferenciaTexto);
vacio.append(texto);
diferenciaTexto += tamanhotexto;
vacio.append(cadenaDelUsuario, diferenciaTexto, 2000);
return vacio;
}
/*
Ejemplo de llamada a crearIntro:
string mistring;
mistring = crearIntro("1", "|", "=", "_");
Primer parametro -> Llena la consola del caracter que le pongamos.
Segundo parametro -> Utiliza el caracter como borde.
Tercer parametro -> Utiliza el caracter como borde superior.
Cuarto parametro -> Utiliza el caracter como borde inferior.
En la llamada de arriba el resultado sera asi:
==================
==================
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
__________________
*/
/*
Ejemplo de llamada a anhadirTexto:
string mistring;
mistring = anhadirTexto(mistring, "HOLA!", 6);
Primer parametro -> El string que tenemos de la otra funcion.
Segundo parametro -> El texto que queremos anhadir.
Tercer parametro -> La linea en la cual queremos poner nuestro texto.
En este ejemplo cambiamos el "1" por un espacio " " o un espacio "\ ".
string mistring;
mistring = crearIntro(" ", "x", "A", "*");
mistring = anhadirTexto(mistring, "MI PROGRAMA!", 5);
En la llamada el resultado sera asi:
AAAAAAAAAAAAAAAAAA Linea 1
AAAAAAAAAAAAAAAAAA Linea 2
x x Linea 3
x x Linea 4
x MI PROGRAMA! x Linea 5
x x Linea 6
x x Linea 7
x x Linea 8
x x Linea 9
x x Linea 10
x x Linea 11
****************** Linea 12
*/