تیم برنامهنویسی پیاستور
هزینه سفارش:
۲۵۹,۰۰۰ تومان
تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.
اگر به عنوان دانشجو یا پژوهشگر رشته مهندسی کامپیوتر و نرمافزار به دنبال یک پروژه بدون باگ، زیبا و دارای معماری شیءگرای تمیز برای درک یا ارائه دانشگاهی هستید، این پروژه در محیط مایکروسافت ویژوال استودیو طراحی شده و فرآیند انتقال دیسکها را به شکلی زنده و بصری به نمایش میگذارد.
بر اساس روایتهای کهن، در معبدی تاریخی سه میله از جنس الماس قرار داشت که روی یکی از آنها ۶۴ قرص زرین از بزرگ به کوچک چیده شده بود. کاهنان وظیفه داشتند با انتقال تمام دیسکها به میله دیگر طبق قواعدی مشخص، معمای آفرینش را پیش ببرند.
در ساختار این بازی، سه میله با نامهای میله مبدأ (A)، میله کمکی (B) و میله مقصد © تعریف میشوند. هدف نهایی، انتقال کلیه دیسکها از میله مبدأ به میله مقصد با رعایت سه قانون اساسی زیر است:
برای حل مسئله برج هانوی با تعداد nnn دیسک با رویکرد بازگشتی، تمرکز به جای بالاترین دیسک، روی بزرگترین دیسک پایینی قرار میگیرد. این رویکرد مسئله را به سه گام زیر تقسیم میکند:
با این منطق، حل مسئله برای nnn دیسک به دو زیرمسئله مشابه با اندازه n−1 و یک حرکت تکدیسک ساده تبدیل میشود.

این پروژه در زبان سی شارپ با رعایت کامل اصول شیءگرایی (OOP) و تفکیک وظایف پیادهسازی شده است. ساختار کلاسهای اصلی برنامه به شرح زیر است:
کد محاسبه بازگشتی حرکات در کلاس 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());
}
}
پیادهسازی یک مسئله بازگشتی همراه با رابط گرافیکی، اعتبارسنجی حرکات ماوس و جلوگیری از خطاهای منطقی نیازمند زمان و تسلط فنی است. با خرید این پکیج آماده، شما به کدی استاندارد، تستشده و با معماری منظم دسترسی پیدا میکنید که برای یادگیری عمیق، پروژههای کلاسی دانشگاهی و تقویت مهارت برنامهنویسی سی شارپ گزینهای مناسب و مطمئن است.
این پروژه به صورت کامل توسط کارشناسان فنی پیاستور تست، کامپایل و اجرا شده و دارای نشان ضمانت کیفیت پیاستور است. پس از پرداخت آنلاین از طریق تمامی کارتهای عضو شبکه شتاب، لینک دانلود سورس کد کامل پروژه بلافاصله در پنل کاربری در دسترس شما قرار خواهد گرفت.
برای مشاهده ویدیوی هر بخش، روی عنوان آن کلیک کنید.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
اطلاعات و جزئیات کامل این محصول
جهت تسلط عمیقتر و تکمیل مهارتهای خود، یادگیری این سرفصلها پیشنهاد میشود.
هزینه سفارش:
۲۵۹,۰۰۰ تومان
دیدگاهها و نظرات
نینا
برنامه اجرا شد ولی فرمی که میله ها و دیسک و… روش طراحی شده نداره، فرم درحالت دیزاین نداره
مدیریت و پشتیبانی
سلام و وقت بخیر
تصاویر و حرکت اون ها با کد انجام میشه و هر جایی از برنامه که لازم هست نشون داده می شه. به عنوان نمونه کلاس Move برای حرکت دیسک ها هست که یک object از اون ساخته میشه و در ameForm.cs از اون استفاده میشه.
پیر محمدی
برنامه اجرا شد و مشکلی نداشت فقط حیف گزارش کار نداشت.
مدیریت و پشتیبانی
نظرات و دیدگاه های خود را با ما درمیان بگذارید.