آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

رندوم کردن button ( حل شد )

Kosar  9 سال پیش  9 سال پیش
0 0

سلام .

من راستش خیلی جلو نرفتم ولی یه سوالی برام پیش اومده..

با چه تابعی میتونم عنصرای یه آرایه رو که از جنس button هستن ، بگم رندوم بشن ؟

حالا یا خود buttton ها حرکت کنن برن جای همدیگه ، یا نوشته های روشون با همدیگه عوض شه ...

کسی میدونه ؟ :)

+2 0
سلام ، با استفاده از کلاس Collections به این صورت : Collections.shuffle(arrayList); که arrayList همون آرایه ای از Button هاست . متد shuffle میاد تمام عناصر رو به صورت رندوم با هم جا به جا میکنه . (9 سال پیش)
0 0
ممنووووووووووووونم فقط button ها حتما باید توی لیست باشن ؟ نمیشه به صورت آرایه تعریفشون کنم ؟ (9 سال پیش)
0 0
من لیستی که میخوام بنویسم دو بعدیه .. اینجوری تعریفش کردم : final List[][] Butt List[3][3]; ولی اررور میده که shuffle برای list ه ... چجوری درستش کنم ؟ :((((( (9 سال پیش)
0 0
نه قاطی کردم .... :(((((((( (9 سال پیش)
+1 0
منظورت آرایه استاتیکه ؟ نه دیگه نمیشه . باید آرایه دینامیک باشه ، چون متدش آرایه از نوع کلاس میگیره ، حالا یا ArrayList ای از Button ها یا List ای از Button ها . (9 سال پیش)
0 0
هرچی مینویسم اشتباه میگیره :((((( arraylist هم بکنم shuffle میگه حتما باید list باشه... من چجوری باید یه لیست دو بعدی از نوع button درست کنم ؟ (9 سال پیش)
0 0
(9 سال پیش)
0 0
(9 سال پیش)
0 0
(9 سال پیش)
0 0
(9 سال پیش)
0 0
قاطی کرده چیزی ارسال نمیشه (9 سال پیش)
0 0
(9 سال پیش)
0 0
:((((((((((((((((((((((((((((((((((((((((((((( (9 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Reza  9 سال پیش
+3 0

من خودم از همین روش استفاده کردم . آرایه رو به این صورت تعریف کن :

 ArrayList<Button> buttons_Array = new ArrayList<Button>()

البته این آرایه یک بعدیه . آرایه دو بعدی اگه میخوای تعریف کنی فکر نمیکنم رندوم جا به جا کنه .

به عنوان یه راه حل یه آرایه 2 بعدی از Button ها ایجاد کن :

 Button [][] btns_2D= new Button [3][3];

و Button ها رو توش قرار بده ، بعد هر موقع خواستی کل عناصر رو با هم جا به جا کنی ، اول همه رو در یه ArrayList یک بعدی ذخیره کن :

 ArrayList<Button> btns_1D= new ArrayList<Button>();

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
btns_1D.add(btns_2D[i][j]);
}
}

حالا آرایه 1 بعدی btns_1D رو Shuffle کن :

 Collections.shuffle(btns_1D)

حالا دوباره عناصر این آرایه به هم ریخته رو در آرایه 2 بعدی قرار بده :

 int index = 0;

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
btns_2D[i][j] = btns_1D.get(index);
index ++;
}
}
0 0
100% جواب میده . (9 سال پیش)
0 0
متششششششششششششششششششششکرم (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .