نمایش نتایج 1 تا 11 از 11

نام تاپیک: شبیه سازی مسابقه فوتبال با C#‎‎‎‎

  1. #1
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591
    (سلام به همگی) اول فایلی که تو ضمیمه گذاشتم دانلود کنید تا بهتون بگم موضوع از چه قراره!
    این فایل شامل سورس شبیه سازی یه برنامه فوتبال و یک فایل pdf
    برای شرح قوانین و مقررات این مسابقه است

    **هدف از این تاپیک این است که نشان دهیم در C#‎‎‎‎‎ مهارت و استعداد است که حرف اول را میزند نه معلومات!**
    (مدیران عزیز خواهشا اگر مشکلی در عنوان یا ... می بینند یه ایندفعه را خبر بدین و یه هو کل تاپیک را پاک نکنین)

    مسابقات شبیه سازی فوتبال روباتها هر ساله در کشورهای مختلف برگزار میشود اما عموما
    موتور نرم­ افزاری این مسابقات برای شبیه سازی هر چه واقعی تر فوتبال، از پارامترهای زیادی
    استفاده می­کنند که این امر خود موجب طولانی تر شدن برنامه های شرکت کننده در این
    مسابقات میشود.
    این برنامه با ساختاری بسیار ساده، طوری طراحی شده تا حتی برنامه نویسان
    مبتدی زبان C#‎‎‎‎‎
    که تنها دستور if را آموخته­ اند، بتوانند نقش یک مربی را ایفا کنند و تابعی
    بنویسند که در هر لحظه از بازی، دستوراتی به بازیکنان صادر کند.
    این برنامه، همه ی محیط برنامه و قوانین را خود طراحی و اجرا میکند و فقط باید کدهای دو متد
    RedTeam (که توسط شما نوشته شده)و BlueTeam(که کدهای حریف شماست) نوشته شود.
    علاوه بر این، تعداد بازیکنان هر تیم هم سه نفر در نظر گرفته شده تا برای کنترل همزمان یازده بازیکن
    یازی به استفاده از حلقه و پیچیده کردن برنامه نباشه
    .
    لذا شما تنها کافی است که متد (RedTeam)
    واقع در کلاس soccer موجود در پروژه را پیدا کنین و
    کدنویسی کنید و بعد از اتمام کار کافی است کدهای حریفان را
    درون متد
    BlueTeam قرار دهیم و سپس دیباگ کنین.

    پس کارهایی که برای این مسابقه باید بکنین به شرح زیر است:

    1- فایل را دانلود کرده و برای قوانین و نحوه کد نویسی این برنامه و دیدن مثال
    فایل pdf را مطالعه کنید

    2- تابع RedTeam را در پروژه(که در کلاس Soccer است) پیدا کنین و درون این متد کدهای لازم را
    قرار بدین
    3- بعد از آماده شدن، فقط کدهای همین متد را در یک پست ضمیمه کنین تا دیگران کد را
    در متد BlueTeam قرار دهند و با دیباگ کردن برنامه ببینیم کی برنده میشه


    * در ضمن فقط کسانی که نام آنها در قسمت تشکر هست میتوانند در مسابقه شرکت کنند


    این هم تصویری از محیط برنامه
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله mehdi.mousavi : پنج شنبه 29 مهر 1389 در 01:05 صبح دلیل: ادغام دو پست متوالی


  2. #2
    کاربر دائمی آواتار silverfox
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    سن
    28
    پست
    559

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎

    اگه هنوز داری روش کار می کنی به نظرم بیشتر شبیه ورژن اصلی(شبیه سازی 2 بعدی که مسابقاتش برگذار می شه)بکنی جذاب ترم بشه...مثلا به بازیکنان رندم یه فدرت شوت سرعت اینا بدی...و اینکه شاید اگه با xna پیاده سازیش کنی دیگه اینطوری چشمک نزنه موقع ریفرش شدن...

  3. #3

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎‎

    سالم جناب zayens. شما يه سري خاطرات رو براي من زنده كردين . راستش حدود 5 سال پيش من جزء تيم socer سه بعدي دانشگاهمون بودم البته راه به جايي نبرد در واقع تيم توي ما نتونست مقامي كسب كنه. ولي با توجه به تجربياتم ميگم كه اينكه شما با يك سري دستورات if يا while ساده بخواين اين بازيكنان رو رهبري كنين فكر نكنم به نتيجه برسين و خيلي جاي كار داره. اون مسابقات روي يه سري سرورهاي قوي اجرا ميشد و شايد باورتون نشه ما فقط براي اينكه بتونيم يه بازيكن رو طوري حركت بديم كه بتونه به توپ برسه چه قدر اين كد ها رو زير و رو كرديم چه راه هايي رو امتحان كرديم. جناب silverfox هم درست ميگن شما بايد متغير هاي سرعت بازيكن سرعت توپ قدرت شوت رو هم لحاظ كنين . ما توي سه بعدي زاويه شوت رو هم داشتيم كه اينجا ديگه لازم نداره .البته من هنوز كد هاتون رو كامل مطالعه نكردنم ولي خوشحال ميشم كمكتون كنم .

  4. #4
    کاربر دائمی آواتار yasemi
    تاریخ عضویت
    آبان 1386
    محل زندگی
    اگه گفتی ؟
    پست
    170

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎‎

    شما میخوای کار کنید باید از سرور لینوکس و برنامه های آماده استفاده کنید و بیشتر این برنامه ها روی ++C جواب میدن

  5. #5
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591
    دوستان مثل اینکه درست متوجه نشدن!
    هدف من اصلا بهینه سازی موتور بازی نیست بلکه استفاده از خود موتوره.
    اصلا نیازی به تغییر و حتی مطالعه کدهای برنامه نیست و به اونها به هیچ وجه نباید توجه کرد.

    تنها کاری که خواستم انجام بدین ایجاد کد در متد های ()RedTeam و ()BlueTeam هست.

    یه مثال ساده: من یه سری کد در متد RedTeam قرا میدم تا به تیم آبی یا BlueTeam حمله کنه

    public static void RedTeam()
    {
    if (o == 3)اگر توپ دست بازیکن 3 بود
    {
    pas(2); پاس بده به 2
    run(2, 520, 140); شماره 2 به نقطه مورد نظر حرکت کنه
    }
    if (o == 2) اگر توپ دست 2 بود
    if (x(2) == 520) اگر 2 به نقطه مورد نظر رسید
    shoot(630, 195); شوت به نقطه مورد نظر
    حالا باید تیم حریف (BlueTeam ) برای اینکه دروازه بان به سمت توپ بره این کد را قرار بده:

    public static void BlueTeam()
    {
    if (o == 0) اگر توپ دست کسی نبود(در حال شوت بود)
    run(1, x(o), y(o)); بازیکن 1 یا همون دروازه بان به مختصات توپ برود
    همون طور که در بالا یه مثال زدم شما باید کدهای تیم خودتون را بنویسید و در یک پست برای ما بذارین تا ما
    هم اونها را در تیم دوم قرار بدیم و بعدش ببینبم چه کسی برنده خواهد شد
    آخرین ویرایش به وسیله zayens : شنبه 01 آبان 1389 در 01:03 صبح

  6. #6
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎

    من دو سه روزه که نشستم و دارم روی کدهای تیم قرمز کار میکنم.
    توی این دو روز فقط روی کدهای دروازه بان کار کردم.
    حدودا 600 خط شد اون هم فقط برای عکس العمل دروازه بان!

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

  7. #7

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎‎

    نقل قول نوشته شده توسط zayens مشاهده تاپیک
    من دو سه روزه که نشستم و دارم روی کدهای تیم قرمز کار میکنم.
    توی این دو روز فقط روی کدهای دروازه بان کار کردم.
    حدودا 600 خط شد اون هم فقط برای عکس العمل دروازه بان!

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

  8. #8
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎‎‎

    نقل قول نوشته شده توسط samira2008 مشاهده تاپیک
    بهتر همينه كه شما يه نمونه كد بزارين تا ديگران بدونن بايد به چه شكل عمل كنن از طرفي
    وقتي يه بازي رو ببينن بيشتر ترغيب ميشن.
    با اینکه کدی که دارم روش کار میکنم کامل نشده ولی با اینحال به خاطر دوستان کدم را میذارم (هر چند ناقصه)

    این کد(حدود 600 خط) را در یه فایل ضمیمه میذارم
    نکته: این کد فقط عکس العمل دروازبان و جایگیری بازیکن دفاع است به طوری که اگر توپ
    دست تیم حریف قرار بگیره بازیکن دفاع تیم خودم دقیقا بین دو بازیکن مهاجم قرار میگیره که در این
    صورت امکان پاس دادن تقریبا به صفر میرسه.
    یه نکته ی دیگه هم اینه که من هر کاری کردم که بتونم با تیم حریف به تیمی که ساختم گل بزنم نشد!
    یعنی اونقدر دروازه بان و دفاع را قوی کردم که تقریبا هیچ راهی برای گل زدن وجود نداره!


    کد به صورت فایل txt ذخیره شده. تنها کاری که باید بکنید اینه که اون را در برنامه خودتون در تابع RedTeam کپی پیست کنید

    درضمن قبل از اجرای برنامه کد زیر را هم قبل از تابع RedTeam قرار بدین
    static bool plyr1 = false, plyr2 = false, plyr3 = false,
    rival1 = false, rival2 = false, rival3 = false, Danger = false,
    IsPas = false, IsSafe = true, Down = true, Down2 = true;
    static int Y0;
    حالا اگر در تیم حریف (BlueTeam) کد ساده ی زیر را قرار بدین خواهید دید که دفاع و دروازه بان
    تیم خودتون (RedTeam) چه عکس العمل خوبی از خود نشان میدهند

    این کد را برای نمونه در BlueTeam کپی کنید

    public static void BlueTeam()
    {
    // Players
    if (o == 1)
    pas(2);
    if (o == 3)
    {
    if (x(3) < 330)
    pas(2);
    else if (x(3) == 560)
    if (Down == true)
    {
    Down = false;
    shoot(630, 285);
    }
    else
    {
    Down = true;
    shoot(630, 195);
    }
    }
    else if (o == 2)
    {
    run(2, 530, 190);
    if (x(3) != 560)
    run(3, 560, 295);
    if (x(2) == 530)
    {
    if (Down2 == true)
    {
    pas(3);
    Down2 = false;
    }
    else
    {
    Down2 = true;
    shoot(630, 285);
    }
    }
    }
    }
    این هم از کد(همون 600 خط) که حجمش هم خیلی کمه و باید در RedTeam بذارین
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله zayens : پنج شنبه 06 آبان 1389 در 00:22 صبح

  9. #9
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎

    فایل ضمیمه ی پست قبلی (ForRedTeam.rar) ویرایش شد

    کدهای جدید بهینه شد( دروازه بان باهوش تر شده است)

  10. #10
    کاربر دائمی آواتار flash118
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    بسته های شبکه
    پست
    467

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎

    دوست عزیز
    با سلام با تشکر از زحمت و برنامه خوبتون به نظر شما ما اگه این پروژه رو با openGL و یا DIRECTX شبیه سازی کنیم هم سرعتش بالا تره و هم کیفیت و هم تعملش با کاربر بهینه تر میشه البته این یه پیشنهاده

  11. #11

    نقل قول: شبیه سازی مسابقه فوتبال با C#‎‎‎‎

    سلام
    ببخشید میشه راجب کد 600 خطی که برای تیم قرمز نوشتین کمی توضیح بدین ؟
    من متوجه نشدم
    دستتون درد نکنه .

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •