All pastes #268016 Raw Edit

Untitled

public text v1 · immutable
·published 2006-12-05 07:36 UTC
rendered paste body
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;
}