Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - mathias_vg

#21
Buenas, solo pretendo que me ayuden con el punto cuatro del menu ya que no me almacena los menu sino que solo me imprime los ultimos, es decir me borra los anteriores. Recurro a ustedes ya que mi profesor solamente dio 5 clases en todo el semestre y nos mato (al menos a mi) con este obligatorio. mi proposito es aprender a  superar esta dificultad con la que estoy trancado. les dejo el codigo un poco mas resumido.

Muchas gracias.


Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>
#define DIM 16 /*Constante utilizada para definir la maxima dimension del tablero*/
//#define tam_string 40 /*Constante para la cantidad de digitos de los Nombres*/
//#define ced_string 8

struct partidas1{
        char nom_jug[40];
char ced_jug[8];
    }partidas1[500];
struct partidas2{
char nom_jug[40];
char ced_jug[8];
    }partidas2[500];
    int partida, aux2;
    struct partidas
{
  char nom_jug[40];
  char ced_jug[8];
};

struct partidas partidas[10];
   
char nom_jug[40];
char ced_jug[8];


/*PROCEDIMIENTOS Y FUNCIONES*/

void inicializar_tablero(char tablero[][DIM],int);
int juegan_O_(char tabla[][DIM],int,int);
int juegan_X_(char tablero[][DIM],int,int);
int cuatro_en_linea(char tablero[][DIM],int);
int limpiar(char nom_jug[]);


int inicia1 = 0;
int inicia2 = 0, jugar=1;
int main()
{
    char tablero[DIM][DIM];
    int x,opcion,victoria=1,nombre1,nombre2,contador=1,correcta=1,aux=1,sumador = 0;
    do
{
system("cls");
    printf("\n\n\n     JUEGO CUATRO EN LINEA\n\n\n\n\n");
    printf("  1) Ingresar datos del primer jugador\n\n");
    printf("  2) Ingresar datos del segundo jugador\n\n");
    printf("  3) Jugar\n\n");
    printf("  4) Listar todos los juegos realizados\n\n");
    printf("  5) Salir\n\n\n");
    if (contador%2==0)
    {
    printf("  Error: Antes de jugar debe ingresar los datos de los dos jugadores. \n\n\n");
    printf("  REINGRESE SU OPCION: ");
contador--;
    }
    if (correcta%2==0)
    {
    printf("  Opcion incorrecta \n\n\n");
    printf("  REINGRESE SU OPCION: ");
    correcta--;
    }
    if (aux%2==0)
    {
    printf("  No se han realizado juegos. \n\n\n");
    aux--;
    }
   
    scanf("%d",&opcion);
    system("cls");
    switch (opcion)
    {
    case 1:  /*OPCION 1 DEL MENU.*/
    {
    limpiar(nom_jug);
    limpiar(ced_jug);
    while(getchar() != '\n');
    printf("\n Ingrese su Nombre: ");
    do
    {
    scanf("%39[^\n]",partidas1[inicia1].nom_jug);
    if (partidas1[inicia1].nom_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente Nombre: ");
    }
else
{

for (nombre1=0;nombre1<40;nombre1++)
    {
    nom_jug[nombre1];
    }
}while(getchar() != '\n');
system("cls");
        }while(partidas1[inicia1].nom_jug[0]=='\0');
    printf("\n Ingrese su cedula: ");
    do
    {
    scanf("%8[^\n]",partidas1[inicia1].ced_jug);   
    if (partidas1[inicia1].ced_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente su cedula: ");
    }
else
{

for (nombre1=0;nombre1<8;nombre1++)
    {
    ced_jug[nombre1];
    }
        system("cls");
    printf("\n");
}while(getchar() != '\n');
        }while(partidas1[inicia1].ced_jug[0]=='\0');
        printf("\n    DATOS INGRESADOS\n");
        printf("\n\n   Nombre ingresado: %s",partidas1[inicia1].nom_jug);
    printf("\n\n   Cedula ingresada: %s",partidas1[inicia1].ced_jug);
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n presione ENTER para volver al menu");
    partidas1[inicia1+1]=partidas1[inicia1];
    jugar++;
    break;
     }
    case 2:  /*OPCION 2 DEL MENU*/
    {
limpiar(nom_jug);
    limpiar(ced_jug);
    while(getchar() != '\n');
    printf("\n Ingrese su Nombre: ");
    do
    {
    scanf("%39[^\n]",partidas2[inicia2].nom_jug);
    if (partidas2[inicia2].nom_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente Nombre: ");
    }
else
{                       

for (nombre2=0;nombre2<40;nombre2++)
    {
    nom_jug[nombre2];
    }
}while(getchar() != '\n');
system("cls");
        }while(partidas2[inicia2].nom_jug[0]=='\0');
    printf("\n Ingrese su cedula: ");
    do
    {
    scanf("%8[^\n]",partidas2[inicia2].ced_jug);   
do

    if (partidas2[inicia2].ced_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente su cedula: ");
    }
else
{

for (nombre2=0;nombre2<8;nombre2++)
    {
    ced_jug[nombre2];
    }
    system("cls");
    printf("\n");
}while(getchar() != '\n');
        }while(partidas2[inicia2].ced_jug[0]=='\0');
       
        printf("\n    DATOS INGRESADOS\n");
        printf("\n\n   Nombre ingresado: %s",partidas2[inicia2].nom_jug);
    printf("\n\n   Cedula ingresada: %s",partidas2[inicia2].ced_jug);
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n presione ENTER para volver al menu");
    partidas2[inicia2+1]=partidas2[inicia2];
    jugar++;
    break;
    }
    case 3: /*OPCION 3 DEL MENU*/
    {
    if (jugar<3)
    {
    contador++;

    }
    else 
    {
        cuatro_en_linea(tablero,opcion);
       
                   
        sumador++;
        }
        break;
    }
    case 4: /*OPCION 4 DEL MENU*/
    {
    if (sumador<1)
    {
    aux++;
    }
    else

    {
             partida=1;
             aux2=0; 
             for(partida;partida<sumador+1;partida++){
             printf("Partida %d\n",partida);
             printf("\n");
             printf("Jugador 1: %s\n",partidas1[aux2].nom_jug);
             printf("Cedula:    %s\n",partidas1[aux2].ced_jug);
             printf("Jugador 2: %s\n",partidas2[aux2].nom_jug);
             printf("Cedula:    %s\n",partidas2[aux2].ced_jug);
             aux2++;
             printf("\n");
}
    }
    system("PAUSE");
    break;
    }
    case 5: /*OPCION 5 DEL MENU*/
    {
    return printf("\n\n  SALIENDO\n\n");
    break;
    default:
    correcta++;
    break;
    }
    }while (getchar()!='\n');
    }while (victoria==1);
}
#22
Buenas, solo pretendo que me ayuden con el punto cuatro del menu ya que no me almacena los menu sino que solo me imprime los ultimos, es decir me borra los anteriores. Recurro a ustedes ya que mi profesor solamente dio 5 clases en todo el semestre y nos mato (al menos a mi) con este obligatorio. mi proposito es aprender a  superar esta dificultad con la que estoy trancado. les dejo el codigo un poco mas resumido.

