-
Notifications
You must be signed in to change notification settings - Fork 0
started guide
برای شروع بازی باید نسبت به دو نکته زیر مطمئن شوید:
- بازیکن تخته چمپ خود را چیده باشد.
- اتصال با سوکت (socket.io) برقرار باشد.
سپس با ارسال تخته چیده شده در قالب جیسان زیر، رخداد init را ارسال کنید.
{
board: [[]]
}
کلید board باید آرایه ای از آرایه ها باشد که بودن یا نبود خانههای تخته چمپ را مشخص میکند.
مثلا یک نمونه درست از تخته چمپ (۵ در ۴) در زیر قابل مشاهده است:
[
[1,1,1,0],
[1,1,1,0],
[1,1,0,0],
[1,0,0,0],
[0,0,0,0]
]
-
دریافت این رخداد به معنی انتظار برای یافتن بازیکن دوم است.
-
دریافت این رخداد به معنی این است که بازی شروع شده و هر دو بازیکن متصل هستند. این رخداد جیسانی به فرم زیر ارسال میکند.
{ board: [[]], your_turn: bool, initialized_with_my_board: bool }boardتخته تعیین شده برای شروع را در خود جای میدهد.your_turnنشان میدهد که شروع بازی با کدام بازیکن است.
نوبت هر بازیکن فقط یکبار تعیین میشود و بررسی نوبت بر عهده کلاینت است.initialized_with_my_boardتعیین میکند که تخته کدام بازیکن به عنوان تخته اصلی انتخاب شده است.
طبیعتا این کلید اولی یا دومی بود بازیکن را نیز نشان میدهد.
در این مرحله کلایت بازیکنی که نوبت اوست میتواند با رخداد data اطلاعات مربوط به حرکت بازیکن را به سرور ارسال کند.
این رخداد اطلاعات مربوط به تغییرات تخته را به صورت زیر میفرستد:
{
board: [[]]
}
کلید board تخته تغییریافته را در خود دارد.
بازی آنقدر ادامه میابد که یکی از بازیکنان شوکولات خانه بالا سمت چپ را بخورد که همان شوکولات سمی است.
در تمام این مراحل اطلاعات در قالب رخداد data ارسال میشوند.
بازی به سه صورت پایان میابد:
-
یکی از بازیکنان با ارسال رخداد
cancelخروج خود از بازی را اعلام میکند.
این رخداد اطلاعاتی ندارد. بازیکن دیگر با رخدادdestroyاز این قضیه مطلع میشود. -
ارتباط سوکت یکی از بازیکنان به هر دلیلی قطع میشود. بازیکن دیگر با رخداد
destroyاز این قضیه مطلع میشود. -
کلاینت بازیکن در صورت خورده شدن شوکولات سمی توسط بازیکن، رخداد
loseرا به سرور ارسال میکند.
این رخداد اطلاعاتی ارسال نمیکند. در صورت شکست یکی از بازیکن ها، بازیکن دیگر رخدادwinرا دریافت میکند که اطلاعاتی درون خود ندارد.در نهایت هر دو بازیکن با رخداد
endاز پایان بازی مطلع میشوند.در این مرحله اطلاعات بازیکنان و بازی برای ثبت در جدول امتیازات، ذخیره میگردد.
در نهایت و در هر سه حالت، ارتباط هر دو بازیکن، پس از دریافت رخدادهای مربوطه، با سرور قطع میشود.