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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Juego Pong, quisiera saber el error.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego Pong, quisiera saber el error.  (Leído 3,075 veces)
angardo

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Juego Pong, quisiera saber el error.
« en: 28 Julio 2017, 22:42 pm »

Hola que tal?, estoy haciendo el juego llamado pong en C, a la hora de ejecutar me compila bien, pero a la hora de ejecutar el programa se detiene, quisiera saber porque ocurre.

Código
  1. include <stdio.h>
  2. #define V 21
  3. #define H 75
  4.  
  5.  
  6. void inicio(char campo[V][H],int pelx,int pely,int iniJugador,int finJugador,int iniIA,int finIA);
  7. void borde(char campo[V][H]);
  8. void raqJug(char campo[V][H], int iniJugador, int finJugador);
  9. void raqIA(char campo[V][H], int iniIA, int finIA);
  10. void pel(char campo[V][H], int pelx,int pely);
  11.  
  12.  
  13.  
  14. int main(){
  15. int pelx,pely;
  16. int iniJugador, finJugador;
  17. int iniIA,finIA;
  18. char campo[V][H];
  19. pelx= 37;
  20. pely=10;
  21.  
  22. iniJugador=8;
  23. finJugador=12;
  24.  
  25. iniIA=8;
  26. finIA=12;
  27.  
  28. inicio(campo,pelx,pely,iniJugador,finJugador,iniIA,finIA);
  29.  
  30. return 0;
  31. }
  32.  
  33. void inicio(char campo[V][H],int pelx,int pely,int iniJugador,int finJugador,int iniIA,int finIA){
  34. borde(campo);
  35. raqJug(campo,iniJugador,finJugador);
  36. raqIA(campo,iniIA,finIA);
  37. pel(campo,pelx,pely);
  38. }
  39.  
  40. void borde(char campo[V][H]){
  41. int i,j;
  42. for(i=0; i<V-1;i++){
  43. for(j=0;i<H-1;j++){
  44. if(i==0 || i==V-1){
  45. campo[i][j]='-';
  46. }
  47. else  if (j==0 || j==H-1){
  48. campo[i][j]='|';
  49. }
  50. else{
  51. campo[i][j]=' ';
  52. }
  53. }
  54. }
  55. }
  56.  
  57. void raqJug(char campo[V][H], int iniJugador, int finJugador){
  58. int i,j;
  59.  
  60. for(i=iniJugador; i<=finJugador ; i++){
  61. for (j=2 ; j<=3 ; j++){
  62. campo[i][j]='X';
  63.  
  64. }
  65. }
  66. }
  67.  
  68. void raqIA(char campo[V][H], int iniIA, int finIA){
  69. int i,j;
  70.  
  71. for (i = iniIA; i<=finIA; i++){
  72. for (j =H-4; j <=H-3 ; j++){
  73. campo[i][j]='X';
  74.  
  75. }
  76. }
  77. }
  78.  
  79.  
  80. void pel(char campo[V][H], int pelx,int pely){
  81. campo[pely][pelx]='O';
  82. }
  83.  


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Juego Pong, quisiera saber el error.
« Respuesta #1 en: 28 Julio 2017, 22:58 pm »

Algo que vi es que hiciste los for parala matriz desde i=0 hasta "i<V-1". Querrías decir "i<V". Del otro modo, no llegas a tocar nunca eel último índice.

Y bueno, dices que al ejecutar se detiene, pero eso no es información suficiente. Busca en qué línea se detiene. Para ello, puedes poner printf, por ejemplo, hasta que veas que uno de ellos no se muestra.

De todos modos, mirando ahora el código, encontré, en la línea 43:
Código
  1. for(j=0;i<H-1;j++)
Fíjate en la condición, estás usando 'i' en vez de 'j'.


En línea

angardo

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Juego Pong, quisiera saber el error.
« Respuesta #2 en: 28 Julio 2017, 23:41 pm »

gracias, si ese era mi error, en vez de j puse i(error mas tonto el que cometi), y por si las dudas , puse V-1 ya que el valor de V es 21, pero los indices de la matriz van desde el 0 hasta el 20, que son 21 indices en total, y si pongo solo V pues me daria error por que se esta escribiendo en un lugar que no le pertenece a la matriz.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Juego Pong, quisiera saber el error.
« Respuesta #3 en: 28 Julio 2017, 23:58 pm »

El caso es que tienes i<V-1. i nunca va a llegar al 20 siendo V=21. Un símbolo "menor que" no dejará que llegue. Ese i va a llegar a 19, no a 20. Eso quedaría como "i<20". 20 no es menor que 20.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines