#include <iostream>
#include <conio.h>
#include <stdlib.h> // libreria para la función rand()
#include <time.h> //libreria para que genere números aleatorios a partir del reloj
#include <windows.h> //libreria para usar la función Sleep
using namespace std; // quitar esta linea en Tc++
main(){int n,i,j,x=0,y=0,k;
char c,opc='u', opc2;
cout<<"Ingrese caracter: ";
cin>>c;
do{
cout<<"Ingrese dimensiones (5-25): ";
cin>>n;
}while(n<5 || n>25);
srand(time(0)); //inicializando la semilla para la función rand()
do{
system("cls"); //limpiado de pantalla
for(j=0;j<x;j++)
cout<<endl;
for(j=0;j<n;j++){
for(i=0;i<y;i++)
cout<<" ";
for(i=0;i<n;i++){
if(j==0 || i==0 || j==n-1 || i==n-1|| i==j+n/2|| i==j-n/2||j==n/2-i || j==3*n/2-1-i || j==n/2 && i==n/2)
cout<<c;
else cout<<" ";}
cout<<endl;
}
//condiciones para volver al menú o presentarlo por primera vez
if(opc=='u' || opc=='b'&& k==15 || opc=='a' && opc2=='x'){
k=0;
opc2='u';
cout<<" *Menu*\n a)Para mover figura manualmente\n b)Para que la figura se mueva aleatoriamente \n z)salir \n Opcion: ";
cin>>opc;
}
if(opc=='a'){
if (opc2=='u')
cout<<"Para mover figura presione(w/s/a/d/) x (para volver al menu anterior)";
opc2=getch();
switch(opc2){
case 'w': x--;break;
case 's': if(x<24-n)x++;break;
case 'a': y--;break;
case 'd': if(y<79-n)y++;break;
case 'x': break;
}
}
if(opc=='b'){
k++;
y=1+rand()%(78-n);
x=1+rand()%(25);
Sleep(600); //pausa de 600 milisegundos
}
if(opc!='a' && opc!='b' && opc!='z')
opc='u';
}while(opc!='z');
}
Captura de Ejecución:
Programa compilado en Dev-c++, hacer las respectivas modificaciones para los que trabajan con TC++.
Att: LordRamos
Interesante aporte, te felicito :D
ResponderEliminarseria posible ke no tubiera dimeciones? osea que fuera un solo caracter?
ResponderEliminarme marca errores
ResponderEliminarMe sale error en srand time
ResponderEliminarBuen aporte. Gracias. Funciona al 100 %
ResponderEliminarMuy bueno :'D
ResponderEliminarme funciono muy bien
ResponderEliminar