אני מודה מראש לכל מי שיעזור לי...
ראשי > תיכנות > חלוקת קלפים בין 2 שחקנים
#include <stdlib.h>
void sort(int,int);
int main()
{
randomize();
int p1[26],p2[26];
sort(m,p1,p2);
return 0;
}
void sort(int p1[],int p2[])
{
int arr[13]={0},i=0,,j=0,x,y,sum=0;
while(sum!=52)
{
x=random(13)+1;
y=random(13)+1;
if(arr[x]==4 || arr[y]==4)
continue;
arr[x]++;
arr[y]++;
p1[i++]=x;
p2[j++]=y;
sum+=2;
}
}[ההודעה נערכה על-ידי prgrmr ב-05/09/2005 16:15:56]
סליחה על השורות אני רגיל ככה!!!
כל המשתנים שיש שם.
הם לא מוגדרים מראש!!
אז איך זה בדיוק עובד לך?!
מוזר
וזה לא עובד בגלל שבסופו של דבר המחשב מגיע למצב שבו לדוגמא נשאר 4 קלפים לחלק אז הוא לעולם לא יגיע אליהם...
קוד:
for(j=0; j<=3; j++)
{
x=random(13)+1;
y=random(13)+1;
p1[j]=x;
p2[j]=y;
}
תקבל 2 מערכים (p1,p2) כל אחד בעלי 4 תאים (0-3) שבכל תא מספר בין 1-13[ההודעה נערכה על-ידי C4$p3r ב-14/09/2005 00:21:11]
קוד:
arraylen = 13;
cardstotakeout = 8;
currentplayer = 0;
while (cardstotakeout != 0) {
card = random(arraylen);
position = findavaliblecardnumber(card);
givecardtoplayer(currentplayer,position);
removecardfromarray(position);
currentplayer = 1 - current player;
cardstotakeout--;
arraylen--;
}
הסבר בקצרה, המספר הרנדומלי זה המספר הסידורי של הקלף בחבילה.
כל פעם שמוציאים קלף מהחבילה, אז המספר הרנדומלי נהיה קטן יותר.
וכאשר בוחרים את הקלף מהחבילה סופרים את כמות הקלפים במערך לפי המספר הרנדומלי כאשר מדלגים על קלפים שכבר הוצאנו.
אם לא ברור, תשאל...