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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayudemne solo a entender un código por favor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayudemne solo a entender un código por favor  (Leído 2,203 veces)
piyor6

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Ayudemne solo a entender un código por favor
« en: 1 Junio 2018, 16:53 pm »

Buenas amigos tengo una duda desde ayer pero yo se que alguien con experiencia me la sabría responder lo que pasa esque me tocó hacer de proyecto final un juego de batalla naval y encontré un código en Internet del cual me estoy ayudando pero no  entiendo una parte dice que si el valor de jugador es 1 entonces hay barcos si es dos barcos destruidos la única duda mia es ¿en qué parte del código se acomoda los valores a 1 o 2 es decir en que línea de código se define que jugador es 1 para poner así la x
Este es el Link del código https://pastebin.com/QAM2h8PS


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayudemne solo a entender un código por favor
« Respuesta #1 en: 1 Junio 2018, 19:14 pm »

¿Qué? Los signos de puntuación, ordenar ideas y diferenciar párrafos ayuda a que otros entiendan tu mensaje.


En línea

piyor6

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Ayudemne solo a entender un código por favor
« Respuesta #2 en: 1 Junio 2018, 19:45 pm »

perdon pero lo escribi de un celular a la carrera pero la duda es.
si copilas ese codigo te as cuenta que cada vez que ingresas las cordenas se crea una O en la poscicion y esto pasa porque el jugador se iguala a 1 como dice en la funcion en la funcion imprimir pero la duda es en que linea de codigo se divide para saber si es 1 o no es 1 copila el codigo para que me entiendas porfa
Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #include <time.h>
  5.  
  6. #define CORAZONES 3
  7.  
  8. void gotoxy(int x,int y){
  9.    HANDLE hcon=GetStdHandle(STD_OUTPUT_HANDLE);
  10.    COORD dwpos;
  11.    dwpos.X=x;
  12.    dwpos.Y=y;
  13.    SetConsoleCursorPosition(hcon, dwpos);
  14. }
  15.  
  16. void cuadro(){
  17. int i;
  18. //Horizontales
  19. for(i = 1; i < 50; i++){
  20. gotoxy(i, 1); printf("%c", 205); //Horizontales Superiores
  21. gotoxy(i, 20); printf("%c", 205);//Horizontales Inferiores
  22. }
  23. //Verticales
  24. for(i = 2; i < 20; i++){
  25. gotoxy(1, i); printf("%c", 186); //Verticales Izquierda
  26. gotoxy(50, i); printf("%c", 186);//Verticales Derecha
  27. }
  28. //Esquinas
  29. gotoxy(1, 1); printf("%c", 201);
  30. gotoxy(1, 20); printf("%c", 200);
  31. gotoxy(50, 1); printf("%c", 187);
  32. gotoxy(50, 20); printf("%c", 188);
  33. }
  34. void imprimir();
  35.  
  36. void llenar();
  37. void borrar(int,int );
  38. void iniciar();
  39.  
  40. int  i, j, k, jugador[100][100], oponente[100][100], opcion1, opcion2, puntajejugador=0, puntajeoponente=0;
  41.  
  42. int main(){
  43.  
  44. system("color 0A");
  45. iniciar();
  46.  
  47.  
  48.  
  49.  
  50.    return 0;
  51. }
  52. void imprimir (){
  53.    printf("\t\t\tBATALLA");
  54.    printf("\n\n");
  55.  
  56.  for(i=1;i<=5;i++){ // Imprime tablero del oponente
  57.        printf("\n\t\t");
  58.        for(j=1;j<=9;j++){
  59.            if(oponente[i][j]==3){
  60.                printf(" #");
  61.            }else{
  62.                if(oponente[i][j]==2){// Imprime 'X' si vale 2
  63.  
  64.                    printf("  X");
  65.                }else{
  66.                    printf(" -");
  67.                }
  68.            }
  69.        }
  70.  
  71.  
  72.    }
  73.  
  74.        printf("\n\t\t____________________\n");
  75.        gotoxy(38,4);  printf("OPONENTE ");
  76.        printf("\n\n\n\n\n");
  77.   for(i=1;i<=5;i++){ // Imprime el tablero del jugador
  78.  
  79.        printf("\n\t\t");
  80.        for(j=1;j<=9;j++){
  81.            if(jugador[i][j]==3){
  82.                printf("  #");
  83.            }
  84.            else{
  85.                if(jugador[i][j]==2){ // Imprime 'X' si vale 2 || 'O' si vale 1
  86.  
  87.                    printf("  X");
  88.                }
  89.                else{
  90.                    if(jugador[i][j]==1){
  91.                        printf("%d",jugador[i][j]);
  92.                        printf(" O");
  93.                    }
  94.                    else{
  95.                        printf(" -");
  96.                    }
  97.                }
  98.            }
  99.        }
  100.  
  101.    }
  102.  
  103.    printf("\n\n");
  104. gotoxy(38,11); printf("JUGADOR ");
  105.  
  106.  
  107.  
  108.  
  109.    }
  110. void llenar(){
  111.     for(i=1;i<=5;i++){
  112.        for(j=1;j<=9;j++){
  113.            jugador[i][j]=0;
  114.            oponente[i][j]=0;
  115.        }
  116.     }
  117.  
  118.     for(k=1;k<=5;k++){
  119.  
  120.        i=1+rand()%5;
  121.        j=1+rand()%9;
  122.  
  123.        while(oponente[i][j]==1){
  124.  
  125.            i=1+rand()%5; j=1+rand()%9;
  126.  
  127.        }
  128.            oponente[i][j]=1; //la posicion de los barcos valdra 1
  129.              gotoxy(2,17); printf("dame las cordenadas de tus 5 barcos x%d=   y%d=   \n\n\n",k,k);
  130.            gotoxy(41,17); scanf("%d",&opcion2);
  131.  
  132.            cuadro();
  133.            while(opcion2<1 || opcion2>9){
  134.               gotoxy(2,18);  printf("  ingresa un valor valido (1 a 9) ");
  135.                borrar(41,17);
  136.               gotoxy(41,17); scanf("%d",&opcion2);
  137.  
  138.  
  139.               cuadro();
  140.  
  141.            }
  142.  
  143.              gotoxy(47,17); scanf("%d",&opcion1);
  144.  
  145.            cuadro();
  146.            while(opcion1<1 || opcion1>5){
  147.               gotoxy(2,18);  printf("  ingresa un valor valido (1 a 5) ");
  148.                borrar(47,17);
  149.               gotoxy(47,17); scanf("%d",&opcion1);
  150.               system("cls");
  151.  
  152.                gotoxy(2,17); printf("dame las cordenadas de tus 5 barcos x%d=   y%d=   \n\n\n",k,k);
  153.               cuadro();
  154.               if(jugador[opcion1][opcion2]==1){
  155.                    printf("\n ya existe ");
  156.  
  157.                    k=k-1;
  158.  
  159.               }
  160.               jugador[opcion1][opcion2]=1;
  161.               system("cls");
  162.  
  163.            }
  164.  
  165.  
  166. }
  167.  
  168. }
  169.  
  170. void borrar(int x,int y){
  171.    gotoxy(x,y); printf("  ");
  172. }
  173.  
  174.  
  175.  
  176.  
  177.  
  178. void iniciar(){// Rellena con '0' el arreglo y coloca los barcos
  179.  
  180.    for(i=1;i<=5;i++){ // Llena todo con '0'
  181.  
  182.        for(j=1;j<=9;j++){
  183.            jugador[i][j]=0;
  184.            oponente[i][j]=0;
  185.  
  186.        }
  187.    }
  188.  
  189.    srand(time(NULL));
  190.  
  191.    for(k=1;k<=5;k++){ // Distribuye los barcos
  192.        imprimir();
  193.  
  194.        cuadro();
  195.  
  196.        i=1+rand()%5; // Distribuye los barcos oponentes
  197.        j=1+rand()%9;
  198.        while(oponente[i][j]==1){
  199.            i=1+rand()%5; j=1+rand()%9;
  200.        }
  201.                oponente[i][j]=1; // La posicion de los barcos valdra 1
  202.  
  203.            gotoxy(2,17); printf("dame las cordenadas de tus 5 barcos x%d=   y%d=   \n\n\n",k,k);
  204.            gotoxy(41,17); scanf("%d",&opcion2);
  205.            gotoxy(47,17); scanf("%d",&opcion1);
  206.  
  207.        while(opcion2<1 || opcion2>9){
  208.                printf("%d",jugador[i][j]);
  209.            printf("    Escoje un valor valido ( 1 a 9 )\n\tX%d", k);
  210.            borrar(41,17);
  211.            cuadro();
  212.             gotoxy(41,17); scanf("%d", &opcion2);
  213.        }
  214.  
  215.  
  216.            gotoxy(2,17); printf("dame las cordenadas de tus 5 barcos x%d=   y%d=   \n\n\n",k,k);
  217.  
  218.  
  219.        while(opcion1<1 || opcion1>5){
  220.  
  221.            printf("\n    Escoje un valor valido ( 1 a 5 )\n\tY%d", k);
  222.            borrar(47,17);
  223.            gotoxy(47,17); scanf("%d", &opcion1);
  224.  
  225.        }
  226.  
  227.  
  228.  
  229. printf("%d",jugador[i][j]);
  230.  
  231.        if(jugador[opcion1][opcion2]==1){
  232.            gotoxy(2,18);  printf("Ese valor ya existe...\n");
  233.            system("pause");
  234.            k=k-1;
  235.        }
  236.        jugador[opcion1][opcion2]=1;
  237.  
  238.        system("cls");
  239.  
  240.  
  241.    }
  242.        imprimir();
  243.  
  244.        cuadro();
  245.  
  246.        printf("\n\n\n");
  247. }
  248.  
  249.  
