Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda ... bingo

Estas en el tema de Ayuda ... bingo en el foro de C/C++ en Foros del Web. Hola! Tengo un pequeño problema... tengo q hacer una funcion pero no consigo q me funcione correctamente.... no se me ocurre nada... espero que me ...
  #1 (permalink)  
Antiguo 05/11/2007, 06:29
 
Fecha de Ingreso: noviembre-2007
Mensajes: 26
Antigüedad: 17 años, 2 meses
Puntos: 0
Exclamación Ayuda ... bingo

Hola!

Tengo un pequeño problema... tengo q hacer una funcion pero no consigo q me funcione correctamente.... no se me ocurre nada... espero que me podais ayudar...

Os copio el enunciado y el codigo que yo he hecho, a ver si me podeis ayudar a encontrar los errores y como corregirlos.

Gracias.

------------------------------------------------------------------------------------------------------------

Implementar una funci´on que rellene un cart´on con los valores iniciales
que contiene. Inicialmente todas las posiciones del cart´on estar´an
vac´ıas. Los 15 valores que contiene y las posiciones que ocupan se generar
´an aleatoriamente usando el siguiente algoritmo.
En primer lugar se generar´a aleatoriamente un n´umero para cada una
de las 9 columnas. La fila en la que se ubicar´a cada uno de estos valores
se generar´a tambi´en aleatoriamente.
A continuaci´on se generar´an aleatoriamente los n´umeros restantes hasta
completar los 5 de cada fila. La columna ocupada por cada uno de ellos
vendr´a dada por su valor.
Para generar los valores aleatorios se utilizar´a la funci´on rand.

Mi CODIGO

void RellenarCarton(Tcarton &carton){
int fila, valor, col=0, cont=0;
int cuantas[FILAS]; //Llevara la cuenta de cuantos valores llevamos en la fila

//Incializamos cuantas a 0
for(int i=0; i<FILAS; i++)
cuantas[i]=0;

//Inicialmente todas las posiciones del carton están vacías
for(int i=0; i<FILAS; i++)
for(int j=0; j<COLUMNAS; j++)
carton.carton[i][j]=V;

//Añadimos un primer elemento a cada columna
while(col<COLUMNAS){
fila=rand()%3;
//Para cada fila elegida al azar comprobamos que no hayan ya 5 elementos.
cont=0;
if(col>=MAXFILAS)
for(int i=0; i<col; i++)
if(carton.carton[fila][i]!=V)
cont++;
if(cont<MAXFILAS){
valor=rand()%10;
carton.carton[fila]=valor+col*10;
cuantas[fila]++;
}
}

while(col<COLUMNAS){
fila=rand()%3;
// Contamos cuantos valores hay en la fila
//Incializamos cont=0 para que pueda empezar desde 0 cada vez que compruebe el numero de elementos en una fila
cont=0;
if(col>=MAXFILAS)
for(int j=0; j<col; j++){
if(carton.carton[fila][j]!=V)
cont++;
else if(cont>=MAXFILAS)
break;
}

//Comprobamos que no haya otro valor en esa posicion y que no llegamos al maximo
if(carton.carton[fila][col]==V && cont<MAXFILAS){
valor=rand()%10;
carton.carton[fila]=valor+col*10;
cuantas[fila]++;
}
}
col++;
}
  #2 (permalink)  
Antiguo 05/11/2007, 12:08
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 8 meses
Puntos: 17
Re: Ayuda ... bingo

¿Dónde está el código completo?
¿Qué es Tcarton?
¿...?
  #3 (permalink)  
Antiguo 05/11/2007, 16:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 26
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Ayuda ... bingo

Perdon.... se me olvido poner las estructuras.....

Aqui estan...




#include<iostream>
#include<iomanip>

using namespace std;

const int N=3;
const int VALORES=90;
const int COLUMNAS=9;
const int FILAS=3;
const int MAXFILAS=5;
const int V=-1; //Posición vacía del carton.
const int X=-2; //Posición marcada del carton.

/* ESTRUCTURA */
typedef bool Tgenerados[VALORES];

struct Tcarton{
int carton[FILAS][COLUMNAS];
int quedan;
};

struct Tjuego{
Tgenerados bingo;
Tcarton cartones[N];
};
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:00.