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 - zkraven

#1
Java / Grafos con listas de adyacencia
13 Enero 2019, 16:32 PM
Quiero representar el siguiente grafo ( https://drive.google.com/file/d/1fOm0w3xnxl9KzZOABiISkyx9fwvHcYHt/view?usp=sharing ), el caso es que tiene que ser necesariamente con una lista de listas, es decir, en una primera lista deben estar todos los vértices que componen cada grafo. Cada elemento de esta lista  tiene que contener el vértice, el enlace al siguiente vértice y un enlace a la lista de vértices adyacentes (componen las aristas).
Y la lista de adyacencia de cada vértice contiene la dirección del vértice adyacente, el peso de la arista (en los casos que existan) y el siguiente nodo que compone esta lista.
Alguna sugerencia
#2
Hola buenas, tengo una duda acerca de cómo cambiar los colores de un solo printf en el lenguaje C, no en C++.
El problema que quiero resolver es el siguiente, si en un scanf por ejemplo introducimos un 0 y lo imprimimos aparece que es válido y el texto debería de ir en verde, sin embargo si es un numero distinto a 0 el texto debería de ir en rojo.
Es decir, como cambiar el color de un solo printf no el de la consola ni el de el fondo de consola.
#3
Programación C/C++ / Juego de Bingo
28 Abril 2018, 19:23 PM
Hola, la duda que tengo es cómo generar los dos modos de juego; automático y manual. En el automático se lanzarían todos las bolas finalizaría cuando un cartón de los pedidos cantase bingo. El manual se ejecutaría bola a bola, pidiendo una intervención del usuario. Al finalizar se deben mostrar los cartones con linea cantada, bingo y los números que hayan salido a lo largo del juego.


#include <stdio.h>
#include <stdlib.h>

void generar(int matriz[][9]);
void imprimir(int matriz[][9]);
void huecos(int matriz[][9], int fila);

typedef struct{
    int numeros[3][9];
}Carton;

typedef struct{
    Carton * juego;
    int numeroCartones;
}Bingo;

typedef struct{
    int bola;
}Numeros;

void inicializarBingo(Bingo * miJuego)
{
    int i,j,k;
    int filas;
    int columnas;
    int fila;
    int matriz[3][9];

    printf("\nCuantos cartones desea generar: ");
    scanf ("%d", &(miJuego->numeroCartones));
    miJuego->juego=(Carton*)malloc(sizeof(Carton)*miJuego->numeroCartones);

    for(i=0;i<miJuego->numeroCartones;i++)
    {
    for(columnas=0;columnas<9;columnas++)
    {
    do{

        for(filas=0;filas<3;filas++)
        {
            switch (columnas)
            {
                case 0:
                    matriz[filas][columnas] = 1 + rand() % (10 + 1 - 1);
                    break;
                case 1:
                    matriz[filas][columnas] = 11 + rand() % (20 + 1 - 11);
                    break;
                case 2:
                    matriz[filas][columnas] = 21 + rand() % (30 + 1 - 21);
                    break;
                case 3:
                    matriz[filas][columnas] = 31 + rand() % (40 + 1 - 31);
                    break;
                case 4:
                    matriz[filas][columnas] = 41 + rand() % (50 + 1 - 41);
                    break;
                case 5:
                    matriz[filas][columnas] = 51 + rand() % (60 + 1 - 51);
                    break;
                case 6:
                    matriz[filas][columnas] = 61 + rand() % (70 + 1 - 61);
                    break;
                case 7:
                    matriz[filas][columnas] = 71 + rand() % (80 + 1 - 71);
                    break;
                case 8:
                    matriz[filas][columnas] = 81 + rand() % (90 + 1 - 81);
                    break;
                }
            }
        }while((matriz[0][columnas]== matriz[1][columnas]) ||
               (matriz[0][columnas]==matriz[2][columnas]) ||
               (matriz[1][columnas]== matriz[2][columnas])||
               (matriz[0][columnas]>matriz[1][columnas])||
               (matriz[1][columnas]>matriz[2][columnas]));
    }
    huecos(matriz, 0);
    huecos(matriz, 1);
    huecos(matriz, 2);

    for(k=0;k<3;k++)
        {
            for(j=0;j<9;j++)
            {
                ((miJuego->juego)[i]).numeros[k][j] = matriz[k][j];
            }
        }
    }
}


void mostrar(Bingo miJuego)
{
    int matriz[3][9];
    int i = 0, j = 0, k = 0;
    srand(time(NULL));
    printf("\nTus cartones son los siguientes: ");
    for(i=0;i<miJuego.numeroCartones;i++)
    {
        printf("\n\nCarton numero %d:",i+1);
        printf("\n");
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n"
       ,201,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
       205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
       205,205,205,205,205,205,205,205,205,205,205,
       205,205,205,205,205,205,205,205,205,187);
    int filas;
    for(filas=0;filas<3;filas++)
    {
    int columnas;
        for(columnas=0;columnas<9;columnas++)
        {
            if (((miJuego.juego)[i]).numeros[filas][columnas]==-1)
                printf("%c_%c%c_%c",186,176,176,186);

            else if (columnas == 0 && matriz[filas][0]!=10)
                printf("%c__%i_%c", 186,((miJuego.juego)[i]).numeros[filas][columnas],186);

            else
                printf("%c_%i_%c", 186,((miJuego.juego)[i]).numeros[filas][columnas],186);
        }
        printf("\n");
    }
    printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n"
        ,200,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
       205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
       205,205,205,205,205,205,205,205,205,205,205,
       205,205,205,205,205,205,205,205,205,188);
    }
}

