SoloCodigo
		Programación General => C/C++ => Mensaje iniciado por: hanamichi en Sábado  7 de Julio de 2007, 02:15
		
			
			- 
				necesito ayuda con mi codigo para q tenga un efecto de marquesina , el programa solo mueve el texto pero al llegar a las esquinas se salta de linea y nose como arreglarlo. 
********************************* 
#include <stdio.h> 
#include <conio.h> 
#include <string.h> 
#include <dos.h> 
#include <bios.h> 
#define ESC 0x11b 
int opcion,indice,espacio1,largo; 
char arreglo[5][80]; 
int letra[5][5][5]= 
{{{0,1,1,1,0},{1,0,0,0,1},{1,1,1,1,1},{1,0,0,0,1},{1,0,0,0,1}}, //A 
{{1,0,0,0,1},{1,0,0,0,1},{1,1,1,1,1},{1,0,0,0,1},{1,0,0,0,1}}, //H 
{{1,0,0,0,0},{1,0,0,0,0},{1,0,0,0,0},{1,0,0,0,0},{1,1,1,1,1}}, //L 
{{1,1,1,1,1},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{1,1,1,1,1}}}; //O 
char abc[5]={'a','h','l','o'}; 
// FUNCIONES 
void tam1(int esp, int ind); 
void busca(char frase1[]); 
void markesina( char frase[5][80]); 
//****************************** 
int main() 
{ 
char frase[5]={'h','o','l','a'}; 
textcolor(GREEN); 
largo=strlen(frase); 
busca(frase); 
markesina(arreglo); 
return 0; 
} 
void busca(char frase1[]) 
{ 
espacio1=0; 
int conta1=0,conta2=0; 
for(conta1=0;conta1<=largo ;conta1++) 
{ espacio1=espacio1+6; 
for( conta2=0;conta2 < 5;conta2++) 
{ 
if (frase1[conta1] == abc[conta2]) 
{ indice=conta2; 
tam1(espacio1,indice); } 
} 
} 
} 
void tam1(int esp,int ind) // aka lo guardo en un arreglo 
{ 
int fil,col,i,j; 
for ( fil=0, i=5; i <=9; i++,fil++ ) 
{ 
for ( col=0,j=5; j <=9; j++,col++ ) 
{ 
if (letra[ind][fil][col] == 0) 
{ arreglo[fil][col+esp-6]=' '; } 
else 
{ arreglo[fil][col+esp-6]='*'; } 
} 
} 
} 
void markesina( char frase[5][80]) 
{ 
int xz=0,dr=0; 
int a=79; 
int tecla=0; 
clrscr(); 
do 
{ if(kbhit()) 
{ tecla=bioskey(0); 
} 
for (xz=0;xz<=4;xz++) 
{ 
for (dr=0;dr<=79;dr++) 
{ 
gotoxy(a+dr,xz+5); cprintf("%c", frase[xz][dr]); 
} 
} 
delay(150); 
a--; 
if(a==1) {a=79; clrscr();} 
} 
while(tecla != ESC); 
}