Muchas gracias.

Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>
#define DIM 16 /*Constante utilizada para definir la maxima dimension del tablero*/
//#define tam_string 40 /*Constante para la cantidad de digitos de los Nombres*/
//#define ced_string 8

struct partidas1{
        char nom_jug[40];
char ced_jug[8];
    }partidas1[500];
struct partidas2{
char nom_jug[40];
char ced_jug[8];
    }partidas2[500];
    int partida, aux2;
    struct partidas
{
  char nom_jug[40];
  char ced_jug[8];
};

struct partidas partidas[10];
   
char nom_jug[40];
char ced_jug[8];


/*PROCEDIMIENTOS Y FUNCIONES*/

void inicializar_tablero(char tablero[][DIM],int);
int juegan_O_(char tabla[][DIM],int,int);
int juegan_X_(char tablero[][DIM],int,int);
int cuatro_en_linea(char tablero[][DIM],int);
int limpiar(char nom_jug[]);


int inicia1 = 0;
int inicia2 = 0, jugar=1;
int main()
{
    char tablero[DIM][DIM];
    int x,opcion,victoria=1,nombre1,nombre2,contador=1,correcta=1,aux=1,sumador = 0;
    do
{
system("cls");
    printf("\n\n\n     JUEGO CUATRO EN LINEA\n\n\n\n\n");
    printf("  1) Ingresar datos del primer jugador\n\n");
    printf("  2) Ingresar datos del segundo jugador\n\n");
    printf("  3) Jugar\n\n");
    printf("  4) Listar todos los juegos realizados\n\n");
    printf("  5) Salir\n\n\n");
    if (contador%2==0)
    {
    printf("  Error: Antes de jugar debe ingresar los datos de los dos jugadores. \n\n\n");
    printf("  REINGRESE SU OPCION: ");
contador--;
    }
    if (correcta%2==0)
    {
    printf("  Opcion incorrecta \n\n\n");
    printf("  REINGRESE SU OPCION: ");
    correcta--;
    }
    if (aux%2==0)
    {
    printf("  No se han realizado juegos. \n\n\n");
    aux--;
    }
   
    scanf("%d",&opcion);
    system("cls");
    switch (opcion)
    {
    case 1:  /*OPCION 1 DEL MENU*/
    {
    limpiar(nom_jug);
    limpiar(ced_jug);
    while(getchar() != '\n');
    printf("\n Ingrese su Nombre: ");
    do
    {
    scanf("%39[^\n]",partidas1[inicia1].nom_jug);
    if (partidas1[inicia1].nom_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente Nombre: ");
    }
else
{

for (nombre1=0;nombre1<40;nombre1++)
    {
    nom_jug[nombre1];
    }
}while(getchar() != '\n');
system("cls");
        }while(partidas1[inicia1].nom_jug[0]=='\0');
    printf("\n Ingrese su cedula: ");
    do
    {
    scanf("%8[^\n]",partidas1[inicia1].ced_jug);   
    if (partidas1[inicia1].ced_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente su cedula: ");
    }
else
{

for (nombre1=0;nombre1<8;nombre1++)
    {
    ced_jug[nombre1];
    }
        system("cls");
    printf("\n");
}while(getchar() != '\n');
        }while(partidas1[inicia1].ced_jug[0]=='\0');
        printf("\n    DATOS INGRESADOS\n");
        printf("\n\n   Nombre ingresado: %s",partidas1[inicia1].nom_jug);
    printf("\n\n   Cedula ingresada: %s",partidas1[inicia1].ced_jug);
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n presione ENTER para volver al menu");
    partidas1[inicia1+1]=partidas1[inicia1];
    jugar++;
    break;
     }
    case 2:  /*OPCION 2 DEL MENU*/
    {
limpiar(nom_jug);
    limpiar(ced_jug);
    while(getchar() != '\n');
    printf("\n Ingrese su Nombre: ");
    do
    {
    scanf("%39[^\n]",partidas2[inicia2].nom_jug);
    if (partidas2[inicia2].nom_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente Nombre: ");
    }
else
{                       

for (nombre2=0;nombre2<40;nombre2++)
    {
    nom_jug[nombre2];
    }
}while(getchar() != '\n');
system("cls");
        }while(partidas2[inicia2].nom_jug[0]=='\0');
    printf("\n Ingrese su cedula: ");
    do
    {
    scanf("%8[^\n]",partidas2[inicia2].ced_jug);   
do

    if (partidas2[inicia2].ced_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente su cedula: ");
    }
else
{

for (nombre2=0;nombre2<8;nombre2++)
    {
    ced_jug[nombre2];
    }
    system("cls");
    printf("\n");
}while(getchar() != '\n');
        }while(partidas2[inicia2].ced_jug[0]=='\0');
       
        printf("\n    DATOS INGRESADOS\n");
        printf("\n\n   Nombre ingresado: %s",partidas2[inicia2].nom_jug);
    printf("\n\n   Cedula ingresada: %s",partidas2[inicia2].ced_jug);
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n presione ENTER para volver al menu");
    partidas2[inicia2+1]=partidas2[inicia2];
    jugar++;
    break;
    }
    case 3: /*OPCION 3 DEL MENU*/
    {
    if (jugar<3)
    {
    contador++;

    }
    else 
    {
        cuatro_en_linea(tablero,opcion);
       
                   
        sumador++;
        }
        break;
    }
    case 4: /*OPCION 4 DEL MENU*/
    {
    if (sumador<1)
    {
    aux++;
    }
    else

    {
             partida=1;
             aux2=0; 
             for(partida;partida<sumador+1;partida++){
             printf("Partida %d\n",partida);
             printf("\n");
             printf("Jugador 1: %s\n",partidas1[aux2].nom_jug);
             printf("Cedula:    %s\n",partidas1[aux2].ced_jug);
             printf("Jugador 2: %s\n",partidas2[aux2].nom_jug);
             printf("Cedula:    %s\n",partidas2[aux2].ced_jug);
             aux2++;
             printf("\n");
}
    }
    system("PAUSE");
    break;
    }
    case 5: /*OPCION 5 DEL MENU*/
    {
    return printf("\n\n  SALIENDO\n\n");
    break;
    default:
    correcta++;
    break;
    }
    }while (getchar()!='\n');
    }while (victoria==1);
}
#23
Buenas como va,

