ورود

نسخه کامل مشاهده نسخه کامل : چگونگی عمل تقسیم و تفریق در فلش؟



samane1370
04-11-2012, 10:45
سلام
من دارم 4 عمل اصلی رو در فلش درست میکنم
عمل جمع و ضرب رو درست کردم
فقط میخواستم بدونم برای تقسیم و تفریق چکار کنم؟
درواقع پروژه ی من به این صورت هست که کاربر از بین چهار عمل اصلی یکی رو انتخاب میکنه بعد اسمش رو وارد میکنه و وارد بازی ریاضی میشه
حالا اگر مثلا تقسیم یا تفریق رو انتخاب کنه به مشکل برمیخورم!!
چون 2 تا عدد تصادفی تولید میشه و کاربر باید جواب رو از بین جواب هایی که در پایین صفحه قرار دادم استفاده کنه
مثلا وقتی تفریق هست عدد اولم نباید کوچکتر از عدد دوم باشه و برای تقسیم هم اگه عدد اول 0 باشه یا کوچکتر از عدد دوم باشه در اون صورت جواب تعریف نشده یا به صورت کسری درمیاد
که من نمیخوام اینجوری بشه. میخوام همه ی جواب های تقسیم عدد صحیح باشه.

چکار باید انجام بدم

در ضمن من فقط جواب های این چهار عمل اصلی رو بین عدد 1 تا 10 قرار دادم در واقع یه پروژه کوچیک هست
یه راحلش برای تفریق این هست که عدد اول وقتی تصادفی تولید میشه بعلاوه یه عدد دیگه بشه تا همواره بزرگتر از عدد اولی باشه و در ضمن عدد دومی هم رندومش بین 0 تا 3 باشه!!
ولی این خیلی مسخره به نظرم میاد!!

1w2w3w4w
05-11-2012, 09:09
کاری که میخوای بکنی کلا عجیب غریبه
خوب شما که میخوایین یه عدد بین 0 تا 10 داشته باشین یه کد بنویسید که رندوم بین 0 تا 10 عدد بده دیگه ضرب و تقسیم و این حرفا چیه؟!:sq_11:

samane1370
05-11-2012, 11:46
سلام
خب پروژه ی من چهار عمل اصلی رو اعداد تصادفی است.
به این صورت که کاربر از بین جمع،تفریق،ضرب،تقسیم یکی رو انتخاب میکنه بعد از بین اعداد 0 تا 10 دوتا عدد تصادفی نشون داده میشه که کاربر باید جواب درست رو که در پایین صفحه از بین جواب ها انتخاب کنه اگه درست انتخاب کنه یه امتیاز میگیره و عدد تصادفی بعدی رو نمایش میده اگه نه که زمان رو از دست داده و عدد تصادفی بعدی رو باید جواب بده تا اینکه اگه امتیازش به حد نصاب رسید برنده میشه اگه نه Game Over میشه و امتیاز اونی که تا حالا بیشتر از همه امتیاز داشته به همراه اسمش نشون داده میشه.
چجوری میتونم فایلمو آپ کنم تا بهتر منظورمو رسونده باشم؟!!!؟؟

samane1370
05-11-2012, 21:51
چرا هیچکس جوابمو نمیده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :sq_3:

1w2w3w4w
06-11-2012, 00:33
فکر کنم منظورت رو فهمیدم...
خوب میتونی برای تفریق یه if بزاری که اگه عدد دوم بزرگتر از عدد اول باشه دوباره اونو تا زمانی که عدد کوچکتر بشه ادامه بده

یه جای دیگه اپش کن لینکشو بزار اینجا

samane1370
09-11-2012, 14:18
سلام من پروژه مو آپلود کردم میتونید ببینیدفقط مشکل جدیدم اینه که وقتی روی شروع دوباره بازی که میزنم میخوام امتیاز و زمان صفر بشه دوباره از صفر شروع شه ولی اونجوری نمیشه هرکاری میکنم!!:sq_3:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

samane1370
09-11-2012, 16:51
خودم قسمت امتیاز و زمان رو درست کردم......

این دو نوشتم درست شد:
timer=50;
counter=0;

قبلش هرکاری میکردم نمیشد ولی الان درست شد...:sq_20:

samane1370
09-11-2012, 17:17
من الا میخوام اون شرط if رو بنویسم کجای این کد قرار بدم؟

on(press){
sub=num1-num2;
btn_6=6;
num3=sub;

if(sub==btn_6){
afarin_mc._visible=true;
false_mc._visible=false;

counter_txt.text = Number(counter_txt.text) +1;
}

else {

false_mc._visible=true;
afarin_mc._visible=false;
}

}
on(release){
false_mc._visible=false;
afarin_mc._visible=false;
num3=""
num1=1;
num2=1;
num1=num1*random(5);
num2=num2*random(5);
}

1w2w3w4w
09-11-2012, 18:05
اونجایی که میگین به num2 یه مقدار random بده البته من با as3 کار میکنم... !

فک کنم اگه بجای if از while استفاده کنی بهتر باشه یعنی بهش میگی تازمانی که عدد دوم کمچیک تراز اولی هست بهش مقدار رندوم بده

اون فایل تون هم دانلود کردم کار قشنگیه بهتون تبریک میگم و لی برای من ناقص اجرا میشد تایمر نداشت امتیاز رو نشون نمی داد فقط عمل ضرب رو داشت

on(release){
false_mc._visible=false;
afarin_mc._visible=false;
num3=""
num1=1;
num2=1;
num1=num1*random(5);


while(num2 < num1)
{
num2=num2*random(5);
}
}

samane1370
10-11-2012, 13:14
ممنون از جواب....الان میذارم تو قسمت تفریق ببینم چی میشه....:sq_8:

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

فقط یه سوال دیگه من میخوام این بازی ریاضی، دو نفره باشه! چطوری دو نفره ش کنم؟؟
استادم گفت طوری بنویس که دو نفر بتونن باهاش بازی کنن، یعنی یبار نفر اول جواب بده یبار نفر دوم!! منکه منظورشو نفهمیدم!:sq_12:

اینم لینک درست فایل: [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

samane1370
10-11-2012, 13:50
اونجایی که میگین به num2 یه مقدار random بده البته من با as3 کار میکنم... !

فک کنم اگه بجای if از while استفاده کنی بهتر باشه یعنی بهش میگی تازمانی که عدد دوم کمچیک تراز اولی هست بهش مقدار رندوم بده

اون فایل تون هم دانلود کردم کار قشنگیه بهتون تبریک میگم و لی برای من ناقص اجرا میشد تایمر نداشت امتیاز رو نشون نمی داد فقط عمل ضرب رو داشت

on(release){
false_mc._visible=false;
afarin_mc._visible=false;
num3=""
num1=1;
num2=1;
num1=num1*random(5);


while(num2 < num1)
{
num2=num2*random(5);
}
}

من این کدو نوشتم ولی افتاد تو loop !!! بعدش کل پروژه مو بست!!

بعدش چرا عدد دوم رو براش حلقه نوشتین؟ من منظورم این بود که اگه عدد اول کوچکتر از عدد دوم باشه در اونصورت توی تفریق جواب منفی میشه.
و من نمیخوام اصن جواب منفی داشته باشم!
حلقه رو نباید برای عدد اول بنویسیم؟؟ و اگه نوشتیم چکار کنم تو loop نیفته؟

samane1370
11-11-2012, 21:39
کسی جوابمو نمیده؟؟ خیلی فوریه....توش گیر کردم....چجوری بازی رو دو نفره طراحی کنم:sq_21:

1w2w3w4w
11-11-2012, 23:29
یه سوال همه کد ها رو خودتون نوشتین یا یه فایل آماده گیر اوردین و تغییرش میدین؟!

دو نفره کردن چیز خاصی نیست یعنی دو متغییر برای دو بازیکن درست کنید و یه بار متغییر اول امتیاز بگیره و بار دوم متغییر دوم و همینطور ادامه پیدا کنه.

خوب میتونی به جای while بنویسی

if(num1<num2)
{
s=num2-num1
num1=num1+s+1
}
else
{
num1=num1
}

samane1370
12-11-2012, 11:30
یه سوال همه کد ها رو خودتون نوشتین یا یه فایل آماده گیر اوردین و تغییرش میدین؟!

دو نفره کردن چیز خاصی نیست یعنی دو متغییر برای دو بازیکن درست کنید و یه بار متغییر اول امتیاز بگیره و بار دوم متغییر دوم و همینطور ادامه پیدا کنه.

خوب میتونی به جای while بنویسی

if(num1<num2)
{
s=num2-num1
num1=num1+s+1
}
else
{
num1=num1
}

ممنون...
خودم نوشتم البته 3 سال پیش برای پروژه کاردانیم نوشته بودم براهمین بعضی کدها یادم رفته حالا استادمم گیر داده باید دو نفره باشه!!
از کجا اون متغیرهام بفهمن که امتیاز نفر اول هسش یا نفر دوم؟

استادم گفت تو صفحه بازی که الن برای یه نفر طراحی شده برای دو نفر طراحی بشه یعنی عین همون تایمر امتیاز و عددهای تصادفی برای نفر دوم هم باشه در واقع صفحه به دو قسمت تقسیم شه
بعد یبار نفر اول جواب بده یبار نفر دوم!! چجوری این کارو انجام بدم!؟؟

samane1370
12-11-2012, 12:32
if(num1<num2)
{
s=num2-num1
num1=num1+s+1
}
else
{
num1=num1
}

اینم نشد!! پس تصادفی عدد دوم چی شد؟؟قبل از if چی باید بنویسم؟؟
من الان پروژه رو آپ میکنم خودتون ببینید که قسمت منها به چه صورت هست...
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

1w2w3w4w
12-11-2012, 13:05
این کد رو اینجا بزار


on(release){
false_mc._visible=false;
afarin_mc._visible=false;
num3=""
num1=1;
num2=1;
num1=num1*random(5);
num2=num2*random(5);


if(num1<num2)
{
s=num2-num1
num1=num1+s+1
}
else
{
num1=num1
}

}


نگا کن الان تو برنامه شما یه متغییر هستش که هر وقت درست جواب بدن یکی اضافه میشه حالا شما دوتا متغییر میزاری که با کلیکهای فرد نفر اول و با کلیک های زوج نفر دوم امتیاز بگیره چیز سختی نیست...!

samane1370
12-11-2012, 14:34
این کد رو اینجا بزار


on(release){
false_mc._visible=false;
afarin_mc._visible=false;
num3=""
num1=1;
num2=1;
num1=num1*random(5);
num2=num2*random(5);


if(num1<num2)
{
s=num2-num1
num1=num1+s+1
}
else
{
num1=num1
}

}


نگا کن الان تو برنامه شما یه متغییر هستش که هر وقت درست جواب بدن یکی اضافه میشه حالا شما دوتا متغییر میزاری که با کلیکهای فرد نفر اول و با کلیک های زوج نفر دوم امتیاز بگیره چیز سختی نیست...!

واقعا ممنون درست شد....فقط یه سوال دیگه برای قسمت تقسیم این کدو چه تغییری بدم؟
نمیدونم چرا یه مشکل پیش اومده همه ی ماهی ها حالت چشمکی شدن!! عین این تبلیغات که چشمک میزنن فکر کنم آپلود هم کردم اینجوری هست
من اومدم از scene استفاده کردم و به این صورت هسش:

scene1: صفحه اصلی
scene2: جمع
scene3: تفریق
scene4: ضرب
scene5: تقسیم

هرکدوم از دکمه های جمع و تفریق و... انتخاب کنه وارد این scene ها میشه...
حالا نمیدونم چرا پروژه م بهم ریخته با اینکه اسم تموم آبجکت های هر scene فرق میکنه.

1w2w3w4w
12-11-2012, 15:28
فایلتون رو تک فریمی درست کردین؟

احتمال داره یه فریم خالی اضافی داشته باشین؟!

samane1370
12-11-2012, 16:27
نه تک فریم نیست تا صبح درست بود یدفه قاطی کرد
میشه ایمیل تون رو بدید براتون ایمیل کنم فایل fla رو؟

1w2w3w4w
12-11-2012, 20:56
eh.flasher@gmail.com

samane1370
13-11-2012, 12:59
سلام براتون فایل رو فرستادم...

samane1370
14-11-2012, 11:59
سلام

اون قسمتو درست کردم دیگه چشمک نمیزنه!

الان قسمت تقسیم رو میخوام بنویسم میخواستم مثل قسمت تفریق بشه اون کد if رو باید کدوم قسمتشو عوض کنم؟

samane1370
14-11-2012, 15:56
قسمت تقسیم رو چجوری بنویسم؟؟:sq_11:

1w2w3w4w
14-11-2012, 17:53
ساعت 11:59 پست میزنی دو باره ساعت 15:56 پست میزنی... تازه اونم با این شکلک:sq_11:

عزیز من اینا مشکل فلش نیست اینا یه سری معادلات ریاضیه که باید الگوریتمشو بدست بیاری :thumbsdow نا سلامتی پروژتونه....

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

به یه الگوریتم فک بکنید که عدد دوم مضربی از عدد اول باشه. فکرکن ... فکرکن.....

samane1370
14-11-2012, 18:23
ببینم اصلا فهمیدین اون کار مسخره ای که برای حل مشکل تفریق کردم چی بود؟؟؟؟
به یه الگوریتم فک بکنید که عدد دوم مضربی از عدد اول باشه. فکرکن ... فکرکن.....

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ](44).gif
راه حلتون مسخره نبود خیلی هم خوب بود
چرا ب خودتون توهین میکنید

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

samane1370
14-11-2012, 21:16
دو نفره کردن چیز خاصی نیست یعنی دو متغییر برای دو بازیکن درست کنید و یه بار متغییر اول امتیاز بگیره و بار دوم متغییر دوم و همینطور ادامه پیدا کنه.


قسمت تقسیم درست شد دیگه اون حروفم نشون نمیده...
الان فقط قسمت دونفره مونده.
گفتین دوتا متغیر تعریف کنم خب گذاشتم
الان ما یه صفحه بازی داریم که قسمت امتیاز ، تایمر ، اعداد تصادفی دوتاست برای دونفر
ولی وقتی وارد صفحه میشی هر دو عدد تصادفی نشون داده میشه که حالا کاربرا باید جواب بدن هرکدوم که جواب میده امتیاز میگیره
ولی مشکل اینجاس وقتی یه نفر جواب میده باید زمان اون یکی نگه داشته بشه؟ یا نه؟؟
یا اینکه یه زمان داشته باشیم ولی امتیاز و اعداد تصادفی دوتا باشه

اینجوری باید قرار بدم؟؟ یعنی این طرز فکر درسته؟

1w2w3w4w
14-11-2012, 21:32
امیدوارم پست قبلیم نشونگر ناراحتی و یا بی احترامییم نبوده باشه. ببخشید:11:

آره باید دوتا تایمر داشته باشید میدونید تو اکشن 3 یه دستور هست به اسم timer.start و timer.stop() شما باید یه مقدار boolean داشته باشید که با هربار کلیک بر روی ماهیا true و false بشه و با یه if به کارتون ادامه بدید که هروقت true بود تایمر اول استارت بشه و به امتیازای کاربر اول اضافه بشه و هروقت false شد تایمر اول stop و تایمر دوم stop بشه و به متغییر بازیکن دوم اضافه بشه و همینجور ادامه پیدا مکنه...i

samane1370
18-11-2012, 19:40
on(press){
sub=num1-num2;
sub2=num4-num5;

btn_6=6;

num3=sub;
num6=sub2;

if(sub==btn_6 && bool==true){
bool=false;
afarin2_mc._visible=false;
false2_mc._visible=false;

afarin_mc._visible=true;
false_mc._visible=false;
this.counter_txt.text = Number(this.counter_txt.text) +1;
}
//else {
// false_mc._visible=true;
// afarin_mc._visible=false;
// }
//////////////////////////////////////////
else if(sub2==btn_6 && bool==false){
bool==true;
afarin_mc._visible=false;
false_mc._visible=false;

afarin2_mc._visible=true;
false2_mc._visible=false;
this.counter2_txt.text = Number(this.counter2_txt.text) +1;
}
//else {
// false2_mc._visible=true;
// afarin2_mc._visible=false;
// }
}
on(release){
false_mc._visible=false;
afarin_mc._visible=false;
false2_mc._visible=false;
afarin2_mc._visible=false;
if (bool==true)
{
num4="";
num5="";
num6="";
num3=""
num1=1;
num2=1;
num1=num1*random(5);
num2=num2*random(5);
if(num1<num2)
{
s=num2-num1;
num1=num1+s+1;
}
else
{
num1=num1;
}
//bool=false;
}
else
{
num1="";
num2="";
num3="";
num6=""
num4=1;
num5=1;
num4=num4*random(5);
num5=num5*random(5);
if(num4<num5)
{
s=num5-num4;
num4=num4+s+1;
}
else
{
num4=num4;
}
//bool=true;
}
}