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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  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 85,830 veces)
Blaster

Desconectado Desconectado

Mensajes: 190


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

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 pm 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 pm »

Editado


« Última modificación: 6 Agosto 2014, 03:17 am 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 pm »

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 pm »

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

flony


Desconectado Desconectado

Mensajes: 583



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

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 pm 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 am »

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 am por Neo_System » En línea

fary


Desconectado Desconectado

Mensajes: 1.061



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

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 (C#, VB.NET, ASP)
lokot3 14 40,438 Último mensaje 2 Junio 2006, 19:39 pm
por SeniorX
[C] Juego snake
Programación C/C++
Dacan 4 4,603 Último mensaje 22 Marzo 2013, 05:32 am
por Dacan
Mi juego Snake C++ / SDL 2.0
Programación C/C++
erest0r 7 7,068 Último mensaje 10 Diciembre 2014, 13:43 pm
por erest0r
Necesito ayuda con un juego de SNAKE EN ALLEGRO C++
Programación C/C++
ALDINPEREZ 2 2,594 Último mensaje 24 Noviembre 2019, 05:09 am
por K-YreX
Petición en Juego de programación (Snake)
Programación C/C++
AJDFernadez 0 3,809 Último mensaje 22 Agosto 2022, 22:27 pm
por AJDFernadez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines