Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C]Assegnare punteggio

  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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    La domanda però non è chiara ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    24
    chiedo venia :|

    Allora come potrei fare a ad assegnare un punteggio relativo alle carte ?

    ad esempio :
    Nella mano ho:
    1)Asso di bastoni
    2)Quattro di denari
    3)Dieci di coppe

    lancio L'asso,e l'avversario lo prende con la briscola di turno.

    come potrei assegnare all'asso il valore 11 punti ?
    come potrei dire che " x seme " è la briscola e quindi vale più degli altri semi ?

    Spero di essere stato più chiaro
    Ultima modifica di legeo88; 13-03-2014 a 19:08

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Io farei uno sforzo in più e modellerei tutto usando una struct...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Anch'io ... anzi, è la volta buona per imparare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.