سـورس کد

سورس کد برج هانوی در سی شارپ Hanoi Tower به صورت گرافیکی

برنامه‌نویس:

تیم برنامه‌نویسی پی‌استور

(دیدگاه کاربر 3)
امتیاز 4.00 از 5

هزینه سفارش:

۲۵۹,۰۰۰ تومان

تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.

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

تاریخچه و قوانین مسئله برج هانوی

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

در ساختار این بازی، سه میله با نام‌های میله مبدأ (A)، میله کمکی (B) و میله مقصد © تعریف می‌شوند. هدف نهایی، انتقال کلیه دیسک‌ها از میله مبدأ به میله مقصد با رعایت سه قانون اساسی زیر است:

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

منطق حل بازگشتی و رویکرد تقسیم و حل

برای حل مسئله برج هانوی با تعداد nn دیسک با رویکرد بازگشتی، تمرکز به جای بالاترین دیسک، روی بزرگ‌ترین دیسک پایینی قرار می‌گیرد. این رویکرد مسئله را به سه گام زیر تقسیم می‌کند:

  1. انتقال دیسک بالایی از میله مبدأ (A) به میله کمکی (B) با استفاده از میله مقصد .
  2. جابه‌جا کردن بزرگ‌ترین دیسک باقیمانده از میله مبدأ (A) به میله مقصد .
  3. انتقال دیسک مستقر در میله کمکی (B) به میله مقصد  با کمک میله مبدأ (A).

با این منطق، حل مسئله برای nn دیسک به دو زیرمسئله مشابه با اندازه و یک حرکت تک‌دیسک ساده تبدیل می‌شود.

 

برج هانوی Towers of Hanoi

معماری نرم‌افزاری و بررسی ساختار کلاس‌های پروژه

این پروژه در زبان سی شارپ با رعایت کامل اصول شیءگرایی (OOP) و تفکیک وظایف پیاده‌سازی شده است. ساختار کلاس‌های اصلی برنامه به شرح زیر است:

  • کلاس MoveCalculator: هسته منطقی و موتور حل بازگشتی مسئله است که توالی دقیق حرکات را تولید کرده و در یک لیست ذخیره می‌کند.
  • کلاس GameState: مدیریت کلی وضعیت بازی، تعداد دیسک‌ها، شمارنده حرکات، آرایه میله‌ها و کنترل شرایط پیروزی را بر عهده دارد.
  • کلاس Move: اعتبارسنجی حرکات کاربر را بررسی می‌کند تا از قرارگیری دیسک بزرگ روی دیسک کوچک جلوگیری شود.
  • فرم گرافیکی GameForm: رابط کاربری تعاملی برنامه برای رسم دیسک‌ها، انیمیشن انتقال، دکمه‌های کنترل بازی و تنظیم تعداد دیسک‌ها است.

بررسی کدهای کلیدی پروژه

کد محاسبه بازگشتی حرکات در کلاس MoveCalculator:

public static class MoveCalculator
{         
    private static void Calculate(int n, int fromPole, int toPole)
    {
        if (n == -1)
        {
            return; // پایان محاسبات
        }
        int intermediatePole = GetIntermediatePole(fromPole, toPole);
        
        Calculate(n - 1, fromPole, intermediatePole);
        moves.Add(new Move(fromPole, toPole));
        Calculate(n - 1, intermediatePole, toPole);
    }
}

کد مدیریت وضعیت و اجرای حرکات در کلاس GameState:

public static class GameState
{
    public static List<Pole> Poles = new List<Pole>();
    public static List<Bitmap> ImageList = new List<Bitmap>();
    public static int MoveCount { get; set; }
    public static int NumberOfDisks { get; set; }
    
    static GameState()
    {
        LoadImagesFromFile();
        RestartGame(3);
    }

    public static int Move(Move move)
    {
        if (move.AffectCount())
        {
            MoveCount++;
        }
        
        if (move.IsValid())
        {
            Disk disk = move.FromPole.getTopDisk();
            Poles[move.FromPole.Number].RemoveDisk();
            Poles[move.ToPole.Number].AddDisk(disk);
            return MoveCount;
        }
        else
        {
            return -1;
        }  
    }

    public static bool IsSolved()
    {
        return (Poles[Properties.Settings.Default.EndPole].Disks.Count == NumberOfDisks);
    } 
}

کد اعتبارسنجی قوانین بازی در کلاس Move:

public class Move 
{
    public Pole FromPole { get; set; }
    public Pole ToPole { get; set; }
    
    public bool AffectCount()
    {
        if (ToPole.Equals(FromPole))
        {
            return false;
        }
        return IsValid();
    }            

    public bool IsValid()
    {
        if (ToPole.Equals(FromPole))
        {
            return true;
        }
        return ToPole.AllowDisk(FromPole.getTopDisk());
    }
}

نمایش خروجی

برج هانوی Towers of Hanoi

ویژگی‌ها و امکانات متمایز پروژه

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

چرا خرید این سورس کد بهترین انتخاب است؟

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

تضمین کیفیت و دانلود آنی محصول

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

ویدئوی معرفی

نمایش بصری

پیش‌نمایش ویدئوها

برای مشاهده ویدیوی هر بخش، روی عنوان آن کلیک کنید.

1 ویدئو
برنامه‌نویس
تیم برنامه‌نویسی پی‌استور
متشکل از اساتید و فارغ التحصیلان رشته‌های فنی - مهندسی

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

تیم برنامه‌نویسی پی‌استور
اطلاعات و ویژگی‌های فنی

مشخصات تکمیلی

اطلاعات و جزئیات کامل این محصول

نام اثر
سورس کد برج هانوی در سی شارپ Hanoi Tower به صورت گرافیکی
نوع اثر
سورس کد
برنامه‌نویس:
تیم برنامه‌نویسی پی‌استور
زبان برنامه نویسی:
سی شارپ #C
ویژگی:
قابلیت دانلود و ویرایش

راهنمای خرید و ثبت سفارش

راهنمای 3 مرحله ای خرید

اگر در مورد این اثر یا نحوه تهیه آن سوالی دارید؟

  • با شماره 44225175 (پیش شماره 041) تماس بگیرید. – ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). – تمام ساعات

دیدگاه‌ها و نظرات

3 نظر|4.00 (میانگین امتیاز کاربران)

  1. آواتار نینا

    نینا

    برنامه اجرا شد ولی فرمی که میله ها و دیسک و… روش طراحی شده نداره، فرم درحالت دیزاین نداره

    • آواتار مدیریت و پشتیبانی

      مدیریت و پشتیبانی

      سلام و وقت بخیر
      تصاویر و حرکت اون ها با کد انجام میشه و هر جایی از برنامه که لازم هست نشون داده می شه. به عنوان نمونه کلاس Move برای حرکت دیسک ها هست که یک object از اون ساخته میشه و در ameForm.cs از اون استفاده میشه.

  2. آواتار پیر محمدی

    پیر محمدی

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

  3. آواتار مدیریت و پشتیبانی

    مدیریت و پشتیبانی

    نظرات و دیدگاه های خود را با ما درمیان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شناسه اثر: 4066 دسته‌بندی موضوعی: برچسب ,

هزینه سفارش:

۲۵۹,۰۰۰ تومان