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

Problema con este juego

Estas en el tema de Problema con este juego en el foro de C/C++ en Foros del Web. Hola, Este es mi primer juego que programo en c++, y no anda en xp ( pero en windows vista y seven anda de 10 ...
  #1 (permalink)  
Antiguo 20/11/2009, 19:06
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Problema con este juego

Hola,
Este es mi primer juego que programo en c++, y no anda en xp ( pero en windows vista y seven anda de 10 ). Lo que pasa es que no anda las "flechas" ( A, S, D y W ).
Este es el codigo ( codigo de novato ):
Código c++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.c>
  4. #include <iostream>
  5.  
  6. #define UP_BOTON 119
  7. #define DONW_BOTON 115
  8. #define LEFT_BOTON 97
  9. #define RIGHT_BOTON 100
  10. #define SELECT_BOTON 101
  11. #define PAUSE_BOTON 112
  12. #define SALIR_BOTON 104
  13.  
  14. using namespace std;
  15.  
  16. bool animacionInicioOn=true;
  17.  
  18. void animacionInicio();
  19. void HeadeJuego(int lineas);
  20. void MenuInicio(int linea);
  21. void CambiarOpcionMenu(int opcion, int linea);
  22. void SalirJuego(int linea);
  23. void jugarYa();
  24. void MenuConfiguraciones(int linea);
  25. void CambiarOpcionMenuConfig(int opcion, int linea);
  26. int numeroRand(int m, int n),velocidadGame=1,timeGame=-1;
  27.  
  28.  
  29.  
  30. int main (int argc, char *argv[]) {
  31.     _setcursortype( _NOCURSOR );
  32.     animacionInicio();
  33.     for(int i=1;i<=10;i++){
  34.         HeadeJuego(i);
  35.         Sleep(1);
  36.     }
  37.     MenuInicio(5);
  38.     return 0;
  39. }
  40. void CambiarOpcionMenu(int opcion, int linea){
  41.     switch(opcion){
  42.     case 1:
  43.         gotoxy(3,linea+1);
  44.         textbackground(6);
  45.         cprintf("Jugar Ya!");
  46.        
  47.         gotoxy(3,linea+3);
  48.         textbackground(7);
  49.         cprintf("Configurar");
  50.        
  51.         gotoxy(3,linea+5);
  52.         textbackground(7);
  53.         cprintf("Salir");
  54.         break;
  55.     case 2:
  56.         gotoxy(3,linea+1);
  57.         textbackground(7);
  58.         cprintf("Jugar Ya!");
  59.        
  60.         gotoxy(3,linea+3);
  61.         textbackground(6);
  62.         cprintf("Configurar");
  63.        
  64.         gotoxy(3,linea+5);
  65.         textbackground(7);
  66.         cprintf("Salir");
  67.         break;
  68.     case 3:
  69.         gotoxy(3,linea+1);
  70.         textbackground(7);
  71.         cprintf("Jugar Ya!");
  72.        
  73.         gotoxy(3,linea+3);
  74.         textbackground(7);
  75.         cprintf("Configurar");
  76.        
  77.         gotoxy(3,linea+5);
  78.         textbackground(6);
  79.         cprintf("Salir");
  80.         textbackground(7);
  81.         break;
  82.     }
  83. }
  84. void MenuInicio(int linea){
  85.     int OpcionSelecionada=1,n=0;
  86.    
  87.     CambiarOpcionMenu(OpcionSelecionada,linea);
  88.    
  89.     gotoxy(22,linea+1);
  90.     cprintf("Usa la \"A\" para Subir.");
  91.     gotoxy(22,linea+2);
  92.     cprintf("Usa la \"S\" para Bajar.");
  93.     gotoxy(22,linea+3);
  94.     cprintf("Usa la \"E\" para Selecionar.");
  95.    
  96.    
  97.     while(n!=SELECT_BOTON){
  98.        
  99.            
  100.             cout<<" ";
  101.            
  102.             if(n==UP_BOTON){
  103.                 if(OpcionSelecionada-1<=3&&OpcionSelecionada-1>0){
  104.                     OpcionSelecionada=OpcionSelecionada-1;
  105.                     CambiarOpcionMenu(OpcionSelecionada,linea);
  106.                 }          
  107.             }else if(n==DONW_BOTON){
  108.                 if(OpcionSelecionada+1<=3&&OpcionSelecionada+1>0){
  109.                     OpcionSelecionada=OpcionSelecionada+1;
  110.                     CambiarOpcionMenu(OpcionSelecionada,linea);
  111.                 }
  112.             }
  113.            
  114.        
  115.         n=getch();
  116.     }
  117.     switch(OpcionSelecionada){
  118.     case 1:
  119.         jugarYa();
  120.         break;
  121.     case 2:
  122.         MenuConfiguraciones(linea);
  123.         break;
  124.     case 3:
  125.         SalirJuego(linea);
  126.         break;
  127.     default:
  128.         MenuInicio(linea);
  129.         break;
  130.     }
  131.    
  132. }
  133. int numeroRand(int m, int n){
  134.     return (rand()&#37;n+m);
  135. }
  136. void jugarYa(){
  137.     int n,s_i=10,s_j=24,o_i=0,o_j=0,puntos=0;
  138.     bool pause_on=false;
  139.     for(int i=10;i<=20;i++){
  140.         HeadeJuego(i);
  141.         Sleep(1);
  142.     }
  143.     o_i=numeroRand(0,17);
  144.     o_j=numeroRand(0,74);
  145.     while(n!=SALIR_BOTON){
  146.        
  147.         if(n==PAUSE_BOTON)
  148.             pause_on=!pause_on;
  149.        
  150.        
  151.         if(!pause_on){
  152.            
  153.                
  154.             textbackground(7);
  155.             for(int i=0;i<=20;i++){
  156.                 gotoxy(2,4+i);
  157.                 cprintf("                                                                              ");
  158.             }
  159.                
  160.             if(n==LEFT_BOTON){
  161.                 if(s_j-1>=0)
  162.                     s_j-=1;
  163.             }
  164.             if(n==RIGHT_BOTON){
  165.                 if(s_j+1<=74)
  166.                     s_j+=1;
  167.             }
  168.             if(n==UP_BOTON){
  169.                 if(s_i-1>=0)
  170.                     s_i-=1;
  171.             }
  172.             if(n==DONW_BOTON){
  173.                 if(s_i+1<=17)
  174.                     s_i+=1;
  175.             }
  176.            
  177.            
  178.             if(s_i==o_i&&s_j==o_j){
  179.                 puntos+=30;
  180.                 o_i=numeroRand(0,17);
  181.                 o_j=numeroRand(0,74);
  182.             }
  183.            
  184.             textbackground(12);
  185.             gotoxy(3+s_j,5+s_i);
  186.             cprintf(" ");
  187.             textbackground(7);
  188.            
  189.             textbackground(11);
  190.             gotoxy(3+o_j,5+o_i);
  191.             cprintf(" ");
  192.             textbackground(7);
  193.            
  194.         }
  195.         textcolor(14);
  196.         gotoxy(2,24);
  197.         if(pause_on)
  198.             cprintf("Presione <H> para salir al menu | Presiona <P> para sacar la pausa.");
  199.         else
  200.             cprintf("Presione <H> para salir al menu | Presiona <P> para poner la pausa.");
  201.            
  202.         textcolor(15);
  203.         gotoxy(40,3);
  204.         cout<<"PUNTOS: "<<puntos;
  205.         n=getch();
  206.         Sleep(velocidadGame);
  207.     }
  208.     for(int i=20;i>=10;i--){
  209.         HeadeJuego(i);
  210.         Sleep(1);
  211.     }
  212.     MenuInicio(5);
  213. }
  214. void MenuConfiguraciones(int linea){
  215.     int n=0,OpcionSelecionada=1;
  216.    
  217.     HeadeJuego(10);
  218.     textcolor(14);
  219.     gotoxy(3,9+linea);
  220.     cprintf("Presione <H> para volver al menu.");
  221.     textcolor(15);
  222.    
  223.     gotoxy(3,linea);
  224.     cprintf("CONFIGURAR");
  225.     CambiarOpcionMenuConfig(OpcionSelecionada,linea);
  226.     while(n!=SALIR_BOTON){
  227.         cout<<" ";
  228.         if(n==SELECT_BOTON){
  229.             if(OpcionSelecionada==1){
  230.                 HeadeJuego(10);
  231.  
  232.                 gotoxy(3,linea);
  233.                 cprintf("CONFIGURAR: Velocidad");
  234.                
  235.                 gotoxy(3,linea+3);
  236.                 cprintf("Selecione una velocidad en milisegundos: (ej.: 1000 es igual a 1 segundo)");
  237.                 gotoxy(3,linea+4);
  238.                 cin>>velocidadGame;
  239.                
  240.                 textcolor(14);
  241.                 gotoxy(3,linea+6);
  242.                 cprintf("Velocidad configurada correctamente.");
  243.                 gotoxy(3,linea+7);
  244.                 cprintf("Presione una tecla para ir al menu de configuraciones.");
  245.                 textcolor(15);
  246.                 getch();
  247.                 MenuConfiguraciones(linea);
  248.             }else if(OpcionSelecionada==2){
  249.                 HeadeJuego(10);
  250.  
  251.                 gotoxy(3,linea);
  252.                 cprintf("CONFIGURAR: Restaurar configuraciones");
  253.                 velocidadGame=1;
  254.  
  255.  
  256.                 textcolor(14);
  257.                 gotoxy(3,linea+3);
  258.                 cprintf("Se a restaurado correctamente las configuraciones.");
  259.                 gotoxy(3,linea+7);
  260.                 cprintf("Presione una tecla para ir al menu de configuraciones.");
  261.                 textcolor(15);
  262.                 getch();
  263.                 MenuConfiguraciones(linea);
  264.             }
  265.         }else{
  266.             if(n==UP_BOTON){
  267.                 if(OpcionSelecionada-1<=2&&OpcionSelecionada-1>0){
  268.                     OpcionSelecionada=OpcionSelecionada-1;
  269.                     CambiarOpcionMenuConfig(OpcionSelecionada,linea);
  270.                 }          
  271.             }else if(n==DONW_BOTON){
  272.                 if(OpcionSelecionada+1<=2&&OpcionSelecionada+1>0){
  273.                     OpcionSelecionada=OpcionSelecionada+1;
  274.                     CambiarOpcionMenuConfig(OpcionSelecionada,linea);
  275.                 }
  276.             }
  277.         }
  278.         n=getch();
  279.     }
  280.     HeadeJuego(10);
  281.     MenuInicio(5);
  282.  
  283. }
  284. void CambiarOpcionMenuConfig(int opcion, int linea){
  285.     switch(opcion){
  286.     case 1:
  287.         gotoxy(3,linea+2);
  288.         textbackground(6);
  289.         cprintf("Velocidad");
  290.        
  291.         gotoxy(3,linea+4);
  292.         textbackground(7);
  293.         cprintf("Restaurar configuraciones.");
  294.        
  295.         gotoxy(3,linea+6);
  296.         textbackground(7);
  297.         cprintf("Tiempo (prox.)");
  298.         break;
  299.     case 2:
  300.         gotoxy(3,linea+2);
  301.         textbackground(7);
  302.         cprintf("Velocidad");
  303.        
  304.         gotoxy(3,linea+4);
  305.         textbackground(6);
  306.         cprintf("Restaurar configuraciones.");
  307.        
  308.         gotoxy(3,linea+6);
  309.         textbackground(7);
  310.         cprintf("Tiempo (prox.)");
  311.         break;
  312.     }
  313. }
  314. void SalirJuego(int linea){
  315.     HeadeJuego(10);
  316.     gotoxy(3,linea);
  317.     textbackground(7);
  318.     cprintf("Adios.. chau!... ( presione un boton para salir )");
  319.     getch();
  320. }
  321. void HeadeJuego(int lineas){
  322.     textbackground(1);
  323.     clrscr();
  324.    
  325.     textbackground(3);
  326.     textcolor(15);
  327.     gotoxy(2,1);
  328.     cprintf("                                                                              ");
  329.     gotoxy(2,2);
  330.     cprintf("  SNAKE - por pato12                                                          ");
  331.     gotoxy(2,3);
  332.     cprintf("                                                                              ");
  333.    
  334.     textbackground(7);
  335.     for(int i=0;i<=lineas;i++){
  336.         gotoxy(2,4+i);
  337.         cprintf("                                                                              ");
  338.     }
  339.     textbackground(8);
  340.     gotoxy(2,lineas+4+1);
  341.     cprintf("                               BY PATO12 | HALFMUSIC.COM                      ");
  342.     textbackground(7);
  343. }
  344. void animacionInicio(){
  345.     if(!animacionInicioOn)
  346.         return;
  347.     else
  348.         animacionInicioOn=false;
  349.    
  350.     int color_animate=6;
  351.    
  352.     while(color_animate!=4){
  353.        
  354.         if(color_animate==6)
  355.             color_animate++;
  356.         else if(color_animate==7)
  357.             color_animate++;
  358.         else if(color_animate==8)
  359.             color_animate=0;
  360.         else if(color_animate==0){
  361.             color_animate=4;
  362.             break;
  363.         }
  364.         textcolor(15);
  365.         textbackground(color_animate);
  366.         clrscr();
  367.         gotoxy(22,10);
  368.         cprintf("Juego echo por Pato12 | HalfMusic.com");
  369.        
  370.        
  371.         Sleep(800);
  372.        
  373.     }
  374.     for(int i=10;i>0;i--){
  375.         gotoxy(22,i+1);
  376.         cprintf("                                     ");
  377.         gotoxy(22,i);
  378.         cprintf("Juego echo por Pato12 | HalfMusic.com");
  379.         Sleep(20);
  380.     }
  381.     gotoxy(22,1);
  382.     cprintf("                                     ");
  383. }
No se si sera mi complilador, uso el ZinjaI ( y no lo cambio :p ).
Gracias
Salu2
__________________
Half Music - www.halfmusic.com

Última edición por pato12; 20/11/2009 a las 19:19
  #2 (permalink)  
Antiguo 22/11/2009, 18:12
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Problema con este juego

Nadie sabe, creo que es mi compilador :S. en Dev C++ no anda :p
__________________
Half Music - www.halfmusic.com
  #3 (permalink)  
Antiguo 23/11/2009, 04:03
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Problema con este juego

No se, el codigo no es standard, conio es una extension de Borland ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 02:16.