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

[SOLUCIONADO] Elegir una opción en mi juego

Estas en el tema de Elegir una opción en mi juego en el foro de C/C++ en Foros del Web. Hola! Tenga una duda que tengo que despejar con respecto al tema anterior. Bien, como nadie me a entendido bien, eh decidido graficar bien lo ...
  #1 (permalink)  
Antiguo 14/06/2012, 20:33
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Pregunta Elegir una opción en mi juego

Hola! Tenga una duda que tengo que despejar con respecto al tema anterior.

Bien, como nadie me a entendido bien, eh decidido graficar bien lo que quiero hacer...

Tengo un juego de aventura, que lo estoy desarrollando en Dev-C++. Éste es una aplicación de consola desarrollada en C++.

Lo que quiero hacer, es que al apretar un número y presionar enter, el juego salte a una línea de código. Ésta línea de código tiene que imprimir algo depende la opción que el jugador elija.

Por ejemplo:


1. Cazar animales
2. Construir un refugio
3. Construir armas



Si el jugador aprieta 1 y pulsa ENTER, quiero que se ejecute un comando printf que sea algo así:

Código:
alimento=alimento+3
vida=vida-12
printf("Has cazado 3 animales\n");
printf("Alimento: %i\n", alimento);
printf("Vida: %i", vida);
De paso, si pueden, quiero un código para cuándo la variable VIDA llegue a 0, se imprima: "Tu vida a llegado a 0, has perdido el juego".

Y en ese momento se acabe el juego.
__________________
Mi portafolio
  #2 (permalink)  
Antiguo 14/06/2012, 21:56
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Elegir una opción en mi juego

Cita:
podes hacer lo siguiente:

- capturar el valor que el usuario elige
- usar la sentencia SWITCH-CASE y en base a la opcion elegida tomar una desicion

Código C++:

Ver originalCopiar

//codigo del menu
...
int opcion;
cin>> opcion;

switch(opcion){
case 1: //algoritmo "cazar animales"
break;

case 2: //algoritmo "crear armas"
break;

case 3: //algoritmo "Terminar de construir el techo de la casa"
break;

default: //algoritmo en caso de que se equivoque y no ingrese 1, 2 ni 3
break;
...
}
me parece q vos no entendiste bien... Lo q te marcaron en el otro post esta perfecto, con un switch-case solucionas lo q queres.
Con respecto a lo de cin, si estas programando en C++ no deberia haber problemas, ahora si programas en C sí; en vez de cin tenes q usar scanf para C.
Para saber si tu VIDA es 0 con un if alcanza, tenes q preguntar si VIDA==0 entonces imprimir


Saludos
  #3 (permalink)  
Antiguo 15/06/2012, 06:01
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Elegir una opción en mi juego

Cita:
Iniciado por cesar_casla Ver Mensaje
me parece q vos no entendiste bien... Lo q te marcaron en el otro post esta perfecto, con un switch-case solucionas lo q queres.
Con respecto a lo de cin, si estas programando en C++ no deberia haber problemas, ahora si programas en C sí; en vez de cin tenes q usar scanf para C.
Para saber si tu VIDA es 0 con un if alcanza, tenes q preguntar si VIDA==0 entonces imprimir


Saludos
Lo del post anterior ya lo solucioné, instalando Dev-C++. Bien, con ese código, yo aprieto 1 y ENTER y no pasa nada. Lo siento es que soy novato y necesito que me expliquen las cosas...

Lo del if, lo tengo que poner todas las veces o con solo unas vez basta???
__________________
Mi portafolio
  #4 (permalink)  
Antiguo 15/06/2012, 07:59
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Elegir una opción en mi juego

q raro que no pase nada, pone el codigo q tengas asi te ayudo mejor. El if supongo que debe ir una sola vez, ahora dependiendo como lo usas, es donde lo vas a poner

Saludos
  #5 (permalink)  
Antiguo 15/06/2012, 10:00
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Elegir una opción en mi juego

Cita:
Iniciado por cesar_casla Ver Mensaje
q raro que no pase nada, pone el codigo q tengas asi te ayudo mejor. El if supongo que debe ir una sola vez, ahora dependiendo como lo usas, es donde lo vas a poner

Saludos
Código:
#include <iostream>
#include <cstdio>

int main()
  {
      // COLORES:
	 // a: verde chillon 
     // b: calipso 
     // c: rojo 
     // d: rosa 
     // e: amarillo 
     // f: blanco 
     // 0 : negro 
     // 1: Azul 
     // 2: verde 
     // 3: Calipso oscuro 
     // 4: Rojo oscuro 
     // 5: Morado 
     // 6: Amarillo oscuro 
     // 7: Blanco 
     // 8: Gris 
     // 9: Azul claro 



	  // Variables
	int accion01=1;
	int accion02=2;
	int accion03=3;
	int accion04=4;
	int arco=0;
	int espada=0;
	int pico=0;
	int cuero=0;
	int madera=12;
	int piedra=5;
	int hierro=0;
	int agua=2;
	int alimento=3;
	int vida=74;
	int energia=100;
	int hambre=97;
	int xp=1;
	// Terminan las variables
	// Empieza el juego
	 system("color 0f");
	printf("\n  |-----------------------------------|\n");
    printf("  |       Aventurific 1.1.            |\n");
	printf("  |Creado por Santiago Agustin Gimenez|\n");
	printf("  |-----------------------------------|\n");
	printf("\n");
	printf("\n");
	printf("Tutorial: Hola! Este es el tutorial del juego, para que aprendas a jugar\n");
	printf("Este juego te dira lo que tienes en el inventario frecuentemente, para que sepas lo que tienes en tu mochila.\n");
	printf("Si no tenes vida y/o energia, perderas el juego, ya que no podras realizar ninguna accion.\n");
	printf("\n");
	printf("Modo historia >> \n");
	printf("\n");
	printf("\n");
	printf("Estas en la selva, te has estrellado con tu aeroplano, parece que estas solo en esto...\n");
	printf("\n");
	printf("Vida *** : %i", vida);
	printf("\nHambre: %i", hambre);
	printf("\nExperiencia: %i", xp);
	printf("\n");
	printf("\n");
	system("pause");
	printf("Energia: %i", energia);
	printf("\n");
	printf("\n");
	printf("\n");
    printf("Inventario \n");
    printf("  Madera: %i\n", madera);
	printf("  Cuero: %i\n", cuero);
	printf("  Piedra: %i\n", piedra);
	printf("  Arco y flecha: %i\n", arco);
	printf("  Pico: %i\n", pico);
	printf("\n");
    printf("  Botellas de agua: %i\n", agua);
	printf("  Alimento: %i\n", alimento);
	printf("\n");
	system("pause");
	printf("\n");
	printf("\n");
	printf("\nHas construido tu casa en 68 minuto(s) y 32 milesimas \n");
	printf("\n  ####################\n");
	printf("  ##----------------##\n");
	printf("  ##----------------##\n");
	printf("  ##----------------##\n");
	printf("  ##----------------##\n");
	printf("  ##----------------##\n");
	printf("  ##----------------##\n");
	printf("  #########  #########\n");
	printf("          |  |        \n");
	printf("\n");
	energia=energia-23;
	printf("Energia (luego de armar tu casa): %i", energia);
	madera=madera-4;
	printf("\nMadera (luego de armar tu casa): %i", madera);
	xp=xp+3;
	printf("\n Experiencia (Has subido de nivel!): %i", xp);
	printf("\n Esta es tu casa. \nLargo: 6m - Ancho: 10m\n");
	printf("\n");
	system("pause");
	printf("\n");
	printf("\n");
	printf("\n");
	printf("VIENEN ENEMIGOS");
	printf("\n");
	printf("     #\n");
	printf("   ######### - ---\n");
	printf("   # #\n");
	printf("<### #\n");
	printf("    # #\n");
	printf("    # #\n");
	printf("    # #\n");
	printf("\n");
	printf("\n");
	// Mision 1
	printf("\n!!! NUEVA MISION (01): Mata a los enemigos y roba sus armas\n");
	printf("\n");
	printf("\n");
	system("pause");
	printf("\n");
	vida=vida-23;
	printf("\nTu vida luego de la pelea: %i\n", vida);
	printf("\nHas perdido 23 de vida");
	printf("\n - Has ganado la primera mision de prueba. Se ha terminado el tutorial del modo historia");
	printf("\n");
	printf("\n");
	system("pause");
	system("cls");
	printf("\n");
	printf("\n");
	printf("Inventario actualizado:\n");
	madera=madera+25;
	hierro=hierro+11;
	pico=pico+2;
	arco=arco+2;
	cuero=cuero+13;
	agua=agua+16;
	alimento=alimento+6;
	printf("Madera: %i", madera);
	printf("\nHierro: %i", hierro);
	printf("\nPico: %i", pico);
	printf("\nArco y flecha: %i", arco);
	printf("\nCuero: %i", cuero);
	printf("\nBotellas de agua: %i", agua);
	printf("\nAlimento: %i", alimento);
	printf("\n________________");
	printf("\n Vida: %i", vida);
	printf("\n Energia: %i", energia);
	printf("\n");
	printf("\nNivel 2\n");
	printf("\n");
	printf(" El tutorial no cuenta como historia en el juego, ya que es un tutorial.           De todas formas, el inventario se guardara.\n");
	printf("\n");
	printf("\n");
	printf("Que desea hacer?");
	printf("\n 1. Cazar animales \n 2. Contruir casas \n 3. Contruir armas");
	getchar();
}
__________________
Mi portafolio
  #6 (permalink)  
Antiguo 15/06/2012, 10:57
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Elegir una opción en mi juego

Con todo lo que subiste te cree un codigo donde vas a poder ingresar opciones; todo esto esta dentro de un do-while... Queda en vos analizar el codigo, investigar y leer un libro en caso de que no entiendas.. Hubiese quedado un poco mas lindo con funciones, pero por las dudas no las puse
Código C:
Ver original
  1. //#include <iostream>
  2. #include <stdio.h>
  3.  
  4. int main()
  5.   {
  6.       // Variables
  7.     int accion01=1;
  8.     int accion02=2;
  9.     int accion03=3;
  10.     int accion04=4;
  11.     int arco=0;
  12.     int espada=0;
  13.     int pico=0;
  14.     int cuero=0;
  15.     int madera=12;
  16.     int piedra=5;
  17.     int hierro=0;
  18.     int agua=2;
  19.     int alimento=3;
  20.     int vida=74;
  21.     int energia=100;
  22.     int hambre=97;
  23.     int xp=1;
  24.    
  25.     int opcion;
  26.     // Terminan las variables
  27.     // Empieza el juego
  28.      system("color 0f");
  29.     printf("\n  |-----------------------------------|\n");
  30.     printf("  |       Aventurific 1.1.            |\n");
  31.     printf("  |Creado por Santiago Agustin Gimenez|\n");
  32.     printf("  |-----------------------------------|\n");
  33.     printf("\n");
  34.     printf("\n");
  35.     printf("Tutorial: Hola! Este es el tutorial del juego, para que aprendas a jugar\n");
  36.     printf("Este juego te dira lo que tienes en el inventario frecuentemente, para que sepas lo que tienes en tu mochila.\n");
  37.     printf("Si no tenes vida y/o energia, perderas el juego, ya que no podras realizar ninguna accion.\n");
  38.     printf("\n");
  39.     printf("Modo historia >> \n");
  40.     printf("\n");
  41.     printf("\n");
  42.     printf("Estas en la selva, te has estrellado con tu aeroplano, parece que estas solo en esto...\n");
  43.     printf("\n");
  44.    
  45.     do {
  46.  
  47.       /* menu con las opciones del jugador */
  48.       printf("\nElija una opcion\n");
  49.       printf("1 - Construir un refugio\n");
  50.       printf("2 - Realizar una mision\n");
  51.       printf("3 - Ver inventario y estado del personaje\n");
  52.       scanf("%d",&opcion);
  53.      
  54.       switch(opcion) {
  55.                      case 1:
  56.                          
  57.                           printf("\nHas construido tu casa en 68 minuto(s) y 32 milesimas \n");
  58.                           printf("\n  ####################\n");
  59.                           printf("  ##----------------##\n");
  60.                           printf("  ##----------------##\n");
  61.                           printf("  ##----------------##\n");
  62.                           printf("  ##----------------##\n");
  63.                           printf("  ##----------------##\n");
  64.                           printf("  ##----------------##\n");
  65.                           printf("  #########  #########\n");
  66.                           printf("          |  |        \n");
  67.                           printf("\n");
  68.                           energia=energia-23;
  69.                           printf("Energia (luego de armar tu casa): %i", energia);
  70.                           madera=madera-4;
  71.                           printf("\nMadera (luego de armar tu casa): %i", madera);
  72.                           xp=xp+3;
  73.                           printf("\n Experiencia (Has subido de nivel!): %i", xp);
  74.                           printf("\n Esta es tu casa. \nLargo: 6m - Ancho: 10m\n");
  75.                           printf("\n");
  76.                           system("pause");
  77.                           printf("\n");
  78.                           break;
  79.                      
  80.                      case 2:
  81.                           printf("VIENEN ENEMIGOS");
  82.                           printf("\n");
  83.                           printf("     #\n");
  84.                           printf("   ######### - ---\n");
  85.                           printf("   # #\n");
  86.                           printf("<### #\n");
  87.                           printf("    # #\n");
  88.                           printf("    # #\n");
  89.                           printf("    # #\n");
  90.                           printf("\n");
  91.                           printf("\n");
  92.                           // Mision 1
  93.                           printf("\n!!! NUEVA MISION (01): Mata a los enemigos y roba sus armas\n");
  94.                           printf("\n");
  95.                           system("pause");
  96.                           printf("\n");
  97.                           vida=vida-23;
  98.                           printf("\nTu vida luego de la pelea: %i\n", vida);
  99.                           printf("\nHas perdido 23 de vida");
  100.                           printf("\n");
  101.                           system("pause");
  102.                           system("cls");
  103.                           printf("\n");
  104.                           printf("Inventario actualizado:\n");
  105.                           madera=madera+25;
  106.                           hierro=hierro+11;
  107.                           pico=pico+2;
  108.                           arco=arco+2;
  109.                           cuero=cuero+13;
  110.                           agua=agua+16;
  111.                           alimento=alimento+6;
  112.                           break;
  113.                      
  114.                      case 3:
  115.                      printf("Madera: %i", madera);
  116.                      printf("\nHierro: %i", hierro);
  117.                      printf("\nPico: %i", pico);
  118.                      printf("\nArco y flecha: %i", arco);
  119.                      printf("\nCuero: %i", cuero);
  120.                      printf("\nBotellas de agua: %i", agua);
  121.                      printf("\nAlimento: %i", alimento);
  122.                      printf("\n________________");
  123.                      printf("\n Vida: %i", vida);
  124.                      printf("\n Energia: %i", energia);
  125.                      printf("\nHambre: %i", hambre);
  126.                      printf("\nExperiencia: %i", xp);
  127.                      printf("\n");
  128.                      break;
  129.                      
  130.                      default:
  131.                              printf("Opcion no valida\n");
  132.                              break;
  133.      } /* fin del switch-case */
  134.      } while(vida>0);
  135.      
  136.      printf("Tu vida llego a cero... PERDISTE\n");
  137.      
  138.      system("PAUSE");
  139.      
  140.      return 0;
  141. }

