کد شما تا جای خوبی پیش رفته اما فکر کنم چون یک مقدار ناخوانا هست باعث میشه هنگام تحلیلش دچار مشکل بشیم بنابراین ترجیح می دهم بیشتر در خصوص کد خودم توضیح بدم چون به اون مسلط ترم
حالا چند نکته هست فکر کنم باید روشن بشه
چون گفتید از شما خواسته اند فقط while استفاده بشه لازمه نحوه تبدیل if و for را به while توضیح بدم
اگه دستور if اینجوری باشه:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
معادل while آن اینجوری میشه:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه دستور for اینجوری باشه:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
معادل while آن اینجوری میشه:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یک توضیح هم در مورد کد که اصلاحش کردم اون اشکال رفع شد
ما در اینجا دو تا سیستم مختصات داریم یکی مربوط به صفحه نمایش ویکی هم سیستم مختصاتی که داخل اون محدوده هست
مختصات * ها همون محدوده + ها هاست که باید برای چاپ تبدیل به مختصات نمایش بشه . متغیرهای xو y مختصات گوشه بالا سمت چپ مستطیل توپر هستند که بر اساس مختصات محدوده بدست می آیند و وقتی کلیدهای جهتی زده می شوند مختصات آنها کم و زیاد میشه و وقتی که به محدوده ها می رسند با استفاده از شرط مقدار اون رو به صفر یا آنطرف محدوده تغییر می دهیم
تا اینجاش مشکلی نیست اما غیر از ستاره گوشه بالا سمت چپ سایر ستاره ها چه باید بکنند؟
ما یک عملگر داریم به نام باقیمانده یا % که وقتی هر عدد راتقسیم بر اندازه محدوده می کنیم و باقیمانده اون رو بدست بیاوریم جوابش همین میشه که می بینیم یعنی باقیمانده تقسیم هر عدد بر n هیچ وقت از n بیشتر نمیشه یعنی اگه مثلا n برابر با 10 باشه و اعداد صفر تا صد رو تقسیم بر اون کنیم جواب باقیمانده آن مرتبا از صفر تا 10 تکرار میشه یعنی همون چیزی که ما دنبالش هستیم
برای تبدیل مختصات داخل محدوده به مختصات صفحه نمایش اولا دو متغیر داریم به نام mabdax , mabday که مختصات گوشه محدوده را در مبنای صفحه نمایش نشان می دهند که باید آنها را به اضافه 1 کنیم چون از علامت + یک خانه پایین تر بیایم و نهایتا اون را تقسیم بر اندازه داخل محدوده کرده باقیمانده آن را بدست می آوریم تا از باقیمانده جهت مختصات ستاره ها استفاده شود
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید