Salve a tutti ragazzi, avrei un problema nel programma in c che ora vi riporto.
Credo che il problema sia con la funzione srand() poichè in questo programma creato dovrei generare 5 basi di un triangolo di carte con numeri compresi tra 1 e 15, solo che queste 5 basi sono tutte uguali...Questo è il main del programma:

codice:
/*
Algoritmo che controlla se da un array di 5 interi generati a caso è possibile costruitire un triangolo di carte.
Il gioco richiede che ogni carta sia la differenza tra le due carte che le stanno immediatamente sotto, a sinistra e a destra.
E' possibile utilizzare 15 carte.
Inputs:
Outputs:
Costrutti Ripetitivi:
Complessità di tempo:
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include "function.h"

int algoritmo (int esecuzione);

void main()
{
    int i;
    int testMassimi = 5; //Test per la verifica dell'algoritmo

    for(i=0;i<testMassimi;i++)
    {
        if(algoritmo(i) == 1) //Esce se si ottiene un successo
        {break;}
    }
}

/*Algoritmo*/
int algoritmo (int esecuzione)
{
    /*Definizioni variabili*/
    int i,j, nuovo, risultato;
    int successo=0;
    int numeroCarte, differenza;
    int matrice[BASE][BASE];

    /*Conto le carte*/
    numeroCarte = contaCarte(BASE);


    for(i=0;i<BASE;i++)
    {
        for(j=0;j<BASE;j++)
        {
            matrice[i][j] = 0;
        }
    }

    /*
    //Valori immessi a mano per testare l'esempio del prof
    matrice[0][0] = 6;
    matrice[0][1] = 14;
    matrice[0][2] = 15;
    matrice[0][3] = 3;
    matrice[0][4] = 13;
    */

    /*Inserisco il primo valore nella matrice alla base, valore compreso tra 1 e 15*/
    srand(time(NULL));
    matrice[0][0] = (1 + (rand() % numeroCarte));

    /*Riempio la base della matrice con altri valori, passandoli per la funzione isPresent per verifare se sono già presenti*/
    for(j=1;j<BASE;j++)
    {
        nuovo = (1 + (rand() % numeroCarte));
        while (isPresent(matrice,nuovo) != 0)
        {
            nuovo = (1 + rand() % numeroCarte);
        }
        matrice[0][j] = nuovo;
    }

    /*
    for(i=0; i<BASE; i++)
    {
        for(j=0;j<BASE;j++)
        {
            if(matrice[i][j] != 0)
            printf("%3d", matrice[i][j]);
        }
        printf("\n");
    }
    */

    /*Calcola le carti successive dopo aver generato la base, terminandolo se si presenta una carta già presente (isPresent)*/
    for (i=1;i<BASE;i++)
    {
        for(j=0;j<BASE - i;j++)
        {
            differenza = abs(matrice[i-1][j] - matrice[i-1][j+1]);
            if(isPresent(matrice, differenza) != 0)
            {
                printf("Esecuzione: %d; la Carta %d ottenuta dalle carte %d e %d e' gia' presente\n", esecuzione, differenza, matrice[i-1][j], matrice[i-1][j+1]);
                break;
            }
            matrice[i][j] = differenza;
        }
        if(isPresent(matrice, differenza) != 0)
        break;
    }

    /*Se ho completato tutto(matrice triangolare inferiore) ho avuto successo*/
    if(matrice[BASE-1][0] != 0)
    {
        printf("Esecuzione: %d; le Carte generate sono tutte diverse tra loro ed e' possibile costruire il triangolo\n", esecuzione);
        successo = 1;
        stampaTriangolo(matrice);
    }

    return successo;
}
Dove potrebbe essere il problema? Mi genera 5 basi di numeri tutte uguali...
Ho anche un altro file function.h, ma credo che il problema sia qui...con il seed della funzione srand o qualcosa del genere...qualcuno sa aiutarmi?
Grazie