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

استفاده از آرایه ها

saeid.deh  9 سال پیش  9 سال پیش
0 0

با سلام خدمت دوستان.

توی پروژه Hangman که استاد طراحی کردند اگر توی اکتیویتیمون دوتا text بزاریم و بخوایم بگیم text1  یک راهنمایی بنویسه (مثلا پایتخت ایران کدام شهر است) و text2 جواب سوال باشه که میشه همون کلمه ای که کاربر با کیبورد مجازی وارد میکنه.ولی خب text1 و text2 باید طبق خونه ارایه که random  هست با هم یکی باشند تا سوال و جواب باهم جور در بیاد.

توی این قسمت مشکل دارم که چجوری این دوتا آرایه خونه هاشون باهم برابر باشه که ار آرایه اول که سوال خونده میشه آرایه دوم هم جواب همون سوال باشه.

ممنون میشم کمک کنید.

باتشکر. 

 برای این سوال 8 پاسخ وجود دارد.
پاسخ به سوال 
Amir  9 سال پیش
0 0

شما یه فیلد دارید به اسم currentWord که جواب توشه. یه فیلد دیگه هم بسازید به اسم currentQuestion. حالا وقتی که currentWord مقدار دهی میشه کدشو پاک کنید و کد زیر رو بجاش بنویسید:

int random = (int) (Math.random() * words.lenght);
currentWord = words[random];
currentQuestion = questions[random]; // questions = آرایه ی سوال هاتون

توجه داشته باشید که اگه عنصر دوم آرایه ی words تهران باشه عنصر دوم آرایه ی questions باید پایتخت ایران چیست؟ باشه.

پاسخ به سوال 
saeid.deh  9 سال پیش
0 0

باسلام.

دوست عزیز سپاسگذارم بابت پاسخ.

ولی من متوجه نشدم منظورتون از فیلد متد هست یا چیز دیگه؟

کد بنده اینه.من میخوام یه آرایه دیگه مثل words داشته باشم که سوالات داخل آرایه باشه.شما میگید یه متد دیگه مثل selectword بنویسم یا کد ها رو داخل همین آرایه بنویسم؟(متوجه نشدم).

ممنون از پاسخ شما.

private String selectWord(){
String[] words = {"ایران", "شیراز", "فارس"};
int randomIndex = (int) (Math.random() * words.length);
return words[randomIndex];
}
 
پاسخ به سوال 
Amir  9 سال پیش
0 0

شما باید دو تا فیلد از جنس String به اسم های currentWord و currentQuestion بسازید و بعد متدی که نوشتید رو پاک و متد زیر رو به جاش بنویسید:

private void selectWord() {
String[] words = new String[] {"ایران", "شیراز", "فارس"};
String[] questions = new String[] {"تخت جمشید کجاست؟", "", ""};
int randomIndex = (int) (Math.random() * words.length);
currentWord = words[randomIndex];
currentQuestion = questions[randomIndex]; }

حالا بعد از صدا زدن این متد فیلد currentWord کلمه ی جواب رو در بر داره و فیلد currentQuestion سوال رو توی خودش داره‌.

پاسخ به سوال 
saeid.deh  9 سال پیش
0 0

باسلام

معذرت میخوام که مجدد مزاحمتون میشم ولی مشکل حل نشد

چون متدی که شما فرمودید تعریف کنم از نوع void هست که معمولا خروجی قرار نیست بده به ما ولی متدی که توی برنامه به کار رفته از نوع string هست که خروجی این متد را ما لازم داریم.

کد برنامه بنده به این صورت شده ولی کماکان مشکل داره.

تشکر بابت همکاری و راهنمایی شما.


//field
definition
private String currentWord;
private String currentQuestion;
//Select Word And Store Dashed Version
selectedWord = selectWord();
wordDashed = getDashWord(selectedWord);

//Method definition
private String selectWord() {
String[] words = {"تهران","شیراز"};
String[] questions = {"پایتخت ایران","مرکز فارس"};
int randomIndex = (int) (Math.random() * words.length);
currentWord = words[randomIndex];
currentQuestion = questions[randomIndex];
}

پاسخ به سوال 
Reza  9 سال پیش
+2 0

سلام ، چون متغیر currentWord یک فیلد هست و داری داخل متد مقدار دهی میکنی ، نیاز نیست متد خروجی داشته باشه ، چون فیلد داخل متد مقدارش رو میگیره . برای همین نوع خروجی رو حذف کن و متد selectWord رو فقط صدا بزن ( متغیر selectedWord هم حذف کن چون currentWord داری ) :

 //field definition