void automatico(Bingo * miJuego)
{






}

void manual(Bingo * miJuego)
{







}




int main()
{
    printf("\nBienvenidos a este maravilloso Bingo\n");
    Bingo miBingo;
    inicializarBingo(&miBingo);
    mostrar(miBingo);
    Bingo modoAutomatico;
    Bingo modoManual;

    int opcion;
        printf( "\n   Si desea jugar en modo automatico pulse 1: \n");
        printf( "\n   Si desea jugar en modo Paso a Paso pulse 2: \n");
        printf("\n\n   ");
        scanf( "%d", &opcion );
        switch ( opcion )
        {
            case 1: printf("\n Juego completo: \n");
                    //system("cls");
                    automatico(&modoAutomatico);

                break;

            case 2:printf("\n Juego paso a paso: \n");
                    manual(&modoManual);
                    //system("cls");
                break;
         }

    return 0;
}





void huecos(int matriz[][9], int fila)         //funcion que genera los cuatro huecos por fila necesarios en el carton
{

    int posicion=0,huecos=0;
    while(huecos<4)
    {
        posicion=rand() % (8 + 1 - 0) + 0;
        if (matriz[fila][posicion]!=-1)
        {
            matriz[fila][posicion]=-1;
            huecos++;
        }
    }
}

#4
Programación C/C++ / Re: Cartón de Bingo en C.
8 Febrero 2018, 13:14 PM
Pero no deben ser siempre las mismas posiciones las que estén vacías
#5
Programación C/C++ / Re: Cartón de Bingo en C.
8 Febrero 2018, 11:34 AM
Y en cuanto a los huecos, como ingreso un espacio aleatorio en blanco (en total 4 por linea) dentro de la matriz?
Algun consejo para mejorar la apariencia tras ejecutarlo en la consola?
#6
Programación C/C++ / Cartón de Bingo en C.
7 Febrero 2018, 14:48 PM
Hola, estoy intentando hacer un cartón de Bingo de 3x9. En los cuales los numeros deben ir ordenados por decenas y en cada linea debe de haber 4 huecos. Por ahora llevo lo siguiente de código, lo cual genera una matriz con numeros aleatorios. Mi problema es que no se insertar los huecos en blanco y tampoco se como evitar repetir un numero aleatorio. Espero que tengaís soluciones:


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int numero_aleatorio();

int main(){
    SetConsoleOutputCP(1252);
    srand(time(NULL));

    int matriz[3][9];
    int filas;
    int columnas;

    printf("Este es su Cartón de Bingo: \n");
    printf("\n");

    for(filas=0;filas<3;filas++)
    {
     
        for(columnas=0;columnas<9;columnas++)
        {
            switch (columnas)
            {
                case 0:

                    matriz[filas][columnas] = 1 + rand() % (10 + 1 - 1);


                    break;
                case 1:
                    matriz[filas][columnas] = 11 + rand() % (20 + 1 - 11);

                    break;
                case 2:
                    matriz[filas][columnas] = 21 + rand() % (30 + 1 - 21);

                    break;
                case 3:
                    matriz[filas][columnas] = 31 + rand() % (40 + 1 - 31);

                    break;
                case 4:
                    matriz[filas][columnas] = 41 + rand() % (50 + 1 - 41);

                    break;
                case 5:
                    matriz[filas][columnas] = 51 + rand() % (60 + 1 - 51);

                    break;
                case 6:
                    matriz[filas][columnas] = 61 + rand() % (70 + 1 - 61);

                    break;
                case 7:
                    matriz[filas][columnas] = 71 + rand() % (80 + 1 - 71);

                    break;
                case 8:
                    matriz[filas][columnas] = 81 + rand() % (90 + 1 - 81);

                    break;

            }//final del switch
            }
         



            printf("[ %i ]", matriz[filas][columnas]);
        }
      printf("\n");
    }




También me gustaría saber algún consejo para que el aspecto gráfico al ejecutarlo en consola se mejore y no solamente sea una matriz llena de números.