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

[SOLUCIONADO] principiante en C, código limpio de errores

Estas en el tema de principiante en C, código limpio de errores en el foro de C/C++ en Foros del Web. Bien estoy usando el programa Xcode de apple. Gracias a usuarios de esta web pude terminar un juego (increíblemente sencillo) en C, en el ventana ...
  #1 (permalink)  
Antiguo 06/02/2013, 12:52
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta principiante en C, código limpio de errores

Bien estoy usando el programa Xcode de apple. Gracias a usuarios de esta web pude terminar un juego (increíblemente sencillo) en C, en el ventana 7 con el codeblock, no me da los errores de código que me da el Xcode, se debe a mi falta de experiencia y deseo saber como limpiar este código o saber los errores que he cometido para escribir correctamente en c, para hacer mas versiones (con lo que aprendo sobre c). gracias

[URL="http://www.mediafire.com/?y182u33f6i8wazx"]http://www.mediafire.com/?y182u33f6i8wazx[/URL]
  #2 (permalink)  
Antiguo 07/02/2013, 08:19
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 5 meses
Puntos: 28
Respuesta: principiante en C, código limpio de errores

No hay mucho que decir, solo que tu algoritmo funciona pero es muy poco práctico (te basas en copiar y pegar todo el rato).

Imaginate que ahora quieres cambiar algo (ponerle que aumente los aciertos/fallos cada vez que contestas una pregunta), tendrías que cambiar cada pregunta por separado lo cual resultaría muyyy engorroso. Otros detalles como que las preguntas sean aleatorias y tal ayudaría ha hacer un programa más activo.

Una opción sería crearse una estructura Pregunta:

Código C:
Ver original
  1. typedef struct
  2. {
  3. unsigned short N_Respuestas;
  4. unsigned short Respuesta_Correcta;
  5. char* Mensaje;
  6. char** Respuestas;
  7. }Pregunta;

Y generas un array de preguntas:
Código C:
Ver original
  1. Pregunta Preguntas[9];

Y lo llenas:

Código C:
Ver original
  1. Pregunta[0].N_Respuestas = 4;
  2. Pregunta[0].Respuesta_Correcta = 1;
  3. Pregunta[0].Mensaje = "Cuantos planestas hay actualmente en el sistema solar";
  4. Pregunta[0].Respuestas =(char**) malloc (N_Respuestas);
  5.  
  6. Pregunta[0].Respustas[0] = "Ocho";
  7. Pregunta[0].Respuestas[1] = "Nueve";
  8. Pregunta[0].Respuestas[2] = "Diez";
  9. Pregunta[0].Respuestas[3] = "Siete";

Todo lo que te queda es llenar las preguntas de datos, después te creas un sistema que las procese y listo:

Código C:
Ver original
  1. // Hasta que no termine con las preguntas
  2. for (unsigned short i = 0; i < 9;i++)
  3. {
  4.      printf("Estamos en la pregunta %d : \n \n",i+1);
  5.      printf("%s",Preguntas[i].Mensaje);
  6.      
  7.      // Mostramos las respuestas
  8.  
  9.      for (unsigned short j = 0; j < Pregunta.N_Respuestas;j++)
  10.               printf("Respuesta %d : %s \n",j+1,Pregunta[i].Respuestas[j]);
  11.      
  12.     printf("Elige una opcion: \n");
  13.       scanf("%d",&respuesta);
  14.  
  15.     if (respuesta == Pregunta[i].Respuesta_Correcta)
  16.          printf("La respuesta es correcta \n");
  17.    else
  18. {
  19.         printf("La respuesta es incorrecta, la solucion era la opcion %d \n",Pregunta[i].Respuesta_Correcta);
  20. }
  21. }

Aunque parece un poco abstracto, es un sistema muy potente y flexible. Puedes añadir todas las preguntas que quieras con las opciones que necesites, tan solo necesitaras rellenar un campo de "Pregunta" (y bueno, aumentar en uno el tamaño del array y demas).

En C++ podría ser aún más potente, gracias a la magia de los constructores (podrías definir una nueva pregunta en una sola línea).
  #3 (permalink)  
Antiguo 07/02/2013, 09:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 15 años, 3 meses
Puntos: 1
De acuerdo Respuesta: principiante en C, código limpio de errores

Gracias, Tendré que mirar bien tu código, por que hay partes que para mi son nuevas, aun soy principiante y no conozco todas las funciones del lenguaje C, Gracias por tu aporte, así aprendo algo nuevo.
Gracias
  #4 (permalink)  
Antiguo 07/02/2013, 09:43
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 5 meses
Puntos: 28
Respuesta: principiante en C, código limpio de errores

De nada, por cierto si vas a probar mi código. Me he dado cuenta que he cometido algun error de sintaxis (por ejemplo en este for):
Cita:
for (unsigned short j = 0; j < Pregunta.N_Respuestas;j++)
Realmente sería:

Cita:
for (unsigned short j = 0; j < Preguntas[i].N_Respuestas;j++)
Es lo que pasa cuando no se prueban las cosas jeje...
  #5 (permalink)  
Antiguo 07/02/2013, 10:04
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 15 años, 3 meses
Puntos: 1
De acuerdo Respuesta: principiante en C, código limpio de errores

gracias de nuevo

Etiquetas: errores, principiante, programa
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 09:47.