elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Usas Skype? Protégete de los Skype Resolver


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Juego snake en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego snake en c++  (Leído 44,701 veces)
Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Juego snake en c++
« en: 5 Octubre 2012, 02:20 »

El codigo ya esta corregido, la libreria (conio2.h) es la que provocaba
el fallo; este es el code funcional pa quien lo quiera compilar
y ejecutar gracias a todos ;)

  
Código
  1. #include <windows.h>
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5.  
  6. #define ARRIBA 72
  7. #define IZQUIERDA 75
  8. #define DERECHA 77
  9. #define ABAJO 80
  10. #define ESC 27
  11.  
  12. int cuerpo[200][2];
  13. int n = 1, tam = 10, dir = 3;
  14. int x = 10, y = 12;
  15. int xc = 30, yc = 15;
  16. int velocidad = 60;
  17. char tecla;
  18.  
  19. void gotoxy(int x, int y)
  20. {
  21.    HANDLE hCon;
  22.    COORD dwPos;
  23.  
  24.    dwPos.X = x;
  25.    dwPos.Y = y;
  26.    hCon = GetStdHandle(STD_OUTPUT_HANDLE);
  27.    SetConsoleCursorPosition(hCon,dwPos);
  28. }
  29. void OcultaCursor() {
  30.    CONSOLE_CURSOR_INFO cci = {100, FALSE};
  31.  
  32.    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
  33. }
  34. void pintar(){  
  35.     for(int i=2; i < 78; i++){
  36.        gotoxy (i, 3); printf ("%c", 205);
  37.        gotoxy(i, 23); printf ("%c", 205);
  38.        }
  39.     for(int v=4; v < 23; v++){
  40.        gotoxy (2,v);  printf ("%c", 186);
  41.        gotoxy(77,v);  printf ("%c", 186);
  42.        }
  43.     gotoxy  (2,3);    printf ("%c", 201);
  44.     gotoxy (2,23);    printf ("%c", 200);
  45.     gotoxy (77,3);    printf ("%c", 187);
  46.     gotoxy(77,23);    printf ("%c", 188);
  47.     }  
  48. void guardar_posicion(){
  49.     cuerpo[n][0] = x;
  50.     cuerpo[n][1] = y;
  51.     n++;
  52.     if(n == tam) n = 1;
  53. }
  54. void dibujar_cuerpo(){
  55.      for(int i = 1; i < tam; i++){
  56.      gotoxy(cuerpo[i][0] , cuerpo[i][1]); printf("*");
  57.     }
  58. }
  59. void borrar_cuerpo(){
  60.     gotoxy(cuerpo[n][0] , cuerpo[n][1]); printf(" ");
  61.    }
  62. void teclear(){
  63.     if(kbhit()){
  64.            tecla = getch();
  65.            switch(tecla){
  66.                case ARRIBA : if(dir != 2) dir = 1; break;
  67.                case ABAJO : if(dir != 1) dir = 2; break;
  68.                case DERECHA : if(dir != 4) dir = 3; break;
  69.                case IZQUIERDA : if(dir != 3) dir = 4; break;
  70.           }
  71.     }
  72. }
  73. void comida()
  74. {
  75.     if(x == xc && y == yc)
  76.     {
  77.          xc = (rand() % 73) + 4;
  78.          yc = (rand() % 19) + 4;
  79.  
  80.          tam++;
  81.          gotoxy(xc, yc); printf("%c", 4);
  82.     }
  83. }
  84. bool game_over()
  85. {
  86.     if(y == 3 || y == 23 || x == 2 || x == 77) return false;
  87.     for(int j = tam - 1; j > 0; j--){
  88.             if(cuerpo[j][0] == x &&  cuerpo[j][1] == y)
  89.             return false;
  90.     }
  91.    return true;
  92. }
  93. int main()
  94. {
  95.    OcultaCursor();
  96.  
  97.    pintar();
  98.   gotoxy(xc, yc); printf("%c", 4);
  99.  
  100.    while(tecla != ESC && game_over())
  101.    {
  102.         borrar_cuerpo();
  103.         guardar_posicion();
  104.         dibujar_cuerpo();
  105.         comida();
  106.         teclear();
  107.         teclear();
  108.  
  109.         if(dir == 1) y--;
  110.         if(dir == 2) y++;
  111.         if(dir == 3) x++;
  112.         if(dir == 4) x--;
  113.  
  114.         Sleep(velocidad);
  115.         }
  116.    pintar();
  117.    return 0;
  118. }


