• لیگ شبیه‌ساز دو بعدی
  • لیگ اسنیک

RCSSServer RCSSMonitor SoccerWindow2 Librcsc Agent2D


قوانین

۱. هر فرد باید تنها در یک تیم عضویت داشته باشد. بنابراین حضور عضو یک تیم در تیمهای دیگر با سمت سرپرست، عضو، استاد راهنما یا هر عنوان دیگری امکان پذیر نیست.

۲. استفاده‌ی تیم‌ها از سورس کدهایی که قبل از شروع سال ۲۰۱۹ به صورت عمومی منتشر شده اند بلامانع می‌باشد با این شرط که تغییرات موثری روی آن ایجاد کرده باشند.

۳. وجود اشتراک مشهود در میان کد تیمهای شرکت کننده منجر به Disqualify شدن تمام تیم‌های استفاده کننده از آن خواهد شد. (منظور از اشتراک کد، کدهایی است که به طور عمومی منتشر نشده باشند.)


۴. در صورت Disqualify شدن تیم‌ها در مرحله‌ی تایید صلاحیت و یا همزمان با برگزاری مسابقات، اعضای تیم به مدت یک دوره از شرکت در این مسابقه محروم خواهند شد.

در طول مسابقات، قوانین، شکل کلی سیاست‌گذاری را مشخص کرده و حق کمیته‌ی فنی برای اعمال نظر تحت هرگونه شرایط پیشبینی نشده و خاصی محفوظ می‌باشد. مدارک مورد نیاز:

۱. گزارش فنی یا TDP، که عبارتست از یک مقاله‌ی حداکثر ده صفحه ای شامل توضیحات فنی در رابطه با ایده‌های پیاده سازی شده در سورس کد تیم توسط اعضای آن و همچنین برنامه های آینده.

الف. گزارش فنی مهمترین مرجع قضاوت کمیته ی فنی برای تایید صلاحیت شرکت تیمها در مسابقات خواهد بود، بنابراین تیمها باید مهمترین ایده‌های پیاده‌سازی شده توسط خودشان را در آن معرفی کنند.

ب. نام کامل اعضای تیم باید در صفحه ی نخست گزارش فنی درج شده باشد. نام های درج شده نهایی محسوب شده و اضافه کردن یا جابه‌جایی اعضا بعد از تایید صلاحیت به Disqualify شدن تیم منتج خواهد شد.

ج. گزارش فنی می تواند به زبان فارسی یا انگلیسی نوشته شود.

۲. فایلهای لاگ مربوط به بازی تیم، شامل صحنه هایی که می‌توانند تصدیق کننده‌ی پیاده‌سازی ایده‌های معرفی شده در گزارش فنی باشند.

الف .حداقل یک و حداکثر پنج فایل می توانند تحویل داده شوند.

ب. یک پیوست متنی شامل توضیحات مربوط به فایلهای الگ نیز باید همراه آنها به کمیته ی فنی تحویل داده شود.


۳. یک فایل آرشیو از فایلهای اجرایی تیم، شامل:

الف. فایلهای باینری که به صورت ایستا(Static) کامپایل شده‌اند.

ب. اسکریپتهای Start و Kill برای اجرای کامل تیم.

ج. تمام فایلهای تنظیمات و ... که فایلهای باینری در زمان اجرا به آنها وابسته اند.


هر تیم باید حداکثر تا تاریخ 7 شهریور موارد خواسته شده در بالا را در بخش پنل سایت مسابقات بارگزاری کنند. بدیهی است در صورت نبود هر یک از مدارک مورد نیاز، صلاحیت تیم برای شرکت در مسابقات تایید نخواهد شد.

نام تیم‌هایی که مدارکشان به دست کمیته‌ی فنی رسیده باشد در وب سایت مسابقات اعلام خواهد شد. بنابراین در صورتی که طی ۷۲ ساعت پس از ارسال مدارک نام تیم خود را در این صفحه مشاهده نکردید مسئله را از طریق آدرس ایمیل ذکر شده پیگیری کنید.

درصورت وجود هرگونه ابهام می‌توانید آن را از طریق آدرس nasircup@kn2c.ir با ما در میان بگزارید.


دانلود کلاینت و سرور

درباره‌ی مسابقه

اسنیک یکی از بازی‌های بسیار محبوب بر روی پلتفورم‌های مختلف بوده است. این بازی برای اولین بار در سال 1997 بر روی گوشی‌های نوکیا به اجرا درآمد و افراد زیادی را جذب خود نمود. در سال 2013 در دانشگاه صنعتی شیراز لیگی با نام اسنیک در مسابقات برگزار شد که در این مسابقات 4 اسنیک هوشمند در مقابل هم برای خوردن هرچه بیشتر سیب به رقابت می‌پرداختند. این مسابقات با استفاده از زبان برنامه نویسی جاوا تهیه شده بود. اکنون ما مسابقه‌ای با نام شبیه سازی دوبعدی اسنیک بوجود آوردیم که زیر مجموعه ای از مسابقات نصیرکاپ می‌باشد. در این لیگ که سرور و مانیتور با استفاده از زبان پایتون پیاده سازی شده اند 4 اسنیک جهت رقابت در یک زمین متغیر حضور خواهند داشت. هر اسنیک با استفاده از یکی از زبان های پایتون یا سی پلاس پلاس پیاده سازی شده است. در این رقابت اسنیکی برنده است که کمترین برخورد را با دیوار داشته باشد و بیشترین تعداد سیب را میل کند!


نحوه‌ی اجرای بازی

برای اجرای این بازی لازم است:

  1. در در داخل Conf/conf.py، بازی را تغییر داده و اسنیک را قرار دهید.

  1. در ابتدا سرور را اجرا نمایید برای این کار کافیست کد server.py را اجرا کرده.

  2. حال سرور منتظر اتصال ۴ اسنیک است. برای اینکار کافیست دستور زیر را اجرا کنیم.

./client.py -n team_name -c client_type

در این دستور team_name اسم تیم شماست که در مانیتور نشان داده خواهد شد. و شما باید در Games/Snake/Client/python/Client.py کد تیم خود را به شکل زیر اضافه کنید:

import Games.Snake.Client.Python.YourClient as c_your

سپس در قسمت آخر این فایل کلاینت خود را به کلاینت های موجود اضافه کنید. به طور مثال در مورد زیر client_type شما your خواهد بود.

و باید در دستور زیر را اجرا کرد:

./client.py -n borna -c your

اما دقت داشته باشید که باید برای هر کدام از اسنیک‌ها(کلاینت‌ها) این دستور اجرا شود و team_name ها باید متفاوت باشد.

  1. حال باید مانیتور را اجرا کنیم. برای این کار کد monitor.py را اجرا میکنیم. و با این کار نمایش گرافیکی بازی نشان داده می‌شود و بازی با ctrl + c شروع می‌شود.



قوانین

  • در صورت برخورد با دیوار از اسنیک 5 امتیاز کم میشود و همچنین اسنیک دوباره ریست میشود یعنی به اندازه‌ی اولیه و مکان اولیه باز میگرد.

  • در صورت برخورد سر یک اسنیک با بدن اسنیک دیگر، از اسنیکی که با سر برخورد کرده 5 امتیاز کم میشود و ریست نیز خواهد شد.

  • در صورت برخورد سر به سر دو اسنیک، از یکی از آن‌ها 5 امتیاز کم میشود و ریست خواهد شد.

  • در صورت خوردن یک میوه، یک امتیاز به اسنیک اضافه میشود و اندازه آن نیز یکی بزرگتر میشود.

  • اسنیکی برنده است که امتیاز بیشتری دارد و اندازه خود اسنیک در مشخص کردن برنده تاثیر ندارد.