Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] Confronto di valori

    Salve a tutto il forum.
    Tra ieri e oggi ho passato quattro ore a cercare di capire :master: come poter terminare la compilazione di un sorgente che ora vi andro' a postare.

    codice:
    /*Prototipo di Poker*/
    
    #include <stdio.h>
    #include <time.h>
    
    void mescola(int[][13]);
    void distribuzione(int[][13], char *[], char *[]);
    
    main()
    {
      char *semi[4] = {"Picche", "Fiori", "Cuori", "Quadri"};
      
      char *segni[13] = {"Asso", "Due", "Tre", "Quattro", "Cinque", "Sei",
    		     "Sette", "Otto", "Nove", "Dieci", "Re", "Regina",
    		     "Fante"};
      
      int mazzo[4][13] = {0};
      
      srand(time(NULL));
    
      mescola(mazzo);
      distribuzione(mazzo, semi, segni);
    }
    
    
    void mescola(int deck[][13])
    {
      int cards, rig, col;
      
      for (cards = 1; cards <= 52; cards++) {
        rig = rand() % 4;
        col = rand() % 13;
        
        while (deck[rig][col] != 0) {
          rig = rand() % 4;
          col = rand() % 13;
        }
      deck[rig][col] = cards;
      }
    }
    
    
    void distribuzione(int deck[4][13], char *type[], char *sign[])
    {
      void mano(int[], int [], char *[], char *[]);
    
      int card1[4], card2[4], carte, rig, col;
      
      for (carte = 0; carte <= 5; carte++) {
        for (rig = 0; rig <= 3; rig++)
          for (col = 0; col <= 12; col++)
    	if (deck[rig][col] == carte) {
    	   printf("CARTA[%d][%d]", rig, col);
               printf("%s di %-8s\n", sign[col], type[rig]);
    	  card1[carte] = rig;
              card2[carte] = col;
    	}
      }
      
      mano(card1, card2, type, sign);
    }
    
    void mano(int rig[4], int col[4], char *semi[], char *fig[])
    {
      int i;
      printf("\n\n");
      for (i = 0; i <= 4; i++) {
    
      if (col[i] == col[i + 1])
        printf("\nCOPPIA!\n");
      else printf("\n");
    	 }
    }
    Andiamo alla funzione "mano". Quindi quella proprio qua sopra.
    L'intento dell'esercizio che dovrei svolgere e' quello di mescolare cinquantadue carte e distribuirne cinque. Come in una normale mano da poker. Fatto questo, la funzione "mano" dovrebbe confrontare tutti i valori e se ne trova almeno due identici nel valore "col" (tanto per intenderci "col" sarebbe la colonna della matrice, in quanto deve rimanere sempre tale e puo' cambiare solo il seme) da come output COPPIA.
    Ovviamente if (col[i] == col[i + 1]) l'ho inserito solo per darvi un'idea in quanto non e' adatto a cio' che devo fare.
    Scusatemi se mi sono dilungato e spero di essere stato chiaro (cosa fondamentale).

    A presto.

  2. #2
    non ho capito cosa devi fare?

    devi trovare una coppia?

  3. #3
    Originariamente inviato da riky78
    devi trovare una coppia?
    Si, esattamente.

  4. #4
    prova così


    codice:
    for(i=0;i<5;i++)
     for(ii=0;ii<5;ii+)
      if (col[i]==col[ii] && i!=ii)
      {
       printf("\nCOPPIA!\n");
       break;
      }

  5. #5
    Quindi avevo omesso un ciclo for...
    Grazie riky per il tuo tempo.

    Ciao.

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.