مشکل در تولید اعداد تصادفی
با سلام به همه دوستان و اساتید عزیز.
من میخوام بازی جمع اعداد رو بنویسم ( البته خیلی ساده چون مبتدی هستم) ولی همین اولش توی تولید اعداد تصادفی گیر کردم.
من کد زیر رو توی یه کلاس جدا به نام Numbers نوشتم ولی فقط عدد 0 رو تولید میکنه.
دوستان میتونن راهنمایی کنن مشکل از کجاست؟:متفکر:
البته فقط نیاز به 4 عدد تصادفی دارم و بقیه اعداد ( 5 عدد دیگه رو) از جمع اعداد تصادفی بدست میارم. واسه همین کد رو به این شکل نوشتم
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Numbers_Game
{
public class Numbers
{
public int[] Number = new int[9];
public Numbers()
{
Random Number1and2 = new Random(DateTime.Now.Millisecond);
for (int i = 1; i <= 2; i++)
Number[i] = Number1and2.Next(1, 100);
Number[3] = Number[1] + Number[2];
Random Number4 = new Random(DateTime.Now.Millisecond);
for (int i = 4; i <= 5; i++)
Number[i] = Number4.Next(1, 100);
Number[6] = Number[4] + Number[5];
Number[7] = Number[1] + Number[4];
Number[8] = Number[2] + Number[5];
Number[9] = Number[3] + Number[6];
}
}
}
نقل قول: مشکل در تولید اعداد تصادفی
دوست عزيز
Random r = new Random();
double Number4 = r.Next(0,5);
اين كد Number4 رو يك عدد تصادفي بين 0 تا 5 ميزاره.
(شايد اين آخرين پستم توي اين هفته باشه:ناراحت:)
نقل قول: مشکل در تولید اعداد تصادفی
خوب من برای تولید 2 عدد تصادفی از حلقه استفاده کردم.
ولی جواب نمیده و فقط 0 تولید میکنه ( در واقع اصلا کار نمیکنه )
نمی دونم چرا:ناراحت:
نقل قول: مشکل در تولید اعداد تصادفی
نقل قول:
نوشته شده توسط
hesam67_b
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Numbers_Game
{
public class Numbers
{
public int[] Number = new int[9];
public Numbers()
{
Random Number1and2 = new Random(DateTime.Now.Millisecond);
for (int i = 1; i <= 2; i++)
Number[i] = Number1and2.Next(1, 100);
Number[3] = Number[1] + Number[2];
Random Number4 = new Random(DateTime.Now.Millisecond);
for (int i = 4; i <= 5; i++)
Number[i] = Number4.Next(1, 100);
Number[6] = Number[4] + Number[5];
Number[7] = Number[1] + Number[4];
Number[8] = Number[2] + Number[5];
Number[9] = Number[3] + Number[6];
}
}
}
سلام دوست عزيز مشكل شما را دوستمون جواب داده ايشون به حلقه اشاره نكرده بلكه به نوع استفاده از متد random اشاره كرده اگه دقت مي كرديد براي متد Random مقداري تعيين نكرده ولي شما از constractur استفاده كردي كه مقدار DateTime.Now.Millisecond را بهش دادي
اما در مورد حلقه هم بگم من نميدونم شما چرا كار را سخت كرديد براي 2بار نوشتن متد اومديد يه حلقه تعريف كرديد و يك ارايه تعريف كرديد در حالي كه خيلي راحت با 2 تا متغير اين كار را ميشد كرد اميدوارم مشكلتون حل بشه
نقل قول: مشکل در تولید اعداد تصادفی
دوست عزیز با استفاده ز تابع random و قراردادن این مقدار تصادفی در یک متغیر و جمع زدن مقدار این متغیر با سال و ماه و روز و ساعت و دقیقه و ثانیه می تونی یک عدد تصادفی بدون تکرار تولید کنی و دیگر هم نیاز به استفاده از حلقه for و array نیست
نقل قول: مشکل در تولید اعداد تصادفی
نقل قول:
نوشته شده توسط
va_sha_114
سلام دوست عزيز مشكل شما را دوستمون جواب داده ايشون به حلقه اشاره نكرده بلكه به نوع استفاده از متد random اشاره كرده اگه دقت مي كرديد براي متد Random مقداري تعيين نكرده ولي شما از constractur استفاده كردي كه مقدار DateTime.Now.Millisecond را بهش دادي
اما در مورد حلقه هم بگم من نميدونم شما چرا كار را سخت كرديد براي 2بار نوشتن متد اومديد يه حلقه تعريف كرديد و يك ارايه تعريف كرديد در حالي كه خيلي راحت با 2 تا متغير اين كار را ميشد كرد اميدوارم مشكلتون حل بشه
مرسی از راهنمایی.
ظاهرا مشکل از تعریف متغیر زیر بود
public int[] Number = new int[9];
وقتی تعریف بالا رو با تعریف پایین جایگزین کردم و آرایه رو با یک تابع برگشت دادم مشکل حل شد.
int[] Number = new int[9];
ولی هدفم این بود که یک کلاس جدا برای تولید اعداد تصادفی ایجاد کنم و اعداد تولید شده رو با یک متد برگشت بدم که موفق نشدم.
آخرش مجبور شدم توی خود فرم یک متد برای تولید اعداد تعریف کنم.
نقل قول:
دوست عزیز با استفاده ز تابع random و قراردادن این مقدار تصادفی در یک متغیر و جمع زدن مقدار این متغیر با سال و ماه و روز و ساعت و دقیقه و ثانیه می تونی یک عدد تصادفی بدون تکرار تولید کنی و دیگر هم نیاز به استفاده از حلقه for و array نیست
نه اصلا نیازی به این کار نبود چون خیلی راحت با همین DateTime.Now.Millisecond اعدا تصادفی رو برحسب زمان جاری تولید میکنه.
نقل قول:
شما از constractur استفاده كردي
ببخشید من مبتدی هستم. میشه مفهوم constractur رو برام توضیح بدی؟؟
نقل قول: مشکل در تولید اعداد تصادفی
نقل قول:
ببخشید من مبتدی هستم. میشه مفهوم constractur رو برام توضیح بدی؟؟
دوست عزیز زمانی که یک شی از کلاس مورد نظر ساخته می شود در همان لحظه به صورت اتوماتیک این تابع (constractur) فراخوانی می شود که می تونی عملیات و یکسری دستوراتی درون این تابع قرار بدی در بالا ذکر کردم این عملیات یا دستورات اجرا شوند
گرامر:public nameclass()
{دستورات}
زمان ساخت شی
nameeclass شی=new nameclasss()