וובמאסטר - תיכנות ובניית אתרים
שאלות ותשובות:
הוסף תשובה

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

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

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

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

moshikod, 3/10/2012
תגיות: Random CSHTML‏  
הוסף תשובה  |  הוסף הערה
3 תשובות לשאלה זו
הוסף תשובה
הצלחתי למצוא פיתרון (די פשוט), צריך להוציא את ההגדרה של המשתנה הרנדומלי מחוץ ללולאה.
להגנתי אגיד שבמשחק הקוד הרבה יותר מסובך ומכיל מספר לולאות אחת בתוך השניה. לבסוף היה צריך להגדיר מחוץ לכל הלולאות. :)
moshikod, 4/10/2012
הוסף תשובה  |  הוסף הערה
העניין הוא רנדום הוא לא באמת רנדומלי אלא אם כן אתה מבקש ממנו (בהנתן SEED הוא מייצר תמיד את אותה שרשרת של מספרים, וזה מקל על מציאת תקלות כי אתה יכול לשחזר במדויק את מנלך התוכנית).
בכל שפה יש דרך להגדיר (ע"י פרמטר) אם אתה רוצה להוא יהיה רנדומלי או לא.
יכול להיות שעדיף שתכתוב מתודה בעצמך שמחזירה לך את המספר (שמשתמשת ברנדום), ושם תוכל להחליף במקום אחד (לכל התוכנית) אם אתה רוצה שהיא תהיה רנדומלית באמת או לא.
Oren Rubin, 8/11/2012
הוסף תשובה  |  הוסף הערה
תודה, לבסוף הסתדרתי ע"י הגדרת המשתנה בצורה שונה.
moshikod, 8/11/2012
הוסף תשובה  |  הוסף הערה
הוסף תשובה לשאלה זו:




וובמאסטר © כל הזכויות שמורות