int la_mes_alta(Tjoc joc,Tcarta *alta,int *pos){
/* Busca la carta mes alta i la seva posicio en el joc.
Si no hi ha cartes retorna 0, altrament retorna 1. */
int i;
if (joc.ncartes==0){
printf("Joc buit\n");
return 0;
}
*pos=0;
*alta=joc.cartes[0];
for (i=1;i<joc.ncartes;i++)
if (compara_cartes(joc.cartes[i],*alta)>0){
*alta=joc.cartes[i];
*pos=i;
}
return 1;
}
int busca(Tcarta c,Tjoc joc){
/* Localitza una carta en un joc. Si no hi es retorna joc->ncartes. */
int i;
i=0;
while ((compara_cartes(c,joc.cartes[i])!=0) && i<joc.ncartes) i++;
return i;
}
int busca_ordenat(Tcarta c,Tjoc joc,int *trobada){
/* Localitza una carta en un joc ordenat, tot indicant (1) si l'ha trobada */
int i;
i=0;
while ((compara_cartes(c,joc.cartes[i])>0) && i<joc.ncartes) i++;
*trobada=(compara_cartes(c,joc.cartes[i])==0);
return i;
}
int insereix(Tcarta carta,int pos,Tjoc *joc){
/* Insereix una carta en una posicio d'un joc. Si la insercio
te exit retorna 1, altrament retorna 0. */
int i;
if (pos<0 || pos>joc->ncartes){
printf("Posicio incorrecta!\n");
return 0;
}
if (joc->ncartes==MAXCARTES-1) {
printf("Joc ple!\n");
return 0;
}
for (i=joc->ncartes;i>pos;i--)
joc->cartes[i]=joc->cartes[i-1];
joc->cartes[pos]=carta;
joc->ncartes++;
return 1;
}
int extreu(int pos,Tjoc *joc,Tcarta *carta){
/* Extreu una carta d'una posicio d'un joc i retorna
la carta extreta per referencia. Si l'extraccio te
exit retorna 1, altrament retorna 0. */
int i;
if (joc->ncartes==0){
return 0;
}
if (pos<0 || pos>=joc->ncartes){
printf("Posicio incorrecta!\n");
return 0;
}
*carta=joc->cartes[pos];
for (i=pos;i<joc->ncartes-1;i++)
joc->cartes[i]=joc->cartes[i+1];
joc->ncartes--;
return 1;
}