بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
رندوم کردن button ( حل شد )
سلام .
من راستش خیلی جلو نرفتم ولی یه سوالی برام پیش اومده..
با چه تابعی میتونم عنصرای یه آرایه رو که از جنس 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 ++;
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .