You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: phase_2/main/PHASE2.tex
+52-5Lines changed: 52 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -358,16 +358,63 @@ \subsection*{{\titr ثبتنام و ورود}}
358
358
\item\lr{\textbf{Login}}: با دریافت نام کاربری و رمز از کاربر در صورت اعتبارسنجی، باید عملیات ورود انجام شده و از این منو به منوی اصلی بازی منتقل شویم.
\addcontentsline{toc}{subsection}{{\fehrestContentایمپورت و اکسپورت}}
363
363
\begin{itemize}
364
-
\item
364
+
\item\textbf{عملیات \lr{import}}: میتوانید یک جایگاه آپلود فایل قرار داده تا با \lr{drag and drop} فایلها و یا فشردن دکمه و انتخاب فایل عملیات \lr{import} انجام شود و پس از انجام عملیات مشخصات کارت \lr{import} شده نمایش داده شود.
365
+
\item نحوه نمایش مشخصات کارت دلخواه است برای مثال میتوانید یک جایگاه برای نمایش کارتها در نظر گرفته و با انجام عملیات \lr{import} مشخصات کارت را در آنجا نمایش دهید و یا اینکه پس از \lr{import} در قالب یک پنجره \lr{popup} مشخصات کارت مورد نظر را نمایش دهید.
366
+
\item\textbf{عملیات \lr{export}}: با فشردن دکمه \lr{Export} کارتهای قابل انتخاب نمایشداده میشوند و با انتخاب یک کارت، همانند فاز یک آن را در فایلی \lr{Export} کنید.
367
+
\item\textbf{امتیازی}: بتوانید فایل با حداقل دو پسوند متفاوت ( برای مثال \lr{json} و \lr{csv} ) را مدیریت کنید.
زمین بازی و فرایندهایی که درون آن اتفاق میافتد یکی از بخشهای اساسی فاز دوم خواهد بود. این بخش نیز مانند بخشهای دیگر شامل جزئیاتی خواهد بود که باید آن را پیادهسازی کنید. در ادامه به جزئیاتی که در بازی هستند میپردازیم. از شما انتظار میرود تا بازی که در فاز اول طراحی شده بوده و با دستورات کنسول کنترل میشد به صورت گرافیکی دربیاید (مواردی که جزء دستورات در فاز اول بوده است ولی بعدتر از آنها صحبتی نشده است هم باید پیادهسازی شود اما نحوه طراحی و پیادهسازی آن به خود شما سپرده شده است و میتوانید از خلاقیت خود در پیادهسازی آنها استفاده کنید):
369
373
374
+
\begin{itemize}
375
+
\item\textbf{زمین بازی}: زمینبازی و کارتهای درون آن باید در صفحه حضور داشته باشند. هر کاربر باید کارتهای خود را ببیند و عملیاتهای مربوط به آن را انجام دهد (کمی جلوتر درباره آن توضیح داده خواهد شد).
376
+
\item\textbf{مشخصات دوئلیستها}: در بازی صفحه بازی باید آواتار، \lr{LP} (جان) و یوزرنیم هر دو دوئلیست باید در صفحه وجود داشته باشد.
377
+
\item\textbf{تغییر فازها}: باید قسمتی برای تغییر فازها برای کاربر وجود داشته باشد تا اتمام دورش را اعلام کند.
378
+
\item\textbf{مشخصات کارتها}: باید قسمتی وجود داشته باشد که بعد از انتخاب هر کارتی که ماهیت آن برای کاربر فعال (بازیکنی که باید حرکت خود را انجام دهد) مشخص است (شامل کارتهای به روی حریف و تمام کارتهای خودش که درون زمین یا در دستش است) مشخصات آن شامل نوع آن، بخشهای اختصاصی مربوط به نوع آن (برای مثال قدرت حمله و دفاع در هیولاها)، توضیحات اضافه و … باید قابل نمایش باشند.
379
+
\item\textbf{تصویر زمینه}: در پسزمینه صفحه بازی باید از یک تصویر استفاده شده باشد.
380
+
\item\textbf{امتیازی}:برای کارتهای خاصی (مثلا کارتهای \lr{Field}) این تصویر زمینه مطابق با کارتی که در زمین فعال است تغییر کند.
381
+
\item\textbf{وقفه}: در حین بازی باید امکان وقفه بین بازی وجود داشته باشد. چیزی مثل یک منو \lr{Pause} که در آن امکان خروج از بازی، تغییر تنظیمات مربوط به بازی و … در آن وجود داشته باشد.
382
+
\item\textbf{حمله}: در فاز نبرد (\lr{Battle Phase}) که امکان حمله برای هیولاها فراهم میشود، امکان حمله به کارت ها از طریق رابطهای گرافیکی مثل انتخاب کارت مهاجم و کارت هدف به وسیله کلیک موس و یا درگانددراپ (امتیازی) فراهم شود.
383
+
\item\textbf{نمایش گورستان کارتها}: در حین بازی باید امکان نمایش گورستان برای بازیکنها وجود داشته باشد و انتظار میرود تا در هنگام نمایش گورستان کارتها به همراه عکس آنها به بازیکن نمایش داده شود، در صفحه اصلی بازی لازم نیست همواره گورستان نمایش داده شود، میتوان یک دکمه برای آن قرار داد و در صورت نیاز با کلیک روی دکمه جزئیات گورستان کارتها نشان داده شود.
384
+
\item\textbf{انتخاب کارت برای فرایندهای خاص}: برخی از فرایندهای بازی نیاز به انتخاب کارتهایی از زمین بازی دارد. انتظار میرود تا تمام انتخابهای ممکن به بازیکن نشان داده شود تا بتواند کارت(ها)ی مورد نظرش را انتخاب کند و فرآیند به روی آنها انجام شود.
385
+
\item\textbf{انیمیشن کارتها}: انتظار میرود تا تغییراتی که در صفحه بازی انجام میشود (مثل کشیدن کارت از دک به دست، رفتن یک کارت از زمین به گورستان، حمله کارتها و … ) همراه با پویانمایی و حرکاتی نرم و چشمنواز (!) باشند. پیاده سازی یک مورد پویانمایی اجباری خواهد بود اما موارد بیشتر با توجه به داک نمرات و موارد موجود در آن امتیازی خواهد بود.
386
+
\item\textbf{محرمانه بودن کارتهای حریف}: موردی که باید به آن توجه کافی را داشته باشید این است که در فاز بعد قرار است تا دو بازیکن به صورت مستقل از هم و برای مثال با دو رایانه جدای از هم بازی را انجام دهند. بدیهی است که یک بازیکن کارتهایی که در دست بازیکن دیگر است و یا کارتهایی که به پشت در زمین حریف هستند را نباید ببینید. همینطور انجام عملیات برای بازیکنی که نوبت او نیست محدود است و نمیتواند حرکتی انجام دهد. \\
387
+
به همین منظور در این فاز هم باید شرایط مشابهی را در پیاده سازی خود در نظر بگیرید تا در پیادهسازی فاز بعد نیاز به تغییرات اساسی در برنامه خود بینیاز شوید. انتظار میرود تا محرمانه بودن کارتهای حریف در هر نوبت را رعایت کنید اما شیوه پیاده سازی شما بسته به نوع طراحی که برای بازی دارید میتوان متغیر باشد. در ادامه دو شیوه برای پیاده سازی این قابلیت پیشنهاد میشود:
388
+
\begin{itemize}
389
+
\item حالتی که هر دو بازیکن در یک پنجره (\lr{Window}) در حال بازی کردن باشند: مخفی کردن و نمایان کردن کارت ها در هر دور، یعنی زمانی که نوبتها تغییر میکند، کارتهایی که باید مخفی شوند در سمت دیگر صفحه به پشت میشوند و کارتهایی که از نوبت قبل برای بازیکن قبل قابل نمایش نبوده اند نیز به حالت رو در بیایند تا برای بازیکنی که نوبت آن است قابل مشاهده باشند. این تغییرات میتواند همراه با یک چرخش صفحه هم همراه باشد.
390
+
\item حالتی که برای هر بازیکن یک پنجره جداگانه در نظر گرفته شود: میتوانید پیادهسازیتان را (که به چیزی که در فاز بعد مورد نیاز است نزدیکتر است) با استفاده از دو پنجره انجام دهید به این صورت که زمانی که یک دوئل آغاز میشود دو پنجره بسازید که هر دو با یک کلاس مشترک که مسئول هماهنگی این دو پنجره است در ارتباط باشند. هر پنجره مربوط به یک بازیکن است. بدیهی است که رابط کاربری در هر دوپنجره کاملا مشابه خواهد بود با این تفاوت که انگار زمین بازی چرخیده و کارتهای حریف در سمت دیگر قرار خواهد داشت.
391
+
\end{itemize}
392
+
\item\textbf{چت باکس}: در فاز بعد به برنامه شما یک \lr{Chatbox} به برنامه اضافه خواهد شد. این قسمت کاملا مربوط به فاز بعد خواهد بود اما پیشنهاد میشود تا تدابیر (!) لازم را بیندیشید (مثلا محل مناسبی برای آن پیدا کنید) تا در فاز بعد به مشکلی برنخورید.
393
+
\item\textbf{تقلب}: انتظار میرود در بازی امکان تقلب کردن (چه به منظور رفع عیب برنامه و یا سرویس کردن حریف) وجود داشته باشد. میتوانید این تقلب را در قالب یک کنسول \lr{transparent} روی بازی داشته باشید که زمانی که دکمههای \lr{ctrl+shift+c} فشرده شدند کنسول ظاهر شود.
394
+
\item\textbf{انیمیشن \lr{Sprite}}: در صفحه بازی حداقل برای یک عملیات (مثلا نابود شدن یک هیولا) باید از انیمیشنهای \lr{Sprite} استفاده کنید. برای پیدا کردن \lr{Sprite} میتوانید از سایتهایی که در ضمیمه داک فاز ۲ آمده اند استفاده کنید.
395
+
\item\textbf{موسیقی بازی}: بازی شما باید یک موسیقی متناسب داشته باشد. ( امتیازی )
396
+
\begin{itemize}
397
+
\item میتوانید افکتهای صدا در شرایطی خاص که در بازی به وجود میآید پخش کنید، برای مثال زمانی که یک کارت \lr{Field} فعال است و یا مقدار کمی از جان حریف باقیمانده است. ( امتیازی )
398
+
\end{itemize}
399
+
\item\textbf{پیغام برد یا باخت}: در انتهای بازی باید یک دیالوگ مبتنی بر برد یا باخت فرد و امتیاز او به او نشان داده شود و گزینههایی مثل بازگشت به صفحه اصلی، انجام دوباره بازی و چیزهایی از این قبیل در آن وجود داشته باشد.
400
+
\item\textbf{سکه/سنگ، کاغذ، قیچی}: در ابتدای بازی باید یک صفحه برای تعیین شروع کننده دوئل وجود داشته باشد که یا سکه خواهد بود و یا سنگ، کاغذ، قیچی ( \lr{Asset} های مربوط به هر دو در اختیارتان قرار خواهد گرفت)
401
+
\item\textbf{کم شدن از جان}: بایستی برای کم شدن جان حریف انیمیشنی در نظر بگیرید. برای مثال میتوانید کاری کنید که با کم شدن از جان حریف به تدریج رنگ نوشته آن از سبز به سمت قرمز تغییر رنگ دهد. حتی میتوانید برای جان یک \lr{Bar} در نظر بگیرید.
402
+
\end{itemize}
403
+
برای الهام گرفتن در طراحی میتوانید از بازی \lr{joey the passion} کمک بگیرید.
\item\textbf{اضافه کردن کارت جدید}: باید امکان تعریف کردن کارت جدید را اضافه کنید. برای ساخت یک کارت، مشخصات کارت مانند نوع، سطح، قدرت حمله، قدرت دفاع، توضیحات و … را دریافت کرده و بعد از ساخته شدن کارت باید این کارت در کنار دیگر کارت ها ذخیره شده و امکان خرید آن از فروشگاه وجود داشته باشد.
410
+
\item\textbf{محاسبه ی قیمت کارت جدید}: بعد از وارد کردن مشخصات کارت ، قیمت آن را طبق فرمول دلخواهی بر حسب ویژگیهای آن محاسبه کنید تا بتوان از فروشگاه این کارت را خرید. همچنین 10 درصد قیمت کارت به عنوان کارمزد از کاربر سازنده ی کارت کسر می شود. \\
411
+
محاسبه ی قیمت در رابط گرافیکی باید همزمان با وارد کردن مشخصات باشد؛ بنابراین با هر تغییر در مشخصات کارت، باید بلافاصله قیمت جدید کارت محاسبه شده و نمایش داده شود.
412
+
\item\textbf{نحوه ی پیاده سازی}: قابلیت ایجاد کارت میتواند در هر یک از روابط کاربری شما وجود داشته باشد و انتخاب این مورد به عهدهی خود شما است. در حالت گرافیکی می توانید یک تصویر پیش فرض برای همه ی کارت های جدید استفاده کنید.
413
+
\item\textbf{توضیحات کارت جدید}: بعضی از کارت های از پیش تعریف شده توضیحاتی دارند. در بازی شما باید بتوان ویژگی کارت را از لیست توضیحات کارت های قبلی انتخاب کرد. (یک لیست از همه ی توضیحاتی که برای کارت ها داریم آماده کنید و کاربر بتواند از این لیست انتخاب کند).
414
+
\item\textbf{امتیازی}: ترکیب تعدادی از توضیحات برای ساخت کارت جدید.
415
+
\item\textbf{امتیازی}: با خلاقیت خودتان تعدادی توضیحات جدید (حداقل 5) طراحی کنید که بتوان در ساخت کارت جدید از آن ها استفاده کرد.
416
+
\item\textbf{امتیازی}: بعد از دریافت مشخصات کارت، با دریافت یک آیکون برای کارت، آیکون و مشخصات در یک تصویر قرار گرفته و خروجی مانند کارت های اصلی بازی باشد. در صورت ترکیب توضیحات کارت ها، نحوه ی نمایش توضیحات را طبق نظر خودتان طراحی کنید.
0 commit comments