Saludos
  #7 (permalink)  
Antiguo 16/06/2012, 10:56
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 4 meses
Puntos: 6
Respuesta: Elegir una opción en mi juego

Realmente muy creativo...
Hasta ahora no se me había ocurrido crear un juego usando C++ (es lo que nos enseñan en primer ciclo). Y pues, del código expuesto no hay nada que sea muy avanzado, por lo que creo que pronto comenzaré a diseñar también uno. De seguro que va a agradarles a mis profesores, o por lo menos, a mis compañeros... pues quizás hasta se motiven también por intentarlo jaja.
cesar_casla, ¿podrías darme una idea de cómo usar subprogramas en esto (funciones)?
¡Muchísimas gracias!
PD: Me pregunto si luego esto podría dejar de funcionar sólo en consola y pasar a tener gráficos y un entorno más bonito... ya que cuando pregunté de esto a una docente, me dijo que mientras tanto seguiríamos así (ejecutando en Visual Studio)... pero que sí es posible exportar el .exe y que un usuario cualquiera pueda ejecutarlo sin tener el Visual Studio en su ordenador. Claro que es algo lógico, porque de caso contrario, qué sentido tendría aprender algo de programación? Sólo me dijo que para 3er ciclo ibamos recién a incluir botones.
Y si usted me da aún más alcances, yo no pienso esperar! Gracias nuevamente.
  #8 (permalink)  
Antiguo 16/06/2012, 12:27
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Elegir una opción en mi juego

Cita:
¿podrías darme una idea de cómo usar subprogramas en esto (funciones)?
en este programa lo que se podria hacer es crear funciones para cada case, por ejemplo crear una funcion que se llame inventario(), y ahi muestre todos los printf del case 3. Tambien se podria optimizar un poco mas usando estructuras; pero esto ya pasa por las herramientas que cuenta cada uno.

Cita:
Me pregunto si luego esto podría dejar de funcionar sólo en consola y pasar a tener gráficos y un entorno más bonito
Sí. Hay varias librerias q te permiten hacer lo q queres como opengl, Qt, etc... todas tienen su grado de dificultad; si qres crear juegos solo es cuestion de googlear y leer lo q encuentres

Saludos

PD: no te qdes solo con lo q te enseña tu profesor :)

Etiquetas: elegir, juego, variables
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 14:50.