esto es lo que llevo copila esto, yo le puse un printf cuando vaya a imprimir la O para que vea que se comvierte en 1 lo unico que necesito saber es que me expliquen en que linea hace la trasformacion o separacion.
se que primero se iguala el oponente y el jugador a 0 pero no se en que parte se comvierte en 1 para poner la O

En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayudemne solo a entender un código por favor
« Respuesta #3 en: 1 Junio 2018, 20:45 pm »

En la 92
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: Ayudemne solo a entender un código por favor
« Respuesta #4 en: 5 Junio 2018, 17:19 pm »

Inicialmente rellenan los tableros con 0.

Luego, en el método iniciar() en la línea 201 se hace esto:

Citar
Código:
oponente[i][j]=1; // La posicion de los barcos valdra 1

en la 160 también:

Citar
Código:
jugador[opcion1][opcion2]=1;

en la 236 también:

Citar
Código:
jugador[opcion1][opcion2]=1;

Y... viendo el pastebin que referencias hay más código del que muestra, en ese código en el método main() en la línea 226 está:

Código:
oponente[opcion1][opcion2]=2;

y en la 283:

Código:
jugador[opcion1][opcion2]=2;

Revisa bien el código de pastebin que pusiste para que entiendas mejor. Este método main() es el que se encarga del flujo del juego. Por lo tanto es el encargado de cambiar los valores del tablero cuando se ejecute una acción.

Salu2s
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con codigo para entender
Ingeniería Inversa
DragonsWP 1 2,711 Último mensaje 31 Diciembre 2009, 09:47 am
por MCKSys Argentina
ayuda para entender código en c++
Programación C/C++
migcv 5 4,143 Último mensaje 8 Noviembre 2012, 15:38 pm
por rir3760
Me ayudan a entender esta información por favor?
Seguridad
thundercats 1 1,938 Último mensaje 11 Agosto 2013, 22:23 pm
por darkangel2125
(Ayuda) Entender un código
Programación C/C++
Seyro97 2 2,208 Último mensaje 6 Diciembre 2014, 17:05 pm
por Seyro97
Necesito que me ayuden a entender un código
Programación C/C++
Antoniio 0 1,287 Último mensaje 18 Noviembre 2015, 22:48 pm
por Antoniio
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines