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

سوال در مورد کد بازی دوز

alisajadi  10 سال پیش  10 سال پیش
0 0

سلام.

من قسمت های مشخص در تصویر پیوست رو متوجه نشدم.

ممنون میشم توضیحی بدید و بفرمایید که چرا همچین کدی نوشته شده.

ممنون.

 

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
FSR  10 سال پیش
+5 0

استاد خودش خیلی خوب توضیح داده !

قسمت اول که دورش خط کشیدی مربوط میشه به تبدیل آرایه ی یک بعدی به دو بعدی به وسیله ی یه فرمول ساده

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

 

حالا ما می خوایم ستون اول رو به ستون دوم تبدیل کنیم (آرایه اول به آرایه دوم)  برای این کار باید یه کد کلی بنویسیم که رویه همشون جواب بده مثلا می خوایم 5 رو به (2و1) تبدیل کنیم 

طبق فرموله گفته شده خط اولش 5 رو تقسیم بر 3 میکنیم و میریزیم تویه row  جواب میشه 1.66 از اونجایی که خونه های ما مقدار صحیح هستند ما هم باید این عدد رو به عدد صحیح تبدیل کنیم که برای این کار از math.floor استفاده میکنیم(floor یعنی کف یا جز صحیح) و چون نمیشه یه عدد اعشاری رو به int نسبت داد پس اونو Cast میکنیم(این طوری (int))

حالا میرسیم به خط دوم : خط دوم میخواد ستون آرایه ی دو بعدی رو پیدا کنه برای اینکار میگه باقی مانده ی 5 تقسیم بر 3 که میشه 2 به همین سادگی این کد برای همشون صادقه خودت امتحان کن!

میرسیم به کادر دوم و سوم : تویه این دستور گفته که اگه بازیکن اول رویه خونه ای کلیک کرد اون خونه مقدارش بشه 1 اگه دومی کلیک کرده بود بشه 2 که این طوری راحت تر بشه تشخیص داد کی برنده شده

رسیدیم کادر 4و5 : تویه این کادر گفته که وقتی که بازیکنی  رویه یکی از خونه ها کلیک کرد چک کن ببین برنده شده یا نه

برای این کار گفته چک کن ببین سطری مقدارش با هم برابره یا نه  که مقدارش برا بازیکن اول 1 برا دومی 2 

امیدوارم که یاد گرفته باشی اگه قسمتی شو بازم نفهمیدی بگو بیشتر توضیح بدم 

موفق باشی!

پاسخ به سوال 
alisajadi  10 سال پیش
+1 0

سلام.

در مورد قسمت های مشخص شده در کد زیر سوال داشتم.

در کادر اول، مانند عملیات ریاضی به طرف چپ دقت می شه؟ یعنی اگه طرف چپ درست بود و بازیکن اول داشت بازی می کرد، عملیات انجام می شه و به کاربر غیر اول تغییر پیدا می کنه؟ یا طرف ها مهم نیست؟

کادر دوم رو توضیح میدین که چرا دو متغیر i و j در حلقه نوشته شده؟

سپاس گزارم

 

پاسخ به سوال 
Sara.gh  10 سال پیش
+3 0

ببینید در کادر اول گفته شده که IsPlayerOne هرچی که بود not بشه. یعنی اگر 1 بود 0، و اگر 0 بود 1 بشه! که اگر 1 باشه نوبت باریکن اول هست و اگر 0 باشه نوبت به بازیکن دوم میرسه! به همین سادگی!

در کادر دوم هم چون یک آرایه ی دو بعدی داریم سطر آرایه رو با یک متغیر (i) و سطون آرایه رو با یک متغیر دیگه (j ) میخونیم.

 یعنی: [ i ] [ j ]

به این صورت که وقتی دوتا حلقه for تودرتو داریم اول حلقه ی درونی تر به پایان میرسه بعد حلقه ی بیرونی. یعنی مثلا به ازای i=1

j برابر با 1 و2 و 3 میشه یعنی خونه های [1,1] و [1,2] و [1,3] خونده میشن بعد به i یکی اضافه میشه و دوباره حلقه ی j از اول فراخونی میشه و اینبار خونه های [2,1] و [2,2] و [2,3] خونده میشن و به همین ترتیب الی آخر...

امیدوارم مطلبو خوب رسونده باشم.

+2 0
مرسی از اینکه توضیحات من رو کامل کرد ! (10 سال پیش)

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