Como hago el programa numeros cayendo???

usagi
24 de Septiembre del 2003
Hola quisiera ver si alguien podria decirme o darme el codigo fuente del juego numeros cayendo es para evaluacion y no tengo ni idea de que hacer por que no se generar numeros aletorios ni usar el delay ni tengo las librerias alguien podria ayudarme?

Tavo
24 de Septiembre del 2003
Mira puedo ayudarte, pero en c++...
ademas, me hace falta, un proceso, como hacer que reciba el numero desde el teclado, pero que no espere por el......

no se si me entiendes, si quieres, te puedo ayudar hasta donde sé....

o.k.?

Tavo

ana
24 de Septiembre del 2003
si me dieras el enunciado o te explicaras mejor podria ayudarte.
Random es una funcion que genera numeros aleatorios.
Para poder usar random debes incluir :
#include<time.h>
#include<stdlib.h>
y tambien debes poner antes de usar random la funcion randomize();
y bueno decirte que random genera numeros aleatorios de 0 al num-1 que tu le pongas.
por ejemplo: si pongo random(50); me genera numeros del 0 al 49.
y bueno si me dices de que va el ejercicio exactamente podre ayudarte.
un saludo

TAVO
24 de Septiembre del 2003
prueba con este programilla....

*/numeros cayendo*/
*/Compilado por Gustavo A. Bolaños Cruz 15/04/2000*/

#include <conio.c>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>

/*variables*/
int numero=0;
clock_t tiempo1,tiempo2;
int nume,espa;
int marcador;
int malas;
int cont=0;
int band=0;
int buenas=0;
int op=0;

typedef struct m
{
char nombre [15];
int resul;
int pos;
} mar;

/*funciones*/
void inicializa_aleatorios(void);
int aleatorio(int max);
void scores (void);
int titulo (int);
void juego (void);
void graba (int);

main()
{
if(op!=3)
{
buenas=0;
marcador=0;
malas=0;
op=titulo(op);
if (op==1)
juego();
else
if (op==2)
scores();
else
return 0;
}
else
return 0;
}


void inicializa_aleatorios()
{
srand( (unsigned)time( NULL ) );
}

int aleatorio(int max)
{
int ale;
ale = (rand())%max;
return ale;
}


void scores ()
{


mar marca;
FILE* reco;
int i,j=1,k=0,co=0,l=1;

if ((reco=fopen ("RECORDS.DAT","a+"))==NULL)
{
clrscr();
printf("nnnnnnnnnnn El archivo que contiene los "
" marcadores no puede ser abierto.");
fflush (stdin);
getch();
}
else
{
clrscr();
printf ( " Top 10");
printf ("nn Posicion Nombre Puntaje");
i=0;
while(j<=10)
{
fseek (reco,i*sizeof(mar),SEEK_SET);
fread (&marca,sizeof(mar),1,reco);
if (marca.pos==j)
{
if (marca.pos<10)
printf ("nn %d ",marca.pos);
else
printf ("nn %d ",marca.pos);
co=0;
k=0;
while (marca.nombre[k]!='')
{
printf("%c",marca.nombre[k]);
k++;
co++;
}
while (co!=15)
{
printf(" ");
co++;
}

printf(" %d",marca.resul);

j++;
i=-1;
}

i++;
}
}
fflush(stdin);
getch();
main();

}

int titulo (int op)
{
int choise=0;
do
{
clrscr();
printf("nnnnnnnn"
"n **************************************"
"n * MENU *"
"n * Presione el numero de su interes: *"
"n * *"
"n * 1- Nuevo Juego *"
"n * 2- Marcadores mas altos *"
"n * 3- Salir *"
"n * TAVO *"
"n **************************************nn");
fflush(stdin);
choise=getch();
} while ((choise!=49)&&(choise!=50)&&(choise!=51));
switch (choise)
{
case 49:{
choise=1;
break;
}
case 50:{
choise=2;
break;
}
case 51:{
choise=3;
break;
}
}
return choise;
}

void juego(void)
{
int i=0,j=0,f=0,huy=0,e;
inicializa_aleatorios();
numero=aleatorio(9);
espa=aleatorio(75);
while (numero==0)
numero=aleatorio(9);
nume=0;
clrscr();
band=0;
cont=0;

while(i!=23)
{
cont+=1;
if (buenas==5)
{
clrscr();
printf("nnnnnnnnnnnnn NIVEL 2 a");
fflush(stdin);
getch();
buenas++;
}
if (buenas==25)
{
clrscr();
printf("nnnnnnnnnnnnn NIVEL 3 a");
fflush(stdin);
getch();
buenas++;
}
if (buenas==50)
{
clrscr();
printf("nnnnnnnnnnnnn NIVEL 4 a");
fflush(stdin);
getch();
buenas++;
}
if (buenas==100)
{
clrscr();
printf("nnnnnnnnnnnnn NIVEL 5 a");
fflush(stdin);
getch();
buenas++;
}
clrscr();

printf( " MARCADOR: %d",marcador);
printf("n Nivel: ");

if (buenas<5)
printf("1");
else
if(buenas<25)
printf("2");
else
if(buenas<50)
printf ("3");
else
printf ("4");

while ((f!=23)&&(f!=cont))
{
printf ("n");
f++;
}
f=0;
while(f!=espa)
{
printf(" ");
f++;
}
f=0;
if (huy!=1)
printf("%d",numero);
i++;
if (buenas<5)
tiempo2=clock()+80;
else
if (buenas<25)
tiempo2=clock()+60;
else
if (buenas<50)
tiempo2=clock()+40;
else
if (buenas<100)
tiempo2=clock()+20;
else
tiempo2=clock();

if(kbhit())
{
nume=getch();
huy=1,i=22;
switch (nume)
{
case 49: {
nume=1;
break;
}
case 50: {
nume=2;
break;
}
case 51: {
nume=3;
break;
}
case 52: {
nume=4;
break;
}
case 53: {
nume=5;
break;
}
case 54: {
nume=6;
break;
}
case 55: {
nume=7;
break;
}
case 56: {
nume=8;
break;
}
case 57: {
nume=9;
break;
}
default: {
nume=0;
break;
}
}
}
while (tiempo1<tiempo2)
{
tiempo1=clock();

}

}

if (nume==numero)
{
marcador+=200;
band=1;
buenas++;
}
else
if (nume!=0)
{
clrscr();

printf( " MARCADOR: %d",marcador);
printf("n Nivel: ");
if (buenas<5)
printf("1");
else
if(buenas<25)
printf("2");
else
if(buenas<50)
printf ("3");
else
printf ("4");
for(e=0;e!=cont;e++)
{
printf("n");
}
for(e=0;e!=espa;e++)
{
printf(" ");
}
printf("a\/");
marcador-=300;
malas++;
}
else
if (nume==0)
{
clrscr();

printf( " MARCADOR: %d",marcador);
printf("n Nivel: ");
if (buenas<5)
printf("1");
else
if(buenas<25)
printf("2");
else
if(buenas<50)
printf ("3");
else
printf ("4");
printf("nnnnnnnnnnnnnnnnnnnnnnn");
for(e=0;e!=espa;e++)
{
printf(" ");
}
printf("a\/");
malas++;
marcador-=500;
}



if (malas>=2)
{
clrscr();
printf ("nnnnnn Game Overnnnnnnnn"
" Marcador final: %d",marcador);
fflush (stdin);
getch();
graba(marcador);
main();

}


else
{

juego();
}

}

void graba (int marcador)
{
FILE* reco;
mar mfinal={{''},0,0};
mar blanco={{''},0,0};
mar cade[9]={{''},0,0};

int k,j,i,ba=0,aux;
char nom[15]={' '};

if ((reco=fopen ("RECORDS.DAT","r+"))==NULL)
{
clrscr();
printf("nnnnnnnnnnn El archivo que contiene los "
" marcadores no puede ser abierto.");
fflush (stdin);
getch();
}
else
{
i=0;
aux=11;
for(i=0;i!=10;i++)
{
fread(&cade[i],sizeof(mar),1,reco);
if(cade[i].resul<marcador)
{
ba=1;
aux-=1;
cade[i].pos+=1;
}/*if*/

}/*for*/

if (ba==1)
{
clrscr();
printf("nn"
"n *************************"
"n * Felicidades. *"
"n *************************"
"n"
"n *************************"
"n * Acabas de entrar en *"
"n * el 'salon de la fama' *"
"n * de este juego *"
"n *************************"
"n"
"n *************************"
"n *Entras en la pocicion: *"
"n * ''* %d *'' *"
"n *************************",aux);
printf("nnnnnnn %d-) Cual es tu nombre: ",aux);
scanf("%s",&nom);
for(i=0;i<=15;i++)
{
mfinal.nombre[i]=nom[i];
}/*for*/
mfinal.pos=aux;
mfinal.resul=marcador;
i=0;
while(i!=10)
{
if (cade[i].pos==11)
{
cade[i]=blanco;
cade[i]=mfinal;
}/*if*/
i++;
}/*while*/
clrscr();
fclose(reco);

/*Desde aquí, regrabo los marcadores*/
if ((reco=fopen ("RECORDS.DAT","w"))==NULL)
{
clrscr();
printf("nnnnnnnnnnn El archivo que contiene los "
" marcadores no puede ser abierto.");
fflush (stdin);
getch();
}
else
{
j=1;
k=0;
for(i=0;i!=10;i++)
{
if(cade[i].pos==j)
{
fseek (reco,k*sizeof(mar),SEEK_SET);
fwrite (&cade[i],sizeof(mar),1,reco);
i=-1;
j++;
k++;
}
}/*for*/
}
}/*if entro*/
fclose(reco);
}/*1 else*/
scores();
}/*main*/


El programa tiene sus problemillas, pero la logica ahí se encuentra, y te puede ayudar mucho...

Otra cosa que debo decirte, es que tienes que crear el archivo RECORDS.dat, porque sin el el programa, al sacar los records se pega.....

Ahí, viend el programa algo entenderás....

Cualquier vara, me mandas un correo, y te explico, más o menos, lo que intentaba hacer....

BUENO BUENO.....