« Última modificación: 9 Octubre 2012, 15:45 por Neo_System » En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Necesito localizar un error en el juego de snake hecho en c++
« Respuesta #1 en: 5 Octubre 2012, 21:12 »

Editado


« Última modificación: 6 Agosto 2014, 03:17 por Blaster » En línea

X3R4CK3R

Desconectado Desconectado

Mensajes: 74


Divide y vencerás


Ver Perfil WWW
Re: Necesito localizar un error en el juego de snake hecho en c++
« Respuesta #2 en: 6 Octubre 2012, 23:03 »

hola por que nadie me ayuda quiero corregir este code :-(
les agradeceria mucho.

Quizás porque nadie usa conio2.h, te aconsejaría que usases librerías estándares.

Saludos
En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Necesito localizar un error en el juego de snake hecho en c++
« Respuesta #3 en: 6 Octubre 2012, 23:18 »

ahh ya veo tomare tu consejo
gracias ;)
« Última modificación: 7 Octubre 2012, 00:48 por Neo_System » En línea

flony


Desconectado Desconectado

Mensajes: 563



Ver Perfil
Re: Necesito localizar un error en el juego de snake hecho en c++
« Respuesta #4 en: 6 Octubre 2012, 23:24 »

supongo que porque cada librería tiene funciones propias que no hacen otras, y se debería conocer el funcionamiento de esa librería para saber si to code esta bien o no....eso si soluciones a tu codigo es muy alto el nivel para mi, soy iniciado en esto
« Última modificación: 6 Octubre 2012, 23:27 por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Necesito localizar un error en el juego de snake hecho en c++
« Respuesta #5 en: 7 Octubre 2012, 00:55 »

supongo que porque cada librería tiene funciones propias que no hacen otras, y se debería conocer el funcionamiento de esa librería para saber si to code esta bien o no....eso si soluciones a tu codigo es muy alto el nivel para mi, soy iniciado en esto

gracias x la aclaracion amigo
un saludo ;)
« Última modificación: 7 Octubre 2012, 00:58 por Neo_System » En línea

fary


Desconectado Desconectado

Mensajes: 816

FASM / OllyDbg


Ver Perfil WWW
Re: Juego snake en c++
« Respuesta #6 en: 7 Octubre 2012, 11:43 »

Este tipo de juegos me parece que se hacen con un  array multidimensional del mapa, lo que facilita muchisimo las cosas... de la forma que lo haces no sería correcta.

un saludo.
En línea

Un byte a la izquierda.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
juego SNAKE en C# « 1 2 »
.NET
lokot3 14 31,179 Último mensaje 2 Junio 2006, 19:39
por SeniorX
Mi juego hecho en pygame.
Scripting
braulio-- 3 3,697 Último mensaje 3 Julio 2009, 14:03
por braulio--
Juego de Ping-Pong hecho en C.
Programación C/C++
NeoB 7 11,588 Último mensaje 8 Julio 2012, 09:05
por durasno
[C] Juego snake
Programación C/C++
Dacan 4 1,998 Último mensaje 22 Marzo 2013, 05:32
por Dacan
Mi juego Snake C++ / SDL 2.0
Programación C/C++
erest0r 7 2,856 Último mensaje 10 Diciembre 2014, 13:43
por erest0r
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines