Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C]Assegnare punteggio

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    24

    [C]Assegnare punteggio

    Allora, mi sono bloccato da morire nel assegnare un punteggio alle carte :|

    avevo una mezza idea, ma non ho ben chiaro come fare.
    Premesso che non posso usare le struct in quanto ancora non le ho capite\interiorizzate, idem le liste ...

    pensavo di fare il punteggio in maniera posizionale, con un altro array simile a seme e val ( i due array globali ) ...ma non ho ben chiaro come fare, qualunque consiglio e\o critica sono veramente ben accetti

    codice:
    #include <stdio.h>#include <stdlib.h>
    #include <time.h>
    #include <string.h>
    #include <stdbool.h>
    
    
    
    
    #define dim 40
    #define pnt 200
    
    
    const char *seme[4]={"Bastoni","Denari","Spade","Coppe"};
    const char *val[10]={"Asso","Due","Tre","Quattro","Cinque","Sei","Sette","Otto","Nove","Dieci"};
    
    
    void mescola(int [][10]);
    void visualizza(const char *[],const char*[]);
    void creamazzo(int [][10],char *wmazzo[],const char *seme[],const char *val[]);
    void visualizza_deck(int [][10]);
    void visualizza_mazzo(char*wmazzo[]);
    void gioco(char *wmazzo[], const char *wseme[], const char*wval[], char *nome[]);
    void roundv(char *qnome[] ,char *qmazzo[], const char *wseme[], const char*wval[], char *nome2[]);
    
    
    
    
    int main(void)
    {
    
    
    
    
     char *mazzo[dim];
     int deck[4][10]={0};
     int j,m,n;
     int scl;
     int sess;
     char *nome[dim];
     int i;
    
    
    
    
    
    
     do{
         printf("--------------------\n");
         printf("Sei maschio o femmina?\n");
         printf("1)Maschio\n");
         printf("2)Femmina\n");
         scanf("%d", &sess);
    
    
    
    
         if(sess < 1 || sess > 2){
                 printf("Errore hai inserito dei parametri invalidi\n");
                 }
         }while(sess < 1 || sess > 2);
    
    
        printf("---------------------\n");
         printf("Come ti chiami?\n");
         scanf("%s" ,&nome);
    
    
    
    
         do{
                    printf("\n\n-----Alla Briscola Del Nonno-----\n\n");
                    if(sess == 1)
                    printf("Benvenuto %s scegli cosa vuoi fare\n" ,nome);
                    if(sess == 2)
                    printf("Benvenuta %s scegli cosa vuoi fare\n" ,nome);
                    printf("1)Voglio vedere il mazzo di carte\n");
                    printf("2)Voglio giocare contro un amico\n");
                    printf("0)Esci\n");
                    scanf("%d" ,&scl);
    
    
    
    
                    switch(scl){
    
    
    
    
                                case 1:
    
    
    
    
    
    
                                        visualizza(seme, val);
    
    
    
    
    
    
    
    
    
    
    
    
                                     break;
    
    
    
    
                                case 2:
    
    
    
    
                                    mescola(deck);
                                    visualizza_deck(deck);
                                    creamazzo(deck, mazzo,seme,val);
                                    visualizza_mazzo(mazzo);
                                    gioco(mazzo, seme, val, nome);
                                    break;
    
    
                    }
    
    
    
    
    
    
    
    
    
    
    
    
                    }while(scl != 0);
    
    
    
    
         return 0;
    
    
    
    
    
    
    
    
    }
    
    
    void visualizza(const char *wseme[], const char *wval[])
    {
        int sem;
        int valor;
        int i;
    
    
        i=1;
        for(sem=0; sem<4; sem++){
            for(valor=0; valor<10; valor++){
                printf("%d)%s di %s\n" ,i++,wval[valor], wseme[sem]);
    
    
                }
    
    
            }
    
    
        }
    
    
    
    
    void mescola(int wdeck[][10])
    {
        int riga;
        int colonna;
        int carta;
    
    
    
    
        for(carta=1; carta<=40; carta++){
            do{
                riga=rand()%4;
                colonna=rand()%10;
            }while(wdeck[riga][colonna] != 0);
    
    
            wdeck[riga][colonna]=carta;
    
    
        }
    
    
    }
    
    
    void visualizza_deck(int wdeck[][10])
    {
    
    
        int righe;
        int colonne;
    
    
    
    
        for(righe=0; righe<4; righe++){
            for(colonne=0; colonne<10; colonne++){
                //printf("[%d,%d] = %d\n",righe,colonne,wdeck[righe][colonne]);
            }
        }
    }
    
    
    void creamazzo(int wdeck[][10], char *wmazzo[],const char *wseme[], const char *wval[])
    {
        int cercato;
        int riga;
        int colonna;
        bool trovato=false;
        int i = 0;
    
    
    
    
        for(cercato=1; cercato<=40; cercato++){
                trovato = false;
            for(riga=0; riga<4 && !trovato; riga++){
                for(colonna=0; colonna<10 && !trovato; colonna++){
                    if(wdeck[riga][colonna]==cercato){
                        trovato=true;
                    }
                }
            }
            wmazzo[i] = (char *)malloc(dim);
            sprintf(wmazzo[i],"%s di %s" ,val[--colonna],seme[--riga]);
            //wmazzo[i] = tmp;
            //devi vedere wmazzo come un mazzo ma sottoforma di vettore, al quale indice viene assegnato il valore di tmp, che è a sua volta composto da sprintf
            i++;
        }
    }
    
    
    void visualizza_mazzo(char *wmazzo[])
    {
        int i;
        for (i=0; i<40; i++)
        {
            //printf("%s\n" ,wmazzo[i]);
        }
    
    
    
    
    }
    
    
    void gioco(char *wmazzo[],const char*wseme[], const char*wval[],char *wnome[])
    {
    
    
        int carte;
        char *nome2[dim];
        int round;
        int turno;
    
    
        printf("--------------------------\n");
        printf("Come si chiama il tuo avversario?\n");
        scanf("%s" ,nome2);
    
    
        do{
        printf("--------------------------\n");
        printf("Quanti round volete fare?\n");
        printf("1)Un solo round\n");
        printf("2)Due Round\n");
        printf("3)Tre Round \n");
        printf("0)Voglio uscire\n");
        scanf("%d" ,&round);
        if(round < 0 || round > 3)
        {
                printf("hai inserito dei valori invalidi");
        }
    
    
        switch(round){
    
    
        case 1:
            do{
            printf("--------------------\n");
            printf("Chi vuole fare il mazziere?\n");
            printf("1)%s\n" ,wnome);
            printf("2)%s\n" ,nome2);
            scanf("%d" ,&turno);
    
    
            }while(turno < 1 || turno > 2);
    
    
            if(turno==1)
    
    
                roundv(wnome, wmazzo, wseme, wval, nome2);
    
    
            break;
    
    
        }
        }while(round != 0);
    
    
    }
    
    
    
    
    void roundv(char *qnome[],char *qmazzo[], const char *qseme[], const char *qval[], char *wnome2[])
    {
        const int*punto[10]={11,0,10,0,0,0,0,2,3,4];
        
        int punti1[pnt];
        int punti2[pnt];
        //char *mano1[3];
        //char *mano2[3];
        int carta=0;
        int scl;
        int mano;
        int lancio;
    
    
    
    
            printf("la Briscola e' %s\n" ,qmazzo[0]);
            qmazzo[0]=qmazzo[1];
    
    
         printf("--------------------\n");
         printf("turno di %s\n" ,wnome2);
         printf("********************\n");
    
    
    
    
    
    
    
    
            do{
    
    
    
    
                for(mano=0; mano<3; mano++)
                {
                    carta++;
                    printf("%d)%s\n" ,mano+1,qmazzo[carta]);
                }
                printf("********************\n");
                printf("quale carta vuoi lanciare?\n");
                scanf("%d" ,&lancio);
    
    
                printf("Carta in gioco:%s" ,qmazzo[lancio]);
    
    
    
    
    
    
    
    
            }while(carta != 40);
    
    
    }
    ovviamente a fine programma, alcune funzioni ( di visualizzazione ) verranno eliminate, lasciando il necessario
    Ultima modifica di legeo88; 13-03-2014 a 18:36 Motivo: modifica del titolo

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.