codigo no imprime como deberia, ayuda!

Iniciado por balanis, 17 Abril 2012, 17:20 PM

0 Miembros y 1 Visitante están viendo este tema.

balanis


Saludos!

tengo un pequeño problema con el siguiente codigo, deberia imprimir una piramide segun el tamaño que de el usuario pero no mas grande al arreglo maximo; el objeto es simular una especie de pin ball donde el objeto cae entre los * dependiendo de un random;

he logrado que haga todo excepto imprimir el objeto donde debe, alguien ve el porque?

el .cpp esta aca: http://72.233.91.186/prog/piramide.rar

main pide el numero de filas y genera random, lo entrega a funcion pinta quien se encarga de validar y entregar las variables a fondo, quien construye el arreglo maximo, primero al llenar todo con espacios y luego asignando los * de la piramide; enseguida muestra la piramide hasta la fila que pidio el usuario, sin embargo no logro que imprima el objeto...



 



+0 -0


x64core


balanis

no encuentro como publicar el cpp aqui =/

balanis

include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <Windows.h>


using namespace std;



int random(int a, int b)
{
   return a+rand()%(b-a);
}


void fo(int t,int n)
{
   int re;
   re=0;

   char fondo[9][16], f, c, fi;
   
   /* crea toda la piramide con espacios */
   

   for(f=0;f<9;f++)
   {
      for(c=0;c<16;c++)
      {
         fondo[f][c]=' ';
      }
   }
   

   
   /* crea todos los * de la piramide */
   
   fondo[1][8]='*';
   fondo[8][15]='*';
   fondo[2][7]='*';
   fondo[2][9]='*';
   fondo[3][6]='*';
   fondo[3][8]='*';
   fondo[3][10]='*';
   fondo[4][5]='*';
   fondo[4][7]='*';
   fondo[4][9]='*';
   fondo[4][11]='*';
   fondo[5][4]='*';
   fondo[5][6]='*';
   fondo[5][8]='*';
   fondo[5][10]='*';
   fondo[5][12]='*';
   fondo[6][3]='*';
   fondo[6][5]='*';
   fondo[6][7]='*';
   fondo[6][9]='*';
   fondo[6][11]='*';
   fondo[6][13]='*';
   fondo[7][2]='*';
   fondo[7][4]='*';
   fondo[7][6]='*';
   fondo[7][8]='*';
   fondo[7][10]='*';
   fondo[7][12]='*';
   fondo[7][14]='*';
   fondo[8][1]='*';
   fondo[8][3]='*';
   fondo[8][5]='*';
   fondo[8][7]='*';
   fondo[8][9]='*';
   fondo[8][11]='*';
   fondo[8][13]='*';
   fondo[8][15]='*';
   
      /* establece donde va el objeto del juego */
   

   /*Pone en pantalla la piramide con tamaño seleccionado */
   for (fi=0;f<t+1;f++)
   {
   for(f=0;f<t+1;f++)
   {
      for(c=0;c<16;c++)
      {
         if (n%2==0)
         {
            fondo[f][c+1]='o';
         }
         else
         {
            fondo[f][c-1]='o';
         }

         cout<<fondo[f][c];
         
      }
      cout<<endl;   
   }
   }


}

/* entrega variables N y T a fo */
void pinta(int n, int t)
{
   
   
   if (t>8)
   {
      cout<<"superaste el limite, vuelve a intentarlo.";
   }
   else
   {
      fo(t,n);
   }
   
   
}


void main ()
{
   int t, x, y, tiempo, n, a, b, tamanio, r, d;

   x=0;
   a=0;
   cout<<"introduce un numero de filas entre 0 y 7 para definir la altura de tu piramide: ";
   cin>>t;
   
   
   while(x<t)
   {
      for(x=0; x<t; x++)
      {
         
            tiempo=time(NULL);
            srand(tiempo);
            n=random(a, t);
            pinta(n,t);
            
         
      }
   }
   


   getch();
   
}