در این سوال به شما دو عدد صحیح مثل و داده میشود. از شما میخواهیم برنامهای بنویسید که مقدار و را دریافت کند و را چاپ کند.
در تنها سطر ورودی، دو عدد صحیح و که با یک فاصله از هم جدا شدهاند، داده میشود.
در تنها سطر خروجی، مقدار را چاپ کنید.
Php8
نیازی نیست بررسی کنید که ورودی داده شده مطابق شرایط گفته شده باشد. محدودیتها تنها برای اطلاع شما از تستها و محدودیتهای مسئله هستند و در ورودیهای داده شده به برنامه شما رعایت میشوند. بنابراین نیازی نیست کد زیر را بنویسید:
میتوانید در حین پردازش ورودیها، خروجیها را چاپ کنید. پس نیازی نیست ابتدا همهی ورودیها را جمعآوری کنید و سپس همهی خروجیها را چاپ کنید. بهویژه برای سوالاتی که باید به چندین سوال پاسخ دهید، میتوانید قسمت ورودی و خروجی را کاملاً مستقل از هم در نظر بگیرید و نگران تداخل نباشید.
از چاپ پیامهای اضافی مثل :please enter a number
برای دریافت ورودی خودداری کنید. برای مثال در زبان PHP نباید کدی مانند زیر بنویسید:
برای اطلاعات بیشتر درباره نحوه دریافت ورودی و چاپ خروجی در PHP
، میتوانید به این لینک مراجعه کنید.
شرکت شبکهی الکترونیکی پرداخت کارت که به شاپرک معروف است تصمیم گرفته جملات انگیزشی به زبان انگلیسی را روی دیوار شرکت بنویسد. این جملات باید با حروف بزرگ انگلیسی و بدون علائم نگارشی چاپ شوند.
جملهی مدنظر به صورت رشتهی داده میشود. وظیفهی شما نوشتن برنامهای است که تعداد هر حرف از حروف انگلیسی بدون توجه به بزرگ و کوچک بودن حروف، در این جمله را شمارش و چاپ کند.
برای بهتر متوجه شدن خواستهی سوال به نمونههای پایین سوال توجه کنید.
در تنها سطر ورودی، یک رشته مثل در یک سطر داده میشود.
در تنها سطر خروجی، ۲۶ عدد که با فاصله از هم جداشدهاند، چاپ میشود. عدد ام نشان دهندهی تعداد کاراکترهای لازم برای چاپ امین حرف انگلیسی است.
در کهکشانی که کیهانشناسها آن را «پردیس» مینامند، سیستم تقویم همهی سیارههای این کهکشان، به صورت است.
در تقویم هر سال از روز تشکیل میشود. اهالی این سیاره سالهای خود را به ماه با شمارههای ۱، ۲، ...، و در هر ماه روز با شمارههای ۱، ۲، ...، قرار میدهند.
فیروز در سیارهای از کهکشان «پردیس» زندگی میکند. در این سیاره سیستم تقویم است و فیروز متولد روز از ماه است. فیروز میخواهد به سیارهای برود که در آن تقویم به سیستم است.
فیروز میخواهد بداند روز و ماه تولد او در سیارهی جدید به چه صورت است. فرض کنید در سال تولد فیروز، روز ۱ از ماه ۱ در هر دو تقویم یکسان بوده است.
برای بهتر متوجه شدن سوال به نمونهها دقت کنید.
در سطر اول ورودی، دو عدد و داده میشود. در سطر دوم ورودی، دو عدد و داده میشود. در سطر سوم ورودی، دو عدد و داده میشود.
در تنها سطر خروجی و را چاپ کنید که تاریخ تولد فیروز در تقویم دوم است.
در این نمونه، تقویم اول دارای ۱۲ ماه است و هر ماه ۳۰ روز دارد. تقویم دوم دارای ۲۴ ماه است و هر ماه ۱۵ روز دارد. فیروز در روز ۲۷ از ماه ۸ در تقویم اول به دنیا آمده است. پس تولد او روز ۱۲ از ماه ۱۶ در تقویم دوم است.
در این نمونه، تقویم اول دارای ۱۰ ماه است و هر ماه ۲۸ روز دارد. تقویم دوم تنها یک ماه دارد که ۱۰۰ روز طول میکشد. فیروز در روز ۱۱ از ماه ۳ در تقویم اول به دنیا آمده است. پس تولد او روز ۶۷ از ماه ۱ در تقویم دوم است.
در این نمونه، تقویم اول دارای ۱۲ ماه است و هر ماه ۳۰ روز دارد. تقویم دوم دارای ۱۰ ماه است و هر ماه ۱۰ روز دارد. فیروز در روز ۲۴ از ماه ۱۲ در تقویم اول به دنیا آمده است. پس تولد او روز ۴ از ماه ۶ در تقویم دوم است.
مجموعه رویدادهای المپیکفناوری پردیس امسال هم رو به پایان است. این سری رویداد که امسال با شکوه بیشتری نسبت به تمام رویدادهای دیگر برگزار شد قرار است در پایان، مراسمی مجلل برای اهدای مدالها و جوایزی ویژه به نفرات برتر شرکتکننده داشته باشد. یونس مسئول هماهنگی این جشن بزرگ است و از شما که دستیار وی هستید برای انجام کارهای مربوط به جشن کمک میخواهد.
شما میتوانید پروژهی اولیه را از این لینک دانلود کنید.
تابعی با نام handleCeremony
پیادهسازی کنید که آرایهای از افراد را که کلاس Person
نمایندهای از آنهاست را تحویل میگیرد و سپس این افراد را به صورت نزولی مرتبسازی میکند تا لیستی برای مراسم اهدای جوایز آماده شود.
Person
🔗این کلاس نمایندهی افراد شرکتکننده در رویداد المپیکفناوری است. ساختار متدها و ویژگیهای کلاس به شکل زیر تعریف میشود:
personName
: این ویژگی به صورت رشتهای از نام فرد شرکتکننده در رویداد است.bootcampScore
: این ویژگی به صورت عدد صحیح مثبت بیانگر امتیازی است که فرد در بوتکمپهای المپیک فناوری کسب کرده است. ضریب این ویژگی است.onlineContestScore
: این ویژگی به صورت عدد صحیح مثبت بیانگر امتیازی است که فرد در مسابقات مجازی المپیک فناوری کسب کرده است. ضریب این ویژگی است.inpersonContestScore
: این ویژگی به صورت عدد صحیح مثبت بیانگر امتیازی است که فرد در مسابقات حضوری المپیک فناوری کسب کرده است. ضریب این ویژگی است.passionRate
: این ویژگی به صورت عددی اعشاری بیانگر میزان شور و اشتیاق فرد است که توسط داوران مسابقه تعیین میشود و مقداری بین تا دارد. ضریب این ویژگی است.calculateTotalScore
: این متد مجموع وزندار امتیاز فرد را با توجه به ضرایب ویژگیها محاسبه میکند.displayInfo
: این متد اطلاعات شرکتکننده را چاپ میکند.شما باید تابع handleCeremony
را به صورتی پیاده سازی کنید که افراد را بر اساس مجموع وزندار امتیازهایشان به صورت نزولی مرتبسازی کند. در این بین اگر مجموع وزندار امتیاز دو فرد با یکدیگر برابر شد، اولویت در مقایسه و رتبهدهی بر اساس ویژگی با ضریب بیشتر است. یعنی اگر دو فرد در مجموع امتیاز یکسانی داشته باشند، فردی در مرتبسازی قبلتر ظاهر میشود که امتیازinpersonContestScore
او بزرگتر باشد. (در صورتی که این ویژگی نیز در هر دو فرد برابر بود به سراغ امتیاز onlineContestScore
میرویم و به همین شکل...)
پس از مرتب سازی صرفا باید اطلاعات نفر برتر رویداد ( نفر اول در مرتبسازی انجام شده) توسط فراخوانی متد displayInfo
دریافت و در قالب یک رشته خروجی داده شود.
مقیاسبندی و اعتبارسنجی امتیاز افراد قبلا انجام شده است. همچنین تضمین میشود که تمام امتیازهای هیچ دو فردی با هم برابر نیست.
امضای تابع handleCeremony
بهصورت زیر خواهد بود:
خروجی موردانتظار:
Safar Ali
و Ali Safar
با هم برابر است اما چون امتیاز inpersonContestScore
فردی با نام Safar Ali
بیشتر است پس در رتبهبندی قبل از فردی با نام Ali Safar
قرار میگیرد.یک فایل PHP که تابع handleCeremony
در آن پیادهسازی شده است آپلود کنید.
علی پس از کسب موفقیتهای فراوان در مسابقات برنامهنویسی المپیکفناوری به مجموعه پارک علموفناوری پردیس رفته تا علاوه بر دریافت جوایزش، طبق قولی که به او داده شده بود در یکی از زیرمجموعههای این پارک فناوری استخدام شود. مسئولین این مجموعه برای سنجش تواناییهای علی به او مسئولیت سنگین تصحیح کامل پاسخبرگهای آزمون کنکور پردیس را دادند و از او در نهایت علاوه بر اعلام نمرات هر داوطلب، گزارش کاملی از سوالات نیز میخواهند.
شما میتوانید پروژهی اولیه را از این لینک دانلود کنید.
تابعی با نام evaluateQuiz
پیادهسازی کنید که آرایهای از پاسخهای داوطلبان در کنکور چهارگزینهای پردیس را همراه با آرایهای از پاسخهای درست آزمون دریافت میکند و طبق قوانین و شرایط زیر نمرات هر شخص را مشخص کرده و در نهایت نمرات را همراه با گزارش کاملی از سوالات خروجی میدهد. همچنین شما باید کلاسی به نام FraudDetection
را پیادهسازی کنید که متقلبین را شناسایی کند!
evaluateQuiz
evaluateQuiz
🔗FraudDetection
را مطابق با توضیحات بخش این کلاس دریافت میکند تا در بدنه کلاس از آن جهت شناسایی افراد متقلب استفاده کند.evaluateQuiz
evaluateQuiz
🔗خروجی تابع evaluateQuiz
به صورت رشته ای با ساختار زیر خواهد بود:
توضیحات مقادیر خروجی به شکل زیر است:
scores
: آرایهای است از نمراتی که برای کاربران محاسبه شده است. این مقادیر به شکل اعداد صحیح هستند که خانه -ام مشخص کننده نمره کسب شده توسط نفر -ام است. (در صورتی که برگهی فرد خراب باشد، این مقدار خواهد بود)reports
: این کلید شامل گزارشهای کمی و کیفی آزمون به شکل زیر است:max_score
: مقدار این کلید برابر با بیشترین نمره کسب شده در آزمون است.min_score
: مقدار این کلید برابر با کمترین نمره کسب شده در آزمون است.average_score
: مقدار این کلید برابر با میانگین نمرات کسب شده در آزمون است. این مقدار به صورت عدد اعشاری با دو رقم اعشار به صورت گرد شده است. (این مورد باید با استفاده از تابع round
پیادهسازی شود)questions_average
: مقدار این کلید به صورت آرایهای از اعداد اعشاری با دو رقم اعشار به صورت گرد (این مورد باید با استفاده از تابع round
پیادهسازی شود) شده است که میانگین نمرهای است که افراد مختلف شرکت کننده توانستند از هر کدام از این سوالات کسب کنند. برای مثال اگر پاسخهای افراد به سوال اول به شکل گزینههای 1 1 1 3
باشد و پاسخ سوال گزینه 1
باشد، میانگین نمرهای که کاربران توانستند از این سوال کسب کنند مقدار 2
خواهد بود. (این مورد به صورت ((3 * 3) - 1) / 4 = 2
خواهد بود)questions_labels
: مقدار این کلید به صورت آرایهای از رشتهها است که سطح سوال را مشخص میکند.invalid_answersheets
: مقدار این کلید به صورت آرایهای از اندیس کاربرانی است که پاسخبرگ آنها خراب است. در صورتی که هیچ فردی به این شکل یافت نشد، این مقدار برابر آرایهای خالی خواهد بود.cheating_examiners
: مقدار این کلید به صورت آرایهای از اندیس تمام کاربرانی (هم شامل افرادی که مراقب آنها را متقلب شناسایی کرده و هم شامل افرادی که الگوریتم کشف تقلب پیادهسازی شده، آنها را متقلب شناسایی کرده) است که متقلب شناسایی شدند. در صورتی که هیچ فردی به این شکل یافت نشد، این مقدار برابر آرایهای خالی خواهد بود.evaluateQuiz
checkResults
برای یافتن افراد متقلب در آزمون است. این تابع باید مطابق با توضیحات داده شده در بخش پیادهسازی این کلاس، لیست افراد متقلب را شناسایی کند. پس از شناسایی افراد متقلب باید نمره نهایی آنها نیز مانند پاسخبرگهای خراب در نظر گرقته شود.Easy
: بیشتر مساوی درصد شرکتکنندگان به آن سوال پاسخ درست دادهاند.Medium
: بین درصد تا درصد شرکتکنندگان به آن سوال پاسخ درست دادهاند.Hard
: کمتر مساوی درصد شرکتکنندگان به آن سوال پاسخ درست دادهاند.Brilliant
: هیچ فردی در آزمون به این سوال پاسخ درست نداده است.FraudDetection
کلاس FraudDetection
برای کشف تقلبهای آزمون ساخته شده است. این کلاس در سازنده خود به ترتیب درصد حساسیت sensitivity_percentage
را که عددی بین و است را همراه با آرایهای از اعداد صحیح که اندیسهای افرادی هستند که مراقب آزمون، آنها را متقلب شناسایی کرده است، دریافت میکند. همچنین این کلاس تابعی به نام checkResults
دارد که با دریافت آرایهای دوبعدی از پاسخبرگهای افراد مختلف، با برسی این پاسخبرگها، در صورتی که شخصی وجود داشته باشد که بیشتر مساوی درصد حساسیت مشخص شده از پاسخهایش دقیقا با حداقل یگی از این افراد متقلب یکسان باشد، آن فرد نیز متقلب شناخته خواهد شد. تابع checkResults
در نهایت آرایهای از اعداد صحیح که اندیس تمامی افراد متقلب (هم شامل افرادی که مراقب آنها را متقلب شناسایی کرده و هم شامل افرادی که الگوریتم کشف تقلب پیادهسازی شده، آنها را متقلب شناسایی کرده) میباشد را خروجی میدهد.
FraudDetection
به صورت تزریق وابستگی (Dependency Injection) به تابع نمرهدهی evaluateQuiz
به عنوان ورودی داده خواهد شد.به مثالهای زیر از شیوه کارکرد این کلاس، توجه کنید:
70
است و فردی که به عنوان متقلب شناخته شده است فردی با اندیس شماره 1
است. پس از فراخوانی تابع checkResults
و انجام بررسیهای لازم، به دلیل اینکه پاسخ فردی با اندیس شماره 3
با پاسخ [1, 2, 3, 2]
در سه چهارم (یا به عبارتی در 75
درصد) پاسخبرگ با پاسخ فرد با اندیس 1
مشابهت دارد پس متقلب شناخته میشود.90
درصد پاسخبرگ با پاسخبرگ فرد مختلف با اندیس شماره 0
برابر باشد پس تنها فرد متقلب همان اندیس شماره 0
خواهد بود. (هر دو فرد دیگر در 75
درصد از پاسخبرگهایشان با فرد متقلب مشابهت دارند که این مقدار از درصد حساسیت کمتر است)امضای تابع evaluateQuiz
بهصورت زیر خواهد بود:
امضای کلاس FraudDetection
به صورت زیر خواهد بود:
خروجی موردانتظار:
یک فایل PHP که تابع evaluateQuiz
و کلاس FraudDetection
در آن پیادهسازی شده است آپلود کنید.
معین که پس از شکست در طراحی سوالات خوب برای مسابقات برنامه نویسی #المپیکفناوری از کار خود در کوئرا، برکنار شده است و در حال حاضر مشغول دوز (Tic-tac-toe یا همان بازی ایکس-او خودمان) بازی است! معین که آدم پر دوز و کلکی است و هیچ کاری را مثل سایر افراد انجام نمیدهد، در دوز-بازی هم دوز و کلک جدیدی میزند. او بازی دوز را به این شکل تغییر میدهد که پس از انجام حرکت چهارم، اولین حرکتی که از هر کدام از بازیکنها باقی مانده بود از بازی پاک میشود. معین برای معرفی این بازی به جهانیان قصد دارد تا نسخهی برخطی از آن را با استفاده از لاراول پیاده سازی کند.
پروژهی اولیه را از این لینک دانلود کنید.
برای اجرای پروژه، باید php
و composer
را از قبل نصب کرده باشید.
composer install
را در پوشهی اصلی پروژه برای نصب نیازمندیها اجرا کنید.npm install
را در پوشهی اصلی پروژه برای نصب نیازمندیها اجرا کنید. (توجه کنید که این پروژه از Tailwindcss استفاده میکند)npm run dev
را در مسیر پوشه اصلی پروژه اجرا کنید. در صورتی که این دستور را اجرا نکنید نمیتوانید ویوهای ساخته شده با Tailwindcss را مشاهده کنید.php artisan test
استفاده کنید.در این سوال قرار است شما به سراغ پیاده سازی این بازی هیجانانگیز با استفاده از Livewire3 بروید!
همانطور که در بخش ابتدایی این سوال گفته شد، بازی معینِ دوزُ کلک یک نسخه خاصی از بازی دوز است که در آن پس از انجام حرکت چهارم، قدیمیترین (ابتداییترین) حرکتی که همان فرد انجام داده است باید از صفحه بازی حذف شود! به مثال زیر توجه کنید که در آن پس از حرکت چهارم X
، حرکت اول او از بازی حذف میشود و به این ترتیب جا برای حرکتهای جدید باز میشود. همین شرایط برای بازیکن O
و همچنین سایر حرکتها هم صادق است.
X
یا O
بتواند یک سطر، ستون و یا یکی از قطرهای اصلی را با X
یا O
تماما پر کند.نکته قابل توجه در این نسخه از بازی این است که ممکن است پس از انجام تعدادی حرکت، فرد موقعیت این را داشته باشد که یک سطر، ستون و یا قطر را کامل کند، اما پس از انجام مرحله مورد نظر برای تکمیل خانهها، به جای اینکه یکی از حرکتهای خارج از آن سطر، ستون و یا قطر جایگزین در تنها خانه باقی مانده برای تکمیلشان شود، به دلیل رعایت در ترتیب، یکی از حرکتهایی که در همان راستا قرار دارد در این خانه جایگزین شود. در این صورت فرد باید با طی کردن تعدادی مراحل بازی را به وضعیتی برساند که با رعایت ترتیب درست؛ یک راستا کامل شده و فرد بازی را برنده شود.
در واقع این نسخه از بازی دوز، یک نسخه دارای حافظه میباشد! پس ترتیب حرکتهای انجام شده هم علاوه بر ماهیت و مکان حرکت انجام شده اهمیت خواهد داشت زیرا این مورد در ترتیب حذف شدن حرکتهای X
یا O
از صفحه و برد بازیکن نقش خواهد داشت.
Route
و View
بازی
برای دسترسی به این بازی در پروژه اولیه یک Route
با آدرس /dooz
به صورت پیشفرض تعریف شده است که به ویو dooz
متصل شده است. در این مسیردهی و ویو تعریف شده نباید تغییری داده شود.
در فایل مربوط به ویو dooz
شما باید کامپوننتی (Component) که از قبل در ساختار پروژه اولیه با نام x-o-game
تعریف شده است را استفاده (Include) کنید. این کامپوننت همان بخش اصلی بازی دوز است که قرار است تا اجزای مختلف کامپوننتش را در بخشهای بعدی این سوال پیادهسازی کنید تا در نهایت بازی به درستی اجرا شود.
و در نهایت ساختار View
مربوط به کامپوننت بازی که در مسیر resources/views/livewire/x-o-game.blade.php
قرار گرفته است و باید در ویو dooz.blade.php
از آن استفاده شود به شکل زیر است:
پس از اجرای مسیر /dooz
در ابتدا شما با ساختاری مشابه ساختار زیر مواجه میشوید، که در آن دو Input از شما دو رشته را به عنوان نام بازیکنان دریافت میکنند. سپس پس از فشردن دکمه Start Game 🎮
باید برسی شود که در صورتی که هر دو نام وارد شده بودند بازی آغاز شود. نیازی به انجام هیچ اعتبارسنجیای برای نامهای ورودی نیست؛ صرفا این دو رشته نباید مقادیر خالی باشند.
پس از وارد کردن نامها باید با ساختاری مشابه ساختار زیر مواجه شوید، که در آن علاوه بر جدول بازی، یک جدول امتیاز برای دو نامی که وارد شده وجود خواهد داشت که مجموع امتیازات هر فرد را مشخص میکند.
پس از انجام بازی با هر تعداد مرحله، با توجه به موارد نوشته شده در بخش جزئیات دقیقتر و معرفی بازی ممکن است بازی برندهای داشته باشد. در صورتی که فردی با انجام حرکتی موجب پیروزی شد، باید مطابق تصویر زیر، 🎉 Winner: [PlayerName]! 🎉
در بالای صفحه همراه با انیمیشن مورد نظر نمایش داده شده، جدول و وضعیت بازی ریست شده و همچنین به تعداد بردهای فردی که برنده بازی شده یکی اضافه شود.
مورد قابل توجه این است که بازی را همیشه X
شروع میکند اما بازیکنان هر دفعه به صورت یکی در میان نقش X
و O
را بر عهده میگیرند تا بازی عدالت بیشتری داشته باشد. همچنین بازی را فردی شروع میکند که نامش در ابتدای ورود به بازی به عنوان نام نفر اول وارد شده است. برای مثال، اگر دوین نام اول و معین نام دوم باشد، در بازی اول دوین X
و معین O
و در بازی دوم، معین X
و دوین O
خواهد بود و ترتیب چرخشی به همین صورت برای باقی بازیها ادامه خواهد داشت. اما در تمامی حالات شروع کننده بازی X
است و صرفا فرد شروعکننده تغییر خواهد کرد.
با توجه به موارد گفته شده در بخشهای بالا، شما باید ساختار کامپوننت Livewire ای XOGame
را که در ساختار پروژه اولیه در مسیر app/Livewire/XOGame.php
قرار دارد را مطابق با ساختار زیر پیاده سازی کنید:
توضیحات ساختار و ویژگیهای این کامپوننت به شکل زیر است:
board
: این متغیر همانطور که از اسمش پیداست ساختار جدول را در خود ذخیره میکند. هر کدام از خانههای این جدول میتوانند یکی از مقادیر X
، O
و یا null
باشند. این متغیر یک آرایه یکبعدی میباشد که اندیسهای شماره 0
تا 8
اش نشان دهنده خانههای جدول بازی هستند.current_turn
: این متغیر نشاندهنده نوبت فعلی میباشد که میتواند یکی از مقادیر X
و یا O
را داشته باشد.last_winner
: این متغیر مشخص میکند که آخرین فردی که برنده بازی شده است چه کسی بوده است. این متغیر در ابتدا مقداری برابر با null
دارد اما بلافاصله پس از بردن بازی توسط یکی از X
و یا O
مقدار آن را ذخیرهسازی میکند.player1_name
و player2_name
: این دو متغیر نام دو بازیکن را دریافت و ذخیرهسازی میکنند.player1_wins
و player2_wins
: این دو متغیر تعداد برد هر کدام از بازیکنها را مشخص میکنند. این مقدار باید پس از برد هر فرد بروزرسانی شود و به صورت زنده در صفحه بازی نمایش داده شود.name_submitted
: این متغیر یک متغیر بولی است که پس از وارد شدن نام بازیکنان مقدارش از false
ابتدایی به true
تغییر پیدا میکند.توابعی که شما باید در این سوال پیادهسازی کنید به شکل زیر هستند:
mount
: این تابع در واقع همان تابع سازنده کامپوننت خواهد بود.submitNames
: این تابع باید برسی کند که در صورتی که نام بازیکنان وارد شده بود، مقدار متغیر name_submitted
را به true
تغییر دهد. در ویو کامپوننت این مورد برسی شده و در صورتی که نام بازیکنان وارد شده بود دیگر بخش وارد کردن نام و شروع بازی نباید نمایش داده شود.resetBoard
: این تابع وضعیت بازی را ریست میکند. توجه کنید که با ریست وضعیت بازی صرفا جدول و نوبت بازی X
یا O
ریست میشود و تغییری در امتیاز بازیکنان داده نمیشود. در واقع این تابع پس از مشخص شدن هر وضعیت برد اجرا خواهد شد تا بتوان بازی را به تعداد دلخواهی بار با شرایط گفته شده انجام داد.makeMove
: این تابع در هر مرحله با فشردن بر روی یکی از خانههای جدول اجرا میشود. هر خانه که یکی از اندیسها 0
تا 8
را داراست (خانههای جدول هر بار از سمت چپ به راست اندیسدهی میشوند، یعنی اندیسهای سطر اول برابر با 0 1 2
و اندیسهای سطر دوم برابر با 3 4 5
خواهند بود) مهره تعیین شده در current_turn
در خانه مشخص شده از جدول جایگزین میشود.render
: این تابع کامپوننت بازی را رندر میکند.XOGame
) پیادهسازی کنید، اما توابع و متغیرهایی که در مورد آنها در سوال توضیح داده شده است نباید تغییری داشته باشند. تغییر در ساختار ورودی توابع یا نام توابع و متغیرهای تعریف شده باعث عدم دریافت نمره از سمت داور خودکار خواهد شد.View
این کامپوننت در مسیر resources/views/livewire/x-o-game.blade.php
قرار گرفته اند، اما شما نیاز پیدا خواهید کرد تا مانند ساختار گفته شده منطق نمایش آنها را پیادهسازی کنید.resources/views/livewire/x-o-game.blade.php
در سیستم داوری مورد تست قرار خواهد گرفت، لذا از تغییر نام یا افرودن فواصل کمتر یا بیشتر در متن المانهایی که در اختیار شما قرار داده شده مانند دکمهها و یا متنهای نمایش داده شده اکیدا خودداری کنید. ایجاد تغییرات منجر به عدم دریافت نمره از سیستم داوری خواهد شد.vendor
و node_modules
را Zip کرده و آپلود کنید.