Mi problema es el siguiente. en el juego conecta 4 me piden que haga un menu donde una de las opciones es que registre todos los juegos realizados (Nombre y cedula de cada jugador). El problema es que a medida que voy eligiendo un jugador nuevo me borra el anterior. Me pueden ayudar con esto?  Les dejo el codigo

Código (cpp) [Seleccionar]


    //* JUEGO CONECTA 4*//



/*Librerias utilizadas*/
#include <stdlib.h>
#include <stdio.h>
#define DIM 16 /*Constante utilizada para definir la maxima dimension del tablero*/


struct partidas1{
        char nom_jug[40];
char ced_jug[8];
    }partidas1[500];
struct partidas2{
char nom_jug[40];
char ced_jug[8];
    }partidas2[500];
    struct ganadores{
        char jganador;
    }ganadores[1000];
    int partida, aux2,aux3;
   
char nom_jug[40];
char ced_jug[8];


/*PROCEDIMIENTOS Y FUNCIONES*/

void inicializar_tablero(char tablero[][DIM],int);
int juegan_O_(char tabla[][DIM],int,int);
int juegan_X_(char tablero[][DIM],int,int);
int cuatro_en_linea(char tablero[][DIM],int);
int limpiar(char nom_jug[]);


int inicia1 = 0;
int inicia2 = 0, jugar=1;
int main()
{
    char tablero[DIM][DIM];
    int x,opcion,victoria=1,nombre1,nombre2,contador=1,correcta=1,aux=1,sumador = 0;
    do
{
system("cls");
    printf("\n\n\n     JUEGO CUATRO EN LINEA\n\n\n\n\n");
    printf("  1) Ingresar datos del primer jugador\n\n");
    printf("  2) Ingresar datos del segundo jugador\n\n");
    printf("  3) Jugar\n\n");
    printf("  4) Listar todos los juegos realizados\n\n");
    printf("  5) Salir\n\n\n");
    if (contador%2==0)
    {
    printf("  Error: Antes de jugar debe ingresar los datos de los dos jugadores. \n\n\n");
    printf("  REINGRESE SU OPCION: ");
contador--;
    }
    if (correcta%2==0)
    {
    printf("  Opcion incorrecta \n\n\n");
    printf("  REINGRESE SU OPCION: ");
    correcta--;
    }
    if (aux%2==0)
    {
    printf("  No se han realizado juegos. \n\n\n");
    aux--;
    }
   
    scanf("%d",&opcion);
    system("cls");
    switch (opcion)
    {
    case 1:  /*OPCION 1 DEL MENU*/
    {
    limpiar(nom_jug);
    limpiar(ced_jug);
    while(getchar() != '\n');
    printf("\n Ingrese su Nombre: ");
    do
    {
    scanf("%39[^\n]",partidas1[inicia1].nom_jug);
    if (partidas1[inicia1].nom_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente Nombre: ");
    }
else
{

for (nombre1=0;nombre1<40;nombre1++)
    {
    nom_jug[nombre1];
    }
}while(getchar() != '\n');
system("cls");
        }while(partidas1[inicia1].nom_jug[0]=='\0');
    printf("\n Ingrese su cedula: ");
    do
    {
    scanf("%8[^\n]",partidas1[inicia1].ced_jug);   
    if (partidas1[inicia1].ced_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente su cedula: ");
    }
else
{

for (nombre1=0;nombre1<8;nombre1++)
    {
    ced_jug[nombre1];
    }
        system("cls");
    printf("\n");
}while(getchar() != '\n');
        }while(partidas1[inicia1].ced_jug[0]=='\0');
        printf("\n    DATOS INGRESADOS\n");
        printf("\n\n   Nombre ingresado: %s",partidas1[inicia1].nom_jug);
    printf("\n\n   Cedula ingresada: %s",partidas1[inicia1].ced_jug);
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n presione ENTER para volver al menu");
    partidas1[inicia1+1]=partidas1[inicia1];
    jugar++;
    break;
     }
    case 2:  /*OPCION 2 DEL MENU*/
    {
limpiar(nom_jug);
    limpiar(ced_jug);
    while(getchar() != '\n');
    printf("\n Ingrese su Nombre: ");
    do
    {
    scanf("%39[^\n]",partidas2[inicia2].nom_jug);
    if (partidas2[inicia2].nom_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente Nombre: ");
    }
else
{                       

for (nombre2=0;nombre2<40;nombre2++)
    {
    nom_jug[nombre2];
    }
}while(getchar() != '\n');
system("cls");
        }while(partidas2[inicia2].nom_jug[0]=='\0');
    printf("\n Ingrese su cedula: ");
    do
    {
    scanf("%8[^\n]",partidas2[inicia2].ced_jug);   
do

    if (partidas2[inicia2].ced_jug[0]=='\0')
    {
    printf(" ERROR\n");
    printf(" Ingrese nuevamente su cedula: ");
    }
else
{

for (nombre2=0;nombre2<8;nombre2++)
    {
    ced_jug[nombre2];
    }
    system("cls");
    printf("\n");
}while(getchar() != '\n');
        }while(partidas2[inicia2].ced_jug[0]=='\0');
       
        printf("\n    DATOS INGRESADOS\n");
        printf("\n\n   Nombre ingresado: %s",partidas2[inicia2].nom_jug);
    printf("\n\n   Cedula ingresada: %s",partidas2[inicia2].ced_jug);
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n presione ENTER para volver al menu");
    partidas2[inicia2+1]=partidas2[inicia2];
    jugar++;
    break;
    }
    case 3: /*OPCION 3 DEL MENU*/
    {
    if (jugar<3)
    {
    contador++;

    }
    else 
    {
        cuatro_en_linea(tablero,opcion);
       
                   
        sumador++;
        }
        break;
    }
    case 4: /*OPCION 4 DEL MENU*/
    {
    if (sumador<1)
    {
    aux++;
    }
    else

    {
             partida=1;
             aux2=0;
aux3=0;   
             for(partida;partida<sumador+1;partida++){
             printf("Partida %d\n",partida);
             printf("\n");
             printf("Jugador 1: %s\n",partidas1[inicia1].nom_jug);
             printf("Cedula:    %s\n",partidas1[inicia1].ced_jug);
             printf("Jugador 2: %s\n",partidas2[inicia2].nom_jug);
             printf("Cedula:    %s\n",partidas2[inicia2].ced_jug);
             aux2++;
             printf("\n");
}
    }
    system("PAUSE");
    break;
    }
    case 5: /*OPCION 5 DEL MENU*/
    {
    return printf("\n\n  SALIENDO\n\n");
    break;
    default:
    correcta++;
    break;
    }
    }while (getchar()!='\n');
    }while (victoria==1);
}
int cuatro_en_linea(char tablero[DIM][DIM],int x)
{
   
    /*Defino distintas variables que voy a utilizar a lo largo del programa*/
    int n=0,i,j,resto=1,k=0,jugador,partida,victoria=0;
    char d;
    printf("\n\nIngresa la dimension del tablero de juego(4-15): ");
    /*Analizamos si la dimension del tablero ingresada es valida*/
    do
    {
        scanf (" %d",&x);
        system("cls");
        if (x<4 || x>15)
        {
            printf("\nOpcion no valida. Ingresa la dimension (4-15): ");
        }   while (getchar()!='\n');
    } while (x<4 || x>15);
    system("cls");
    /*Elegimos judagor*/
    printf("\n ELIJA JUGADOR\n\n\n");
    printf("\n\n  1) JUGADOR 1 (X)\n");
    printf("\n\n  2) JUGADOR 2 (O)\n");
    do
    {
    scanf("%d",&jugador);
    if ((jugador!=1) && (jugador!=2))
    {
        printf("\n Error: Los jugadores posibles son 1 y 2 ");
    }
    }while ((getchar()!='\n') || ((jugador!=1) && (jugador!=2)));
    do
    {
        system("cls");
        printf("\n\n\n\n");
        inicializar_tablero(tablero,x);
        while ((resto<=(x*x)) && (victoria!=1))
        {
            if (jugador==1)
            {
                jugador++;
               juegan_X_(tablero,x,n);
               /* Evaluo si el jugador 1 (X) gana*/
               
               for (i=1;i<=x;i++)
           {
    for (j=1;j<=x;j++)
{
                        /*Verifico si hay cuatro en linea horizontal para Jugador 1*/
if ((tablero[i][j]=='X') && ((tablero[i][j+1])=='X') && ((tablero[i][j+2])=='X') && ((tablero[i][j+3])=='X'))
{
victoria = 1;
}       
/*Verifico si hay cuatro en linea vertical para Jugador 1*/
else if ((tablero[i][j]=='X') && ((tablero[i+1][j])=='X') && ((tablero[i+2][j])=='X') && ((tablero[i+3][j])=='X'))
{
victoria = 1;
}
/*Verifico si hay cuatro en linea en diagonal ascendiente para Jugador 1*/
else if ((tablero[i][j]=='X') && ((tablero[i+1][j-1])=='X') && ((tablero[i+2][j-2])=='X') && ((tablero[i+3][j-3])=='X'))
{
victoria = 1;
}
/*Verifico si hay cuatro en linea en diagonal descendiente para Jugador 1*/
else if ((tablero[i][j]=='X') && ((tablero[i+1][j+1])=='X') && ((tablero[i+2][j+2])=='X') && ((tablero[i+3][j+3])=='X'))
{
victoria = 1;
}
}
   }
               if (victoria == 1)
               {
                printf("\n\n FELICITACIONES %s",partidas1[inicia1].nom_jug);
                printf("!!!\n\n  Has ganado la partida.\n\n\n\n\n\n");
                if(partidas1[inicia1].nom_jug[40]==partidas1[inicia1+1].nom_jug[40]){
                        partidas1[inicia1+2]=partidas1[inicia1+1];
                        inicia1++;
                    }
               }
               else
               {
                resto++;
               }
            }
            else if (jugador == 2)
            {
                jugador--;
juegan_O_(tablero,x,n);
/* Evaluo si el jugador 2 (O) gana*/

for (i=1;i<=x;i++)
           {
    for (j=1;j<=x;j++)
{
                        /*Verifico si hay cuatro en linea horizontal para Jugador 1*/
if ((tablero[i][j]=='O') && ((tablero[i][j+1])=='O') && ((tablero[i][j+2])=='O') && ((tablero[i][j+3])=='O'))
{
victoria = 1;
}
/*Verifico si hay cuatro en linea vertical para Jugador 1*/
else if ((tablero[i][j]=='O') && ((tablero[i+1][j])=='O') && ((tablero[i+2][j])=='O') && ((tablero[i+3][j])=='O'))
{
victoria = 1;
}
/*Verifico si hay cuatro en linea en diagonal ascendiente para Jugador 2*/
else if ((tablero[i][j]=='O') && ((tablero[i+1][j-1])=='O') && ((tablero[i+2][j-2])=='O') && ((tablero[i+3][j-3])=='O'))
{
victoria = 1;
}
/*Verifico si hay cuatro en linea en diagonal descendiente para Jugador 2*/
else if ((tablero[i][j]=='O') && ((tablero[i+1][j+1])=='O') && ((tablero[i+2][j+2])=='O') && ((tablero[i+3][j+3])=='O'))
{
victoria = 1;
}
}
   }
               if (victoria == 1)
               {
                printf("\n\n FELICITACIONES %s",partidas2[inicia2].nom_jug);
                printf("!!!\n\n  Has ganado la partida.\n\n\n\n\n\n");
                if(partidas2[inicia2].nom_jug[40]==partidas2[inicia2+1].nom_jug[40]){
                        partidas2[inicia2+2]=partidas2[inicia2+1];
                        inicia2++;
                    }
               }
               else
               {   
                  resto++;
               }
            }
           
            /*Si el tablero se lleno de fichas y no hay cuatro en linea
            el partido termina en empate*/
           
            if (resto > (x*x) && (victoria!=1))
        {
          printf("\n\n EMPATE\n\n");
            }
        }
    }while ((resto<=(x*x)) && (victoria!=1));
    system("PAUSE");
    resto = 1;
    victoria = 0;
    system("cls");
    inicializar_tablero(tablero,x);
    system("cls");
}
/* Procedimiento para imprimir el tablero inicial*/

void inicializar_tablero(char tablero[DIM][DIM],int x)
{
int i,j;
int contador = 1;
for (i=1; i<=x; i++)
{
for (j=1;j<=x; j++)
{
            printf("  ");
printf(" %c",tablero[i][j]='.');
}
printf("\n\n");

}
for (i=1;i<=x;i++)
{
        printf("   %d",contador);
        contador++;
    }
    printf("\n");
}
/*Funcion para hacer jugada para el jugador 1*/

int juegan_X_(char tablero[DIM][DIM],int x,int n)
{
int i,j,k,contador=1;
do
    {
        printf("\n\n Juega %s: \n",partidas1[inicia1].nom_jug);
                    scanf ("%d",&n);
        if (n<1 || n>x)
        {
            printf("Error: las columnas posibles son de 1 a %d",x);
            while (getchar()!='\n');
        }   
else if (tablero[1][n]!='.')
{
printf("\nError: la columna ya esta llena.\n ");
      }
    }while((n<1 || n>x) || (tablero[1][n]!='.'));
for (k=x;k>=1;k--)
    {
            if (tablero[k][n]!='.')
            {
                continue;
            }
            else
            {
                tablero[k][n]='X';
                break;
            }
    }
       system("cls"); 
   printf("\n Ultima jugada X: Columna %d\n",n);     
    printf("\n\n");
    for (i=1;i<=x;i++)
    {
        for (j=1;j<=x;j++)
        {
            printf("  ");
            printf (" %c",tablero[i][j]);
           
        }
        printf("\n\n");
    }
    for (i=1;i<=x;i++)
{
        printf("   %d",contador);
        contador++;
    }
    printf("\n");
}
/*Funcion para hacer jugada para el jugador 2*/

int juegan_O_(char tablero[DIM][DIM],int x,int n)
{
int i,j,k,contador=1;
do
    {
        printf("\n\n Juega %s: ",partidas2[inicia2].nom_jug);
                    scanf ("%d",&n);
        if (n<1 || n>x)
        {
            printf("Error: las columnas posibles son de 1 a %d",x);
            while (getchar()!='\n');
        }   
else if (tablero[1][n]!='.')
{
printf("\nError: la columna ya esta llena.\n ");
      }
    }while((n<1 || n>x) || (tablero[1][n]!='.'));
for (k=x;k>=1;k--)
    {
            if (tablero[k][n]!='.')
            {
                continue;
            }
            else
            {
                tablero[k][n]='O';
                break;
            }
    }
    system("cls");     
printf("\n Ultima jugada O: Columna %d\n",n);   
    printf("\n\n");
    for (i=1;i<=x;i++)
    {
        for (j=1;j<=x;j++)
        {
            printf("  ");
            printf (" %c",tablero[i][j]);
           
        }
        printf("\n\n");
    }
    for (i=1;i<=x;i++)
{
        printf("   %d",contador);
        contador++;
    }
    printf("\n");
}
int limpiar(char nom_jug[40])
{

int t;
for (t=0; t<40; t++)
    {
    nom_jug[t]='\0';
    }
}
#24
Muchas gracias por su pronta ayuda, ahora tengo lo siguiente, en el codigo que detallo a continuacion me deja ingresar el nombre pero no la cedula, alguien sabe porque es?

Saludos

Código (cpp) [Seleccionar]
#include <stdio.h>
#define tam_string 20
#define ced_string 22
main()
{
char arre[tam_string];
char arreglo[ced_string];
int t=0,j=0;


for (t=0; t<=tam_string; t++)
    {
    arre[t]=' ';
    }
        printf("Ingrese Nombre: ");
    scanf("%19[^\n]", arre);
    printf("Nombre ingresado: ");
    for (t=0;t<tam_string;t++)
    {
    printf("%c",arre[t]);
    }
   
   
    printf("\n");
   
   
       
    for (j=0; j<=ced_string; j++)
    {
    arreglo[j]=' ';
    }
    printf("Ingrese su cedula: ");
    scanf("%21[^\n]", arreglo);
    printf("Cedula ingresada: ");
    for (j=0;j<ced_string;j++)
    {
    printf("%c",arreglo[j]);
    }
}
#25
Buenas que tal!!!
Les cuento realize un codigo para poder ingresar algunos datos pero cuando ingreso algo que tenga dos palabras separadas por un espacio solo me toma la primera, es decir no me toma el espacio como caracter. Necesito si me pueden ayudar a corregir el codigo, y asi poder imprimir dos palabras por un espacio.

Desde ya muchas gracias!


Código (cpp) [Seleccionar]
#include <stdio.h>
#define tam_string 20

main()
{
char arre[tam_string];
int t;

for (t=0; t<=tam_string; t++)
    {
    arre[t]=32;
    }
   
printf("ingrese: ");
scanf("%s",arre);

    for(t=0; t<tam_string; t++)
        {
        printf("%c",arre[t]);
        }
   
}
#26
Gracias leosansan, ahora, te pregunto, hay alguna manera de hacerlo sin tener que utilizar la funcion getchar? ya que no la dimos en clase y no se si la puedo utilizar.
algo como transformar el caracter de entrada en numero y asi que me marque el error?

Saludos
#27
Me podrian decir porque entra en bucle cuando elijo un caracter? Que es lo que tengo que modificar?

Muchas gracias
#28
Buenas! finalmente luego de unas cuantas horas podido hacer el juego. Lo posteo abajo para que me puedan corregir algunas cosas las cuales yo no me doy cuenta debido a que soy bastante nuevo en esto.

leosansan muchas gracias, me ha sido de gran ayuda tus consejos.


#include <stdio.h>
#include <stdlib.h>
#define DIM 16
int inicializar_tablero(char tablero[][DIM],int);
int juegan_O_(char tabla[][DIM],int,int);
int juegan_X_(char tablero[][DIM],int,int);
int main()
{
    int n=0,i,j,x,resto=1,k=0,jugador,partida,victoria=0;
    char d;
    printf("\n\n\n     JUEGO CONECTA CUATRO\n\n\n\n\n\n\n");
    printf("       Nueva partida (S/N): ");
    do
    {
        scanf("%c",&d);
        system("cls");
        if (d=='n' || d=='N')
        {
            return 1;
        }
        if (d!='s' && d!='S')
            printf("\nOpcion incorrecta. Elija: s / n  ");
    }while (d!='s' && d!='S');
    volver:
    printf("\n\nIngresa la dimension del tablero de juego(4-15): ");
    do
    {
        scanf (" %d",&x);
        system("cls");
        if (x<4 || x>15)
            printf("\nOpcion no valida. Ingresa la dimension (4-15): ");
    } while (x<4 || x>15);
    system("cls");
    char tablero[DIM][DIM];
    printf("\n ELIJA JUGADOR\n\n\n");
    printf("\n\n  1) JUGADOR 1 (X)\n");
    printf("\n\n  2) JUGADOR 2 (O)\n");
    elegir:
    scanf("%d",&jugador);
    system("cls");
    if ((jugador!=1) && (jugador!=2))
    {
        printf("\nError: Los jugadores posibles son 1 y 2 ");
        goto elegir;
    }
    do
    {
        inicializar_tablero(tablero,x);
        while ((resto<=(x*x)) && (victoria!=1))
        {
            if (jugador==1)
            {
                jugador++;
               juegan_X_(tablero,x,n);
               for (i=1;i<=x;i++)
           {
    for (j=1;j<=x;j++)
{
if ((tablero[i][j]=='X') && ((tablero[i][j+1])=='X') && ((tablero[i][j+2])=='X') && ((tablero[i][j+3])=='X'))
{
victoria = 1;
}
else if ((tablero[i][j]=='X') && ((tablero[i+1][j])=='X') && ((tablero[i+2][j])=='X') && ((tablero[i+3][j])=='X'))
{
victoria = 1;
}
else if ((tablero[i][j]=='X') && ((tablero[i+1][j-1])=='X') && ((tablero[i+2][j-2])=='X') && ((tablero[i+3][j-3])=='X'))
{
victoria = 1;
}
else if ((tablero[i][j]=='X') && ((tablero[i+1][j+1])=='X') && ((tablero[i+2][j+2])=='X') && ((tablero[i+3][j+3])=='X'))
{
victoria = 1;
}
}
   }
               if (victoria == 1)
               {
                printf("\nJUGADOR 1 GANA!!!\n");
               }
               else
               {
                resto++;
               }
            }
            else if (jugador == 2)
            {
                jugador--;
juegan_O_(tablero,x,n);
for (i=1;i<=x;i++)
           {
    for (j=1;j<=x;j++)
{
if ((tablero[i][j]=='O') && ((tablero[i][j+1])=='O') && ((tablero[i][j+2])=='O') && ((tablero[i][j+3])=='O'))
{
victoria = 1;
}
else if ((tablero[i][j]=='O') && ((tablero[i+1][j])=='O') && ((tablero[i+2][j])=='O') && ((tablero[i+3][j])=='O'))
{
victoria = 1;
}
else if ((tablero[i][j]=='O') && ((tablero[i+1][j-1])=='O') && ((tablero[i+2][j-2])=='O') && ((tablero[i+3][j-3])=='O'))
{
victoria = 1;
}
else if ((tablero[i][j]=='O') && ((tablero[i+1][j+1])=='O') && ((tablero[i+2][j+2])=='O') && ((tablero[i+3][j+3])=='O'))
{
victoria = 1;
}
}
   }
               if (victoria == 1)
               {
                printf("\nJUGADOR 2 GANA!!!\n");
               }
               else
               {   
                  resto++;
               }
            }
        if (resto > (x*x) && (victoria!=1))
        {
          printf("\n\nEMPATE\n\n");
            }
        }
    }while ((resto<=(x*x)) && (victoria!=1));
    resto = 1;
    victoria = 0;
    printf("\nPara jugar nuevamente presione 1: ");
    scanf("%d",&partida);
    system("cls");
    if (partida == 1)
    {
    goto volver;
    }
    system("PAUSE");
}
int inicializar_tablero(char tablero[DIM][DIM],int x)
{
int i,j;
for (i=1; i<=x; i++)
{
for (j=1;j<=x; j++)
{
printf("%c ",tablero[i][j]='.');
}
printf("\n");
}

}
int juegan_X_(char tablero[DIM][DIM],int x,int n)
{
int i,j,k;
do
    {
        printf("\nJuega JUGADOR 1: ");
                    scanf ("%d",&n);
        if (n<1 || n>x)
        {
            printf("Error: las columnas posibles son de 1 a %d",x);
        }   
else if (tablero[1][n]!='.')
{
printf("\nError: la columna ya esta llena.\n ");
      }
    }while((n<1 || n>x) || (tablero[1][n]!='.'));
for (k=x;k>=1;k--)
    {
            if (tablero[k][n]!='.')
                continue;
            else
            {
                tablero[k][n]='X';
                break;
            }
    }
       system("cls"); 
   printf("\nUltima jugada X: Columna %d\n",n);     
    printf("\n");
    for (i=1;i<=x;i++)
    {
        for (j=1;j<=x;j++)
        {
            printf ("%c ",tablero[i][j]);
           
        }
        printf("\n");
    }
}
int juegan_O_(char tablero[DIM][DIM],int x,int n)
{
int i,j,k;
do
    {
        printf("\nJuega JUGADOR 2: ");
                    scanf ("%d",&n);
        if (n<1 || n>x)
        {
            printf("Error: las columnas posibles son de 1 a %d",x);
        }   
else if (tablero[1][n]!='.')
{
printf("\nError: la columna ya esta llena.\n ");
      }
    }while((n<1 || n>x) || (tablero[1][n]!='.'));
for (k=x;k>=1;k--)
    {
            if (tablero[k][n]!='.')
                continue;
            else
            {
                tablero[k][n]='O';
                break;
            }
    }
       system("cls");     
   printf("\nUltima jugada O: Columna %d\n",n);   
    printf("\n");
    for (i=1;i<=x;i++)
    {
        for (j=1;j<=x;j++)
        {
            printf ("%c ",tablero[i][j]);
           
        }
        printf("\n");
    }
}
#29
#include <stdio.h>
#include <stdlib.h>
int main()
{
   
    char d;
    bool termino = false;
    int n=0,i=0,j=0,dim1=0,dim2=0,resto=1,contador=1;
    printf("\n\n\n     JUEGO CUATRO EN LINEA\n\n\n\n\n\n\n");
    printf("       Nueva partida (S/N)  ");
    scanf("%c",&d);
    printf("\n");
    printf("       JUGADOR 1  \n");
    printf("       JUGADOR 2    ");
    switch (d)
    {
        case 'N':case 'n':
        termino = true;
        break;
         default: printf("\n\nError");
        break;
        case 'S': case's':
    printf("\n\n\n\nIngresa la dimension del tablero de juego:\n\n");
    scanf (" \n%d",&dim2);
    dim1 = dim2;
    char matriz[dim1][dim2];
    do
    {
        for (i=1;i<=dim1;i++)
        {
            for (j=1;j<=dim2;j++)
            {
                if ((matriz[i][j]!='X') && (matriz[i][j]!='O'))
                {
                    printf("%c ",'.');
                }
                else
                {
                    printf ("%c ",'X');
                }
            }
            printf("\n");
        }
        while (resto<=(dim2*dim2))
        {
        if ((resto%2)==0)
        {
        printf("\nJuega JUGADOR 1: ");
        scanf (" %d",&n);
            matriz[dim1][n]='O';
            printf ("%c\n",matriz[dim1][n]);
            for (i=1;i<=dim1;i++)
            {
            for (j=1;j<=dim2;j++)
            {
                  if ((matriz[i][j]=='X') || (matriz[i][j]=='O'))
                {
                   matriz[dim1-1][n]='O';   /* corregir */
                }
                if ((matriz[i][j]!='X') && (matriz[i][j]!='O'))
                {
                    printf("%c ",'.');
                }
                else
                {
                    if ((matriz[i][j]!='X') && (matriz[i][j]!='.'))
                    {
printf ("%c ",'O');
                    }
else
{
         printf ("%c ",'X');
                    }
                }
            }
            printf("\n");
        }
    }
        else
        {
        printf("\nJuega JUGADOR 2: ");
            scanf (" %d",&n);
            matriz[dim1][n]='X';
            printf ("%c\n",matriz[dim1][n]);
            for (i=1;i<=dim1;i++)
        {
            for (j=1;j<=dim2;j++)
            {
                 if ((matriz[i][j]=='X') || (matriz[i][j]=='O'))
                {
                   matriz[dim1-1][n]='X';   /* corregir */
                }
                if ((matriz[i][j]!='X') && (matriz[i][j]!='O'))
                {
                    printf("%c ",'.');
                }
                else
                {
                if ((matriz[i][j]!='X') && (matriz[i][j]!='.'))
                {
printf ("%c ",'O');
                }
else
{
     printf ("%c ",'X');
                    }
                }
                   
            }
            printf("\n");
        }
        }
        resto++;
        }
        printf("EMPATE\n\n");
        system("PAUSE");
     }while (1);
    return 0;
    break;
       
    }
    while (!termino);
}

#30
leosansan como estas?

Eh estado tratando de solucionar los problemas que me marcaste, mas precisamente que me imprima hacia arriba las jugadas pero no lo eh lo grado me podrias decir en que estoy fallando?

Cuelgo el codigo a continuacion

Muchas gracias

leosansan como estas?

Eh estado tratando de solucionar los problemas que me marcaste, mas precisamente que me imprima hacia arriba las jugadas pero no lo eh lo grado me podrias decir en que estoy fallando?

Cuelgo el codigo a continuacion

Muchas gracias