Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - People95

#1
Programación C/C++ / Problema contador en C
1 Marzo 2014, 18:17 PM
Buenas, tengo una matriz de 0 y 1, donde los 0 se convierten en "." y los 1 en "X", pues tengo que dejar caer una bola desde arriba y como si fuera un pinball ir rebotando simulando las X como obstaculos, algo así:



Pero no consigo aplicar el contador que vaya bajando, todo el rato me da error, alguien me puede ayudar?

Esto es lo que llevo:


#include <stdio.h>

void intercambia(int *a, int *b);
void dir(char c);

int main()
{
  int inicio,i,j,contador;
  char direccion;

  int matriu[10][10]={
  {0,0,0,0,0,0,0,0,0,0},
  {0,1,0,0,1,0,0,0,1,0},
  {0,1,0,1,0,0,0,1,0,0},
  {0,1,0,0,0,0,1,0,0,0},
  {0,0,0,0,0,0,0,0,0,1},
  {0,1,1,1,1,0,0,0,1,0},
  {0,0,0,0,0,0,0,1,0,0},
  {0,0,0,0,0,0,1,0,0,0},
  {0,0,0,0,0,1,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0},
  };

  do{
  printf("\nIntroducir el numero de columna por el cual desea lanzar la primera bola: ");
  scanf("%d",&inicio);
  }while(inicio>=9);

  do{
  printf("\nEn caso de encontrarse con un obstaculo, en que direccion quiere que se dirija la bola, derecha (D) o izquierda (I): ");
  fflush(stdin);
  scanf("%c", &direccion);
  }while(direccion!='D' && direccion!='d' && direccion!='I' && direccion!='i');
   
  inicio=matriu[0][inicio];

  contador=0;
  while(i++){
  contador +=1;
  }


  intercambia( &inicio, &contador);
 

  for(i=0;i<10;i++)
  {
     printf("\t");
        for(j=0;j<10;j++)
         {
          //if(matriu[j]==matriu[0][inicio])
          //  printf("%d ",contador);
            if(matriu[j]==1)
            printf("X ");
          if(matriu[j]==0)
                printf(". ");
         }
     printf("\n");
  }

  contador=0;
  while(i++){
    contador +=1;
  }
}

void intercambia(int *a,int *b){ //a será el valor de la matriz y b el valor del contador

  *a=*b;
}

void dir(char c){
   int j;
   char direccion;

  if(direccion!='D' && direccion!='d'){
    j+=1;
  }
  else
    j-=1;
}