private String currentWord;
private String currentQuestion;
//Select Word And Store Dashed Version
selectWord();
wordDashed = getDashWord(currentWord);

//Method definition

private void selectWord() {
String[] words = {"تهران","شیراز"};
String[] questions = {"پایتخت ایران","مرکز فارس"};
int randomIndex = (int) (Math.random() * words.length);
currentWord = words[randomIndex];
currentQuestion = questions[randomIndex];
}

یا میشه اینطوری نوشت ( متد دارای خروجی ) :

 //field definition
private String currentWord;
private String currentQuestion;
//Select Word And Store Dashed Version
currentWord = selectWord();
wordDashed = getDashWord(currentWord);

//Method definition

private String selectWord() {
String[] words = {"تهران","شیراز"};
String[] questions = {"پایتخت ایران","مرکز فارس"};
int randomIndex = (int) (Math.random() * words.length);
currentQuestion = questions[randomIndex];
return words[randomIndex];
}

این دو روش فرقی با هم نداره ، نتیجش یکیه .

پاسخ به سوال 
saeid.deh  9 سال پیش
0 0

ممنونم دوست عزیز.

حالا یه text view با آی دی  txt_word دارم که کلمه رو داخلش نشون میده و یه دونه هم txt_question که قراره سوال توش قرار بگیره.

در رابطه مقداردادن txt_question  به آرایه سوال ها را هنماییم کنید.ممنون میشم.

مقدار دهی برای کلمه به صورت زیر است:

بازم ممنون بابت راهنماییتون.

// Select Word And Store Dashed Version
selectedWord = selectWord();
wordDashed = getDashWord(selectedWord);

// Initialize UI
txt_word.setText(wordDashed);
0 0
خب ما سوال رو توی currentQuestion ذخیره کردیم دیگه. ;(txt_question.setText(currentQuestion (9 سال پیش)
پاسخ به سوال 
saeid.deh  9 سال پیش
0 0

خب درسته من هم اینکارو انجام داده بودم ولی الان txt_question سوال رو انتخاب میکنه و در txt_word به ازای جواب "-" میزاره ولی وقتی روی کیبورد مجازی زده میشه حروف مربوطه در جای خودش قرار نمیگیره و به ازای هر حرف یه بار به دفعات اشتباه اضافه میشه.یعنی چه درست باشه چه اشتباه بعد از 8 بار خارج میشه.در این قسمت worddashed = getdashword قرار گرفته که getdashword خودش یه متد هست که میاد به ازای کلمه "-" قرار میده.آیا برای question  هم باید متد جدا تعریف بشه؟ممنون میشم راهنمایی کنید.ممنون از راهنماییاتون.

0 0
نه دیگه نمی خواد برای question هم متد بنویسید. حتما الگوریتم برنامه رو اشتباه نوشتید. (9 سال پیش)
0 0
در ضمن لطفا پاسخ اضافی درج نکنید و اینجور سوال ها رو به عنوان نظر درج کنید. (9 سال پیش)
0 0
بله حتما.با عرض معذرت بنده اطلاع نداشتم.الگوریتم برنامه همون چیزی هست که استاد نوی کلیپ آموزشی گفتند و تغییری نکرده.اگه امکانش باشه از طریقی بنده اسکرین شات رو برای شما ارسال کنم ک ببینید کجا اشتباه کردم.ممنون (9 سال پیش)
0 0
دوستان کسی میتونه در رابطه با مشکل بالا بنده رو راهنمایی کنه؟همه جای کد درسته ولی وقتی روی کیبورد مجازی میزنم حرفی رو جاگزین نمیکنه به جای "-" و فقط به دفعات اشتباه اضافه میشه و بازی تموم میشه.ممنون میشم راهنمایی کنید. (9 سال پیش)
پاسخ به سوال 
saeid.deh  9 سال پیش
0 0

باسلام.

دوستان عزیز بنده در رابطه با سوال بالا همچنان مشکل دارم و به نتیجه نرسیدم.ممنون میشم یاری کنید.هرچقدر هم کد رو چک میکنم به نظرم درسته و مشکلی نداره

ولی کماکان کلمات ازکیبورد مجازی در text کلمه بجای دش ها نمیشینه.

بازم ممنون و معذرت. 


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