-
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
از پایان بازی مطلع میشوند.در این مرحله اطلاعات بازیکنان و بازی برای ثبت در جدول امتیازات، ذخیره میگردد.
در نهایت و در هر سه حالت، ارتباط هر دو بازیکن، پس از دریافت رخدادهای مربوطه، با سرور قطع میشود.