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

نام تاپیک: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

  1. #1
    کاربر تازه وارد آواتار EbiPenMan
    تاریخ عضویت
    آذر 1384
    محل زندگی
    TehranPars
    پست
    57

    Wink تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    سلام به همگي
    من يه بازي نوشتم يعني بازي ويندوز minesweeper و در طي اين مدت خيلي از دوستان كمك گرفتم و به هشون زحمت دادم و الان از همشون تشكر ويژه رو دارم.

    البته هنوز خيلي ناقص هست و شايد ( حتما ) همين مقدار رو هم كه نوشتم خيلي با اصول برنامه نويسي سازگار نباشه.

    براي همين سورسش رو مي زارم تا هم از نظر دوستان استفاده كنم و اشتباهات و راه هاي بهتري اگه در نوشتن اين بازي بوده به من و بقيه بگن تا بتونيم سطح مون رو ارتقاء ببخشيم.

    اگه هم كسي خواست كه كاملش كنه چه بهتر چون اين سورس شامل هيچ حق قانوني براي كسي نيست و فقط اگه دوست داشتيد مي تونيد يه اسمي هم از اين سايت ببريد.

    اين اولين پروژه من در C#‎ هست و من بيشتر در vb كار كردم.
    دوست دارم كه از نظرات حرفه اي شما استفاده كنم.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله EbiPenMan : دوشنبه 25 آذر 1387 در 14:58 عصر

  2. #2
    کاربر تازه وارد آواتار EbiPenMan
    تاریخ عضویت
    آذر 1384
    محل زندگی
    TehranPars
    پست
    57

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    آقا كسي نيست كه يه نظري بده؟

  3. #3

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    من تازه با #c آشنا شدم وخیلی علاقه مند به برنامه نویسی بازی ها هستم ولی هم نمیدونم چکار کنم هم نمیدونم چی مطالعه کنم اچه امکان داره منو کمک کنید

  4. #4
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    خسته نباشی دوست عزیز
    جالب و زیبا بود

    نظرات بنده:
    1- OOP واقعی نیست سورس برنامه (مثلا به جای اینکه بیاین یه آرایه button و یه آرایه int برای ظاهر و باطن مین ها داشته باشین بهتر بود یه کلاس برای مین تعریف میکردین که هم ظاهر و هم باطن مین و تو خودش داشته باشه
    2- برای اون کلاستون event های مورد نیاز رو تعریف میکردید و بعدا هر جا احتیاج بود handle میکردینش . مثلا برای انفجار مین تو کلاس مین (که فرض میکنیم تعریف شده) یه event تعریف مکردین و برای اینکه بفهمین مین منفجر شده یا نه کافی بود که event مربوط رو تو کد های فرم تون handle میکردین.

    3- وقتی راست کلیلک و نگه میداری و چپ کلیک می کنی اصولا باید خونه های اطراف رو چک کنه که کدوما موندن که ممکنه بمب اشته باشن ولی من ندیدم تو برنامتون

    4- برای تام احتیاجی نبود که بیاین دقیقه و ساعت رو حساب کنید. چون تا 999 ثانیه کافیه چک کنید فقط (اونم فقط ثانیه هاش رو)

    فعلا زیاد وقت نکردم همشو ببینم بازم اگه مطلبی بود حتما نظراتمو میگم.

    --> در کل پیشنهاد میکنم که از همین الان سعی کنید برنامه هایتون با مفاهیم OOP پیاده شده باشن و بیشتر از اینکه فقط به اجرا شدن درست برنامه فکر کنید به این فکر کنید که چقدر اصول OOP رعایت شده تو کد هاتون. (البته من تو مقامی نیستم که بخوام نصیحت کنم یا ایراد بگیرم و فقط یک پیشنهاد دوستانه است)


    موفق باشید
    jooje

  5. #5

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    نقل قول نوشته شده توسط EbiPenMan مشاهده تاپیک
    ...از نظر دوستان استفاده كنم و اشتباهات و راه هاي بهتري اگه در نوشتن اين بازي بوده به من و بقيه بگن تا بتونيم سطح مون رو ارتقاء ببخشيم. اگه هم كسي خواست كه كاملش كنه چه بهتر چون اين سورس شامل هيچ حق قانوني براي كسي نيست و فقط اگه دوست داشتيد مي تونيد يه اسمي هم از اين سايت ببريد. اين اولين پروژه من در C#‎ هست و من بيشتر در vb كار كردم. دوست دارم كه از نظرات حرفه اي شما استفاده كنم.
    سلام.
    این ایرادها، هنگام اجرای بازی به چشم میخوره:


    1. پس از اینکه یک مین منفجر شد، بازی باید متوقف بشه و کاربر امکان Click کردن روی خونه های جدید رو نداشته باشه.
    2. اگر قراره پنجره اصلی برنامه، کوچک و بزرگ بشه، باید محتویات Client Area هم بزرگ و کوچک بشه، نه اینکه صفحه رو Maximize کنم و هنوز در همون ناحیه قبلی محتویات صفحه نمایش داده بشه.
    3. وقتی روی خونه ای Click میکنم، Focus بصورت خودکار به یک خونه دیگه منتقل میشه.
    4. کلید Mouse روی هر خونه ای رها شد، اون خونه باید روشن بشه. نه اینکه وقتی کلید Mouse فشار داده شد، دیگه اهمیتی نداشته باشه که کجا رها بشه! چون ممکنه کاربر به اشتباه کلیک کرده باشه و بخواد کلید Mouse رو خارج از خونه های موجود رها کنه تا در واقع با اینکار، Click خودش رو Cancel کرده باشه.
    5. تغییر نامناسب صفحه، در صورت تغییر Theme.
    6. و ...

    این ایرادها در Source دیده میشه:

    1. عدم استفاده از کلاس (یا کلاسهای) مشخصی برای اجرای کلاس مین یاب.
    2. عدم استفاده از Naming Convention مشخصی در کد. بعنوان مثال، نام یکی از توابع رو func_general_initialize_form گذاشتید که با هیچیک از اصول نامگذاری ها تطابق نداره.
    3. Precondition ها در ذهنتون بوده، و در کد آورده نشده.
    4. استفاده نامناسب از Timer، Array، as و ...
    5. نگهداری اطلاعات Config برنامه در فایل size mines.txt
    6. استفاده از تعداد زیادی Button برای اجرای برنامه. (درستش اینه که محتویات صفحه رو خودتون نقاشی میکردید، تا اینکه بخواهید از N تا Button استفاده کنید).
    7. if های تو در تو.
    8. شرطهای بی مورد، از جمله:

      if (timer_sec.Enabled == false)
      timer_sec.Enabled = true;
    9. عجیب و غریب بودن نحوه نوشتن کد! بعنوان مثال، جای نوشتن

    for (int x = 0; x < int_x; x++)
    {
    for (int y = 0; y < int_y; y++)
    {
    if (ButtonArray[x, y].Visible == false)
    ButtonArray[x, y].Visible = true;
    }
    }
    می تونستید بنویسید:


    for (int x = 0; x < int_x; x++)
    for (int y = 0; y < int_y; y++)
    ButtonArray[x, y].Visible = true;
    چون شرطی که شما نوشتید، در واقع در درون Visible Property وجود داره، و اگر مقدار جدید تغییر نکرده باشه، خودش Return میشه. یا جای دیگه ای همچین چیزی نوشتید:


    if (ButtonArray[x, y].Visible == false)
    bo_check_win = true;
    else
    bo_check_win = false;
    که بهتر بود مینوشتید:

    bo_check_win = !ButtonArray[x, y].Visible;
    که هم خواناتر هستش و هم جمع و جورتر.

    و ...

    پاورقی: با همه این تفاصیل، بعنوان اولین کار بد نیست.

  6. #6

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    سلام شهره جان!!
    خوشحالم که مشتاق به یادگیری سی شارپ هستی!!!
    اگه میخوای مفاهیم رو یاد بگیری با #Cدر 21روز شروع کن!!
    و اگه زبانت خوبه!! دایتل از همش کاملتر و بهتر هست!!

  7. #7
    کاربر دائمی آواتار B.I.O.H.A.Z.A.R.D
    تاریخ عضویت
    تیر 1388
    محل زندگی
    قزوین
    پست
    198

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    سلام.

    من خیلی تشکر میکنم از این کار قشنگی که انجام دادید. برای من که مبتدی هستم، خیلی عالی بود. هر چند مثل خوده MineSweeper ویندوز نمیشه ولی خب معلومه خیلی واسش زحمت کشیدید.

    بازم مرسی

  8. #8

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

    سلام آقای ebipenmanواقعا قابل تحسین بود!!!
    خواستم اگه میشه کل کد هاشو تو قالب ورد بذاری و اجازه بدی من روش کار کنم!!
    رو سیستمم net.نصب هست اما express edition هست!! و کدای شما رو نخوند :دی
    ممنون میشم

  9. #9
    کاربر دائمی آواتار j_naroogha@yahoo.com
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Microfoft Visual Studio Ultimate Version
    سن
    33
    پست
    388

    نقل قول: تبادل نظر درباره مزايا و معايب سورس بازي Minesweeper

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

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

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