Viernes 8 de Noviembre de 2024, 21:41
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: Un Jueguito
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Re: Un Jueguito (Leído 3988 veces)
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
en:
Martes 6 de Diciembre de 2005, 22:13 »
0
UNA MATRIZ 3*3, donde apararece una imagen aleatoria del codigo ASCII (MOLE), en lapsos de un cuadro a la vez, donde el usuario debera presionar la tecla (perteneciente al teclado numerico correspondiente al cuadro donde aparece el presonaje. Cuando el usuario presione una teclar no correspondiente a la ubicacin aparecera una equis(X) y cuado presione una tecla a la ubicación de la imagen se sumara un contador en uno, ademas debera ejecutar un sonido, el nivel superado llegue a 20 (20 atrapadas). el programa debe tener 3 niveles de complejidad donde las diferiencias entre ellos radiquen en el tiempo que aparece la mole (mas rapido)...el usuario perdera la jugada en el momento que acumule 10 pases que no haya aplastado la imagen..
ustedes tienen una idea como realizar esooooooooooooo
Tweet
pitukilloloco
Miembro MUY activo
Mensajes: 104
Re: Un Jueguito
«
Respuesta #1 en:
Martes 6 de Diciembre de 2005, 23:37 »
0
¿cual compilador usas?
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
Respuesta #2 en:
Miércoles 7 de Diciembre de 2005, 00:49 »
0
Cita de: "pitukilloloco"
¿cual compilador usas?
EN EN C++...
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
Respuesta #3 en:
Miércoles 7 de Diciembre de 2005, 00:54 »
0
ES EL TURBO C++ OH EN C++
pitukilloloco
Miembro MUY activo
Mensajes: 104
Re: Un Jueguito
«
Respuesta #4 en:
Miércoles 7 de Diciembre de 2005, 01:43 »
0
bueno, más bien la pregunta sería si tu tienes alguna idea de cómo hacerlo puesto que eres tú quien lo va a hacer, y sobre esa idea podemos opinar qué tan factible es. A "bote pronto" se me ocurre que tienes que hacer un ciclo esperando la respuesta del usuario mientras pintas y despintas la MOLE. Para controlar el tiempo puedes usas las funciones declaradas en el encabezado
<time.h>
, para el sonido puedes mandar a escribir el caracter '\a' el cual provoca que se oiga un sonido pero cómo se oiga es dependiente de la pc en la cual se ejecute el programa. Necesitas hacer una función que te pinte el tablero del juego, otra que que te pinte y te quite la MOLE y declarar variables para llevar la cuenta del nivel del juego y de las atrapadas y erradas. Bien, habiendo dicho esto ¿tienes alguna idea de como implementar esto en C (o C++)? ¿tienes otra idea de cómo hacerlo?
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
Respuesta #5 en:
Miércoles 7 de Diciembre de 2005, 03:21 »
0
SI...TENGO UNA IDEA..Y TENGO ALGO HECHO PERO NO SE POR QUE NO ME CORRE BIEN...HAY ALGO MALO..YNO SE QUE ES...
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
int win=0, error=0;
void pantalla();
int aleatorio();
void correr(int [3][3],int);
void jugar(int);
void main()
{
int salir=1,tiempo=1700,mole,matriz[3][3] = {7,8,9,4,5,6,1,2,3};
while(salir!=0)
{
textbackground(BLUE);
randomize();
clrscr();
pantalla();
delay(200);
mole=aleatorio();
correr(matriz,mole);
jugar(mole);
if(win == 10)
{
tiempo-=300;
error=0;
}
delay(tiempo);
if(error == 10)
{
clrscr();
gotoxy(10,8);
printf("Usted a perdido, suerte en la proxima.");
delay(3000);
abort(); //*****************esto es para salir de un solo************
//salir=0;
}
if(win == 10 || win == 20 || win == 30)
{
clrscr();
gotoxy(10,8);
printf("A superado este nivel.");
if(win != 30)
delay(2000);
}
if(win == 30)
{
gotoxy(10,6);
printf("You are the winner.");
delay(3000);
abort(); //salir=o;
}
}
}
void pantalla()
{ // ÁÂÃÄÅÆÇ ¶·¸¹º»¼½¾¿´ª®¯°±²³µ©ÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß
textcolor(RED);
gotoxy(18,2);
cprintf("LA MOLE");
gotoxy(15,5);
cprintf("ÉÍÍÍËÍÍÍËÍÍÍ»");
gotoxy(15,6);
cprintf("º º º º");
gotoxy(15,7);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(15,8);
cprintf("º º º º");
gotoxy(15,9);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(15,10);
cprintf("º º º º");
gotoxy(15,11);
cprintf("ÈÍÍÍÊÍÍÍÊÍÍͼ");
}
int aleatorio()
{
int num=0;
num = random(9)+1;
return num;
}
void correr(int mat[3][3],int cara)
{
int i,j,x=17,y=6;
textcolor(YELLOW);
gotoxy(35,18);
cprintf("%d",cara);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(mat
[j] == cara)
{
gotoxy(x,y);
cprintf("");
}
x+=4;
}
y+=2;
x=17;
}
}
void jugar(int cara)
{
int op=0;
gotoxy(35,14);
printf("Aciertos: ");
gotoxy(35,16);
printf("Fallos: ");
gotoxy(35,18);
printf("Digite su opcion: ");
op=getche();
op-=48;
if(op == cara)
{
win+=1;
}
else
{
error+=1;
}
gotoxy(45,14);
printf("%d",win);
gotoxy(43,16);
printf("%d",error);
pitukilloloco
Miembro MUY activo
Mensajes: 104
Re: Un Jueguito
«
Respuesta #6 en:
Miércoles 7 de Diciembre de 2005, 03:41 »
0
¿puedes poner el código entre las etiqueta [ CODE ] y [ /CODE ] (sin los espacios), para poder revisarlo mejor?
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
Respuesta #7 en:
Miércoles 7 de Diciembre de 2005, 09:33 »
0
sorry.... como hago eso....
eso es para que...bueno que talvez lo puedas correr
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
pitukilloloco
Miembro MUY activo
Mensajes: 104
Re: Un Jueguito
«
Respuesta #8 en:
Miércoles 7 de Diciembre de 2005, 11:34 »
0
Cuando estás redactando una respuesta te aparecen varios botones pequeños arriba de donde estás escribiendo; comienzan con una B en negritas, seguida de una I, una U, etc. Hay uno de esos botones que dice CODE, al presionarlo te escribe en donde está el cursor esto [ CODE ] y si lo vuelves a presionar te escribe esto [ /CODE ] (aquí le estoy poniendo espacios entre los paréntesis cuadrados para que se vea y no me lo formatee), de tal forma que, por ejemplo una de las funciones que escribiste quedarían así
Código: Text
int aleatorio()
{
int num=0;
num = random(9)+1;
return num;
}
aunque aquí yo le puse las identaciones en las instrucciones que están entre las llaves. Deberías de ponerlas en tu código para poder revisarlo más fácilmente
pitukilloloco
Miembro MUY activo
Mensajes: 104
Re: Un Jueguito
«
Respuesta #9 en:
Miércoles 7 de Diciembre de 2005, 11:37 »
0
por cierto ¿por qué adjuntaste el archivo KBHIT.DLL en tu último "post"?
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
Respuesta #10 en:
Miércoles 7 de Diciembre de 2005, 12:39 »
0
Asi, es como lo quieres...(la verdad no te he entendido..aun..con eso de CODE...
)
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
int win=0, error=0;
void pantalla();
int aleatorio();
void correr(int [3][3],int);
void jugar(int);
void main()
{
int salir=1,tiempo=1700,mole,matriz[3][3] = {7,8,9,4,5,6,1,2,3};
while(salir!=0)
{
textbackground(BLUE);
randomize();
clrscr();
pantalla();
delay(200);
mole=aleatorio();
correr(matriz,mole);
jugar(mole);
if(win == 10)
{
tiempo-=300;
error=0;
}
delay(tiempo);
if(error == 10)
{
clrscr();
gotoxy(10,8);
printf("Usted a perdido, suerte en la proxima.");
delay(3000);
abort(); //*****************esto es para salir de un solo************
//salir=0;
}
if(win == 10 || win == 20 || win == 30)
{
clrscr();
gotoxy(10,8);
printf("A superado este nivel.");
if(win != 30)
delay(2000);
}
if(win == 30)
{
gotoxy(10,6);
printf("You are the winner.");
delay(3000);
abort(); //salir=o;
}
}
}
void pantalla()
{
textcolor(RED);
gotoxy(18,2);
cprintf("LA MOLE");
gotoxy(15,5);
cprintf("ÉÍÍÍËÍÍÍËÍÍÍ»");
gotoxy(15,6);
cprintf("º º º º");
gotoxy(15,7);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(15,8);
cprintf("º º º º");
gotoxy(15,9);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(15,10);
cprintf("º º º º");
gotoxy(15,11);
cprintf("ÈÍÍÍÊÍÍÍÊÍÍͼ");
}
int aleatorio()
{
int num=0;
num = random(9)+1;
return num;
}
void correr(int mat[3][3],int cara)
{
int i,j,x=17,y=6;
textcolor(YELLOW);
gotoxy(35,18);
cprintf("%d",cara);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(mat
[j] == cara)
{
gotoxy(x,y);
cprintf("");
}
x+=4;
}
y+=2;
x=17;
}
}
void jugar(int cara)
{
int op=0;
gotoxy(35,14);
printf("Aciertos: ");
gotoxy(35,16);
printf("Fallos: ");
gotoxy(35,18);
printf("Digite su opcion: ");
op=getche();
op-=48;
if(op == cara)
{
win+=1;
}
else
{
error+=1;
}
gotoxy(45,14);
printf("%d",win);
gotoxy(43,16);
printf("%d",error);
}
pitukilloloco
Miembro MUY activo
Mensajes: 104
Re: Un Jueguito
«
Respuesta #11 en:
Jueves 8 de Diciembre de 2005, 01:56 »
0
compilé tu ejemplo sin errores y lo probé varias veces ¿cuáles son los errores que mencionas?
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
Respuesta #12 en:
Viernes 9 de Diciembre de 2005, 02:27 »
0
EL PROGRAMA CORRE BIEN..SI TU VEZ EL PRIMER MENSAJE, DICE COMO DEBERIA TRABAJAR EL PROGRAMA..... Y UNO DE LOS FALLOS QUE TIENE ES QUE NO CORRE LA CARITA.. SINO QUE HAY QUE ESTAR APRETANDO DONDE ESTA...Y ESA NO ES LA IDEA SINO QUE TIENE QUE, CORRER Y CONFORME VAYA SALIENDO YO IR PRESIONANDO DONDE VA... Y ESO NO LO HACE ASI... Y TAMBIEN LO DE LA X QUE TIENE QUE APARECER...
pitukilloloco
Miembro MUY activo
Mensajes: 104
Re: Un Jueguito
«
Respuesta #13 en:
Viernes 9 de Diciembre de 2005, 05:01 »
0
El programa se detiene porque estás usando la función
getche
, la cual detiene la ejecución del programa hasta que presionas una tecla. Si quieres que esto no suceda puedes usar la función
kbhit
, declarada en el archivo de cabecera
<conio.h>
, al igual que la función
getche
. La función
kbhit
regresa un valor de verdadero si se presionó una tecla y falso en caso contrario, pero no retira el caracter presionado del buffer interno del teclado que guarda el sistema, por lo que tienes que llamar después a una función que lo retire como
getche
o
getch
.
Por otra parte, no es conveniente usar la función
delay
, ya que en el lapso que le des estás incapacitada de responder a los eventos del teclado. Para esto es mejor usar la función
time
que regresa la hora del sistema y la función
difftime
que regresa el tiempo transcurrido en segundos entre dos tiempos.
Te muestro un ejemplo sencillo que aclara su uso. Con las ideas aquí expuestas puedes terminar tu programa.
Código: Text
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <time.h>
int main ()
{
char ch;
time_t timer1, timer2;
double segundos_transcurridos = 1.0;
clrscr ();
time (&timer1);
gotoxy (1, 1);
printf ("Presiona la letra 'q' para salir...");
gotoxy (1, 10);
printf ("Digito presionado:");
gotoxy (1, 20);
printf ("Segundos transcurridos:");
while (1) {
if (kbhit ())
if ((ch = getch ()) == 'q')
break;
else if (isdigit (ch)) {
gotoxy (19, 10);
printf ("%c", ch);
}
if (difftime (time (&timer2), timer1) > segundos_transcurridos) {
gotoxy (25, 20);
printf ("%2.g", segundos_transcurridos);
segundos_transcurridos++;
}
}
return EXIT_SUCCESS;
}
PAU_LA_YER
Nuevo Miembro
Mensajes: 13
Re: Un Jueguito
«
Respuesta #14 en:
Viernes 9 de Diciembre de 2005, 23:32 »
0
muchas gracias por tu ayuda...
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: Un Jueguito