C言語でトランプゲームを作りたい
■ このスレッドは過去ログ倉庫に格納されています
0210とりあえず
2007/09/21(金) 01:31:27int field[52],numOfSet,passCount;
int sequence(int *chkHand, int len){ int i=0;
if(len>=3) for(i=1; i<len; ++i) if(getCmpRank(chkHand+i)!=getCmpRank(chkHand+i-1)+1 || *(chkHand+i)/13!=*(chkHand+i-1)/13) break;
return (i==len)?getCmpRank(&chkHand[len-1]):0;
}
int pair(int *chkHand, int len){ int i;
for(i=1; i<len; ++i) if(*(chkHand+i)%13!=*(chkHand+i-1)%13) break;
return (i==len)?len*10+*(chkHand+len-1)%13:0;
}
int higher(int *nowHand, int len){ int stat;
if(numOfSet==0 && (len<=1 || pair(nowHand,len) || sequence(nowHand,len))) return 1;
else{
if(0<(stat=sequence(field,numOfSet)) && stat<sequence(nowHand,len)) return 1;
if(0<(stat=pair(field,numOfSet)) && stat<pair(nowHand,len)) return 1;
}
return 0;
}
int putCard(int player, int *list, int len){ int i, nowHand[52];
if(len<=numOfHand[player]){
for(i=0; i<len; ++i) nowHand[i]=hand[player][*(list+i)]; qsort(nowHand, len, sizeof(int *), cmp);
if(higher(nowHand, len)){
for(i=0; i<len; ++i){ hand[player][*(list+i)]=hand[player][--numOfHand[player]]; field[i]=nowHand[i]; }
return (numOfSet = len);
}
}
return 0;
}
:
numOfSet=passCount=0;
if(putCard(i, list, len)==0) ++passCount; else passCount=0;
■ このスレッドは過去ログ倉庫に格納されています