עבור לתוכן

c# help with random numbers

Featured Replies

פורסם

צרפתי 2 קבצים קוד\בעיה

טוב אז זה למשחק קלפים וניראה לי שזה עובד בסדר אבל קורה משהו שאני לא כל כך יכל להסביר

כל הזמן יוצא שיש לי קבוצות של אותו קלף (צבע\סוג שונה) בסוף הרשימה זה לא חוזר על עצמו כל פעם זה קלפים אחרים

אבל הקטע של קבוצות כן חוזר על עצמו

יש למשהו מושג למה זה קורה???

הרעיון הכללי הוא יש לי מערך של 52 כולו 0

כל פעם אני מיצר מספר i

אז אני בודק אם במקום i ב arr יש 1 או 0

אם יש 1 אז כבר יש את הקלף הזה ברשימה

אם לא

אז אני משנה את arr ב i ל 1

ומוסף את אותו קלף לרשימה

כך לא היה לי אותו קלף פעמים

[attachment deleted by admin]

פורסם

קודם כל הבעיה היא שאתה מייצר כל פעם אובייקט Random חדש, במקום ליצור רק אובייקט אחד כזה ולהשתמש בו שוב ושוב (דהיינו - שים את ה-new Random מחוץ ללולאה).

פורסם

מספר פסודו אקראי הוא לא באמת אקראי וכנראה שהאלגוריתם שלך לא עובד טוב עם האלגוריתם של הגרלת מספר.

ברגע שאתה מגיע לקלף שנבחר כבר, במקום להגריל שוב, תעבור הלאה במערך עד שתגיע לקלף הראשון שעוד לא נבחר. אם הגעת לסוף המערך, תחזור להתחלה ותמשיך עד שהגעת למספר שהוגרל, אם הגעת אליו סימן שנבחרו כבר כל הקלפים.

עריכה: רק עכשיו הסתכלתי על הקוד, בנוסף למה שנאמר (כולל מה ששניצל אמר), למה להגדיר כ"כ הרבה מערכים, זה דוגמא קלאסית לשימוש של אובייקט. תייצר 52 אובייקטים של Card במקום המערך המטורף הזה.

פורסם
  • מחבר

קודם כל הבעיה היא שאתה מייצר כל פעם אובייקט Random חדש, במקום ליצור רק אובייקט אחד כזה ולהשתמש בו שוב ושוב (דהיינו - שים את ה-new Random מחוץ ללולאה).

מממ לא כל כך ברור לי למה אבל

זה סידר את זה

:)

תודה שניצ :yelclap:

פורסם

ועל הדרך: יש דרך מאוד פשוטה לסדר מחדש מערך באופן אקראי (דהיינו, לשנות את סדר האיברים באופן אקראי לחלוטין, בלי לחזור על אותו איבר פעמיים, ובסיבוכיות מינימלית). נניח שיש לך מערך בגודל n. אז האלגוריתם הוא כדלהלן (פסאודו קוד):

1. עבור i=0 עד n-2 (כולל), בצע:

1.1. הגרל מספר אקראי j בין i ל-n-1 (כולל).

1.2. החלף בין המקומות ה-i וה-j במערך.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים