2852
צפיות
צפיות
3
תשובות
תשובות
יצירת מספר רנדומלי CSHTML
שלום לכם!
אני מנסה לבנות משחק, עבור חלק מהמשחק אני צריך לייצר מספרים רנדומלים.
אני משתמש הקוד הבא:
for (var i = 0; i < 100; i++)
{
var random = new Random();
var RandomNumber = random.Next(0, 100);
@: @RandomNumber <br/>
}
הבעיה היא שאני מקבל כמעט תמיד אותו מספר… (לפעמים המחשב "עושה טובה" ובאמצע מחליף מספר פעם אחת)
אני מנחש שהפונקציה של הרנדום תלויה בזמן של השעון ובגלל שהלולאה מתבצעת מהר הפונקציה מקבלת כל הזמן אותם ערכים ולכן מחזירה לי את אותו הערך…
השאלה היא מה אני יכול לעשות כדי לקבל ערכים שונים? האם יש פונקציה טובה יותר?
אודה על כל עזרה שתינתן,
מושיקו.
3 תשובות
הצלחתי למצוא פיתרון (די פשוט), צריך להוציא את ההגדרה של המשתנה הרנדומלי מחוץ ללולאה.
להגנתי אגיד שבמשחק הקוד הרבה יותר מסובך ומכיל מספר לולאות אחת בתוך השניה. לבסוף היה צריך להגדיר מחוץ לכל הלולאות. 🙂
העניין הוא רנדום הוא לא באמת רנדומלי אלא אם כן אתה מבקש ממנו (בהנתן SEED הוא מייצר תמיד את אותה שרשרת של מספרים, וזה מקל על מציאת תקלות כי אתה יכול לשחזר במדויק את מנלך התוכנית).
בכל שפה יש דרך להגדיר (ע"י פרמטר) אם אתה רוצה להוא יהיה רנדומלי או לא.
יכול להיות שעדיף שתכתוב מתודה בעצמך שמחזירה לך את המספר (שמשתמשת ברנדום), ושם תוכל להחליף במקום אחד (לכל התוכנית) אם אתה רוצה שהיא תהיה רנדומלית באמת או לא.
תודה, לבסוף הסתדרתי ע"י הגדרת המשתנה בצורה שונה.