Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #1

    Programma in c con l'utilizzo delle liste

    ciao a tutti necessitavo una mano per questo codice.
    Il mazzo deve essere mescolato spostando la prima carta in una posizione casuale. (ogni nodo rappresenta una carta). questa operazione va ripetuta x volte...dove x è il parametro di ingresso num_mescolate. Qualcuno mi sa aiutare?


    il codice è il seguente:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    
    
    typedef enum {CUORI=0,QUADRI,FIORI,PICCHE} TipoSeme;
    typedef enum {DUE=2,TRE,QUATTRO,CINQUE,SEI,SETTE,OTTO,NOVE,DIECI,FANTE,DONNA,RE,ASSO} TipoValore;
    typedef struct
    {
        TipoSeme seme;
        TipoValore valore;
    } TipoInfo;
    typedef struct carta
    {
        TipoInfo info;
        struct carta* next;
    
    
    } TipoCarta;
    typedef TipoCarta* TipoMazzo;
    
    
    void InserisciCartaInTesta(TipoMazzo* indirizzo_mazzo, TipoCarta* indirizzo_carta);
    TipoMazzo creaMazzo();
    void stampaCarte(TipoMazzo mazzo);
    void mescolaMazzo(TipoMazzo* indirizzo_mazzo, int num_mescolate);
    
    
    int main()
    {
        TipoMazzo mazzo = NULL;
    
    
        mazzo = creaMazzo();
        printf("Mazzo appena creato:\n");
        stampaCarte(mazzo);
        mescolaMazzo(&mazzo,100);
        printf("\n\nMazzo dopo essere stato mescolato:\n");
        stampaCarte(mazzo);
    
    
        return 0;
    }
    
    
    void InserisciCartaInTesta(TipoMazzo* indirizzo_mazzo, TipoCarta* indirizzo_carta)
    {
        indirizzo_carta->next = *indirizzo_mazzo;
        *indirizzo_mazzo = indirizzo_carta;
    }
    
    
    TipoMazzo creaMazzo()
    {
        TipoMazzo nuovo_mazzo = NULL;
        int i=0, j=0;
        for (i=0; i < 4; i++)
        {
            for (j=0; j < 13; j++)
            {
                TipoCarta* carta = (TipoCarta*)malloc(sizeof(TipoCarta));
                carta->info.seme = i;
                carta->info.valore = j+2;
                InserisciCartaInTesta(&nuovo_mazzo,carta);
            }
        }
        return nuovo_mazzo;
    }
    
    
    void stampaCarte(TipoMazzo mazzo)
    {
        TipoCarta* carta = mazzo;
        while (carta != NULL)
        {
            switch(carta->info.valore)
            {
            case FANTE:
                printf("J ");
                break;
            case DONNA:
                printf("Q ");
                break;
            case RE:
                printf("K ");
                break;
            case ASSO:
                printf("A ");
                break;
            default:
                printf("%d ",carta->info.valore);
            }
            switch(carta->info.seme)
            {
            case QUADRI:
                printf("QUADRI, ");
                break;
            case CUORI:
                printf("CUORI, ");
                break;
            case PICCHE:
                printf("PICCHE, ");
                break;
            case FIORI:
                printf("FIORI, ");
            }
            carta = carta->next;
        }
    }
    
    
    void mescolaMazzo(TipoMazzo* indirizzo_mazzo, int num_mescolate)
    {
    
    
    }

    grazie anticipatamente
    Ultima modifica di MItaly; 26-11-2013 a 18:27 Motivo: tag CODE

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.