שלח תשובה

זירת השאלות

2118
צפיות
3
תשובות

יצירת מספר רנדומלי CSHTML

,‏ 3 באוקטובר, 2012

שלום לכם!
אני מנסה לבנות משחק, עבור חלק מהמשחק אני צריך לייצר מספרים רנדומלים.
אני משתמש הקוד הבא:
for (var i = 0; i < 100; i++)
{
var random = new Random();
var RandomNumber = random.Next(0, 100);
@: @RandomNumber <br/>
}

הבעיה היא שאני מקבל כמעט תמיד אותו מספר… (לפעמים המחשב "עושה טובה" ובאמצע מחליף מספר פעם אחת)

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

3 תשובות

  1. moshikod הגיב:

    הצלחתי למצוא פיתרון (די פשוט), צריך להוציא את ההגדרה של המשתנה הרנדומלי מחוץ ללולאה.
    להגנתי אגיד שבמשחק הקוד הרבה יותר מסובך ומכיל מספר לולאות אחת בתוך השניה. לבסוף היה צריך להגדיר מחוץ לכל הלולאות. 🙂

  2. Oren Rubin הגיב:

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

  3. moshikod הגיב:

    תודה, לבסוף הסתדרתי ע"י הגדרת המשתנה בצורה שונה.

שלח תשובה