Démineur en c

j’ai un problème avec mon programme surtout au niveau de la programmation de la variable aléatoire « random » pouvez vous m’aider s’il vous plait, c’est un projet pour le bac et je ne suis pas très douée :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define couleur(param) printf(« 33[%sm »,param)
#define L 11
#define C 11
#define M 10

int nb_mine=0;

struct type_case
{int val;
int visible;
int zero;
int mine;
int utile;};

initialise_jeu(struct type_case tab[L][C])
{
int i,j;
for (i=0;i<L;i++)
for (j=0;j<C;j++)
{ tab[i][j].visible=0;
tab[i][j].val=0;
tab[i][j].zero=0;
tab[i][j].mine=0;
tab[i][j].utile=0;}
}

void creation_jeu (int N,struct type_case tab[L][C])
{
int j; int i; int compteur=0;
randomize();
while ( compteur<N)
{
i=random(L-2);
j=random(C-2);
if (tab[i+1][j+1].val ==0)
{
tab[i+1][j+1].val=-1;
compteur++;
}
else ;
}
}

void rempli_case(struct type_case tab[L][C])
{
int i,j, compteur=0;
for (i=1;i<L-1;i++)
for (j=1;j<C-1;j++)
{
if (tab[i-1][j].val==-1) compteur++;
if (tab[i-1][j+1].val==-1) compteur++;
if (tab[i][j+1].val==-1) compteur++;
if (tab[i+1][j+1].val==-1) compteur++;
if (tab[i+1][j].val==-1) compteur++;
if (tab[i+1][j-1].val==-1) compteur++;
if (tab[i][j-1].val==-1) compteur++;
if (tab[i-1][j-1].val==-1) compteur++;
if (tab[i][j].val==0) tab[i][j].val=compteur;
compteur=0;
}

for (i=0;i<L;i++)
{tab[i][0].val=9;
tab[i][C-1].val=9;}
for (j=0;j<C;j++)
{tab[0][j].val=9;
tab[L-1][j].val=9;}
}

void affichage(struct type_case tab[L][C])
{
int i,j;
for (i=1;i<L-1;i++)
for (j=1;j<C-1;j++)
{ gotoxy(3*i,j);
if (tab[i][j].visible==1)
{ if ((tab[i][j].mine==0) && (tab[i][j].val!=-1)) {textcolor(11);cprintf(« %d »,tab[i][j].val);}
else {textcolor(10);cprintf(« X »);};
}
else printf(« + »);
}

printf(« n »);
}

void affiche_zero(struct type_case tab[L][C],int xx,int yy)
{
tab[xx-1][yy].visible=1;
tab[xx-1][yy+1].visible=1;
tab[xx][yy+1].visible=1;
tab[xx+1][yy+1].visible=1;
tab[xx+1][yy].visible=1;
tab[xx+1][yy-1].visible=1;
tab[xx][yy-1].visible=1;
tab[xx-1][yy-1].visible=1;

tab[xx][yy].zero=1;
tab[xx][yy].visible=1;

if ((tab[xx-1][yy].val==0) && (tab[xx-1][yy].zero==0)) affiche_zero(tab,xx-1,yy);
if ((tab[xx-1][yy+1].val==0) && (tab[xx-1][yy+1].zero==0)) affiche_zero(tab,xx-1,yy+1);
if ((tab[xx][yy+1].val==0) && (tab[xx][yy+1].zero==0)) affiche_zero(tab,xx,yy+1);
if ((tab[xx+1][yy+1].val==0) && (tab[xx+1][yy+1].zero==0)) affiche_zero(tab,xx+1,yy+1);
if ((tab[xx+1][yy].val==0) && (tab[xx+1][yy].zero==0)) affiche_zero(tab,xx+1,yy);
if ((tab[xx+1][yy-1].val==0) && (tab[xx+1][yy-1].zero==0)) affiche_zero(tab,xx+1,yy-1);
if ((tab[xx][yy-1].val==0) && (tab[xx][yy-1].zero==0)) affiche_zero(tab,xx,yy-1);
if ((tab[xx-1][yy-1].val==0) && (tab[xx-1][yy-1].zero==0)) affiche_zero(tab,xx-1,yy-1);
}

void montre_ttes_mines(struct type_case tableau[L][C])
{
int i,j;
for (i=1;i<L-1;i++)
for (j=1;j<L-1;j++)
{if (tableau[i][j].val==-1)
{textcolor(4);gotoxy(3*i,j);cprintf(« # »);}
else;};
}

void verif_nb_mine( struct type_case tableau[L][C])
{
int a=0;
int i,j;
for (i=1;i<L-1;i++)
for (j=1;j<L-1;j++)
if ((tableau[i][j].visible==1) && (tableau[i][j].val!=-1))
{a++;}
else;
if (a==((L-2)*(C-2)-M))
{ gotoxy(12,12); printf(« GAGNEn »);exit(0);}
else;
}

void demande(struct type_case tab[L][C])

{
int x=0,y=0,choix=0,r;

printf(« nt1 : Desamorcer une mine »);
printf(« nt2 : Localiser une mine »);
printf(« nVotre choix : »);
scanf(« %d »,&choix);
switch (choix) {

case 1:
{
printf("nnCoordonnees de la case à desamorcer(x,y):");
scanf("%d,%d",&y, &x);
if (tab[x][y].utile==0)
    {tab[x][y].visible=1;
    tab[x][y].utile=1;
    tab[x][y].mine=0;
    clrscr();
    if (tab[x][y].val==0)     
        affiche_zero(tab,x,y);
    else;
    affichage(tab);
    verif_nb_mine(tab);
    if (tab[x][y].val!=-1)
         {demande(tab);}
    else     
        {  montre_ttes_mines(tab);  gotoxy(12,12);printf("Perdu !");};}
else {         clrscr();
    affichage(tab);
    demande(tab);};
}
break;

case 2:{
printf("nnCoordonnees de la case à isoler(x,y):");
scanf("%d,%d",&y, &x);
if (tab[x][y].visible!=1)
    {tab[x][y].visible=1;
    tab[x][y].mine=1;
    clrscr();
    affichage(tab);
    demande(tab);}
else {
    clrscr();
    affichage(tab);
    demande(tab);};
        };
break;
}

}

int main()
{
struct type_case jeu[L][C];
clrscr();
initialise_jeu(jeu);
creation_jeu(M,jeu);
rempli_case(jeu);
affichage(jeu);
demande(jeu);
}

C’est quoi le problème ?

le i=random(L-2); et le j=random(C-2);
sont surlignés et il est écrit:
démineur.c:In function ‹ creation_jeu ›:
démineur.c:41:3: error: too many arguments to function ‹ random ›
i=random(L-2);
^

In file included from démineur.c:2:0:
/usr/include/stdlib.h:321:17: note: declared here
extern long int random (void)_THROW;
^

démineur.c:42:3: error: too many arguments to function ‹ random ›
j=random(C-2);
^

In file included from démineur.c:2:0:
/usr/include/stdlib.h:321:17: note: declared here
extern long int random (void)_THROW;
^

Le message d’erreur est assez explicite "error: too many arguments to function ‹ random › ".

Y a que la fonction, elle prends pas d’argument => linux.die.net…