PDA

View Full Version : برنامه حل جدول سودوکو (sudoku)



MasoudAliAkbari
شنبه 13 فروردین 1390, 01:14 صبح
جدول سودو کو یکی از معروف ترین جدول های دنیاست که انواع و اقسام مختلفی دارد.
من در اینجا برنامه ای را با استفاده از #C نوشته ام که نوع 5*1 آن را با هر سطح دشواری حل می کند.
امکانات برنامه:
1. دارای چندین نمونه جدول می باشد که از منوی File و گزینه ی Examples مشاهده کنید.
2. می توانید جدول دلخواه خود را به آن بدهید تا برایتان حل کند.
3. حل جدول در مدت کمتر از 1 ثانیه.
سورس اصلی برنامه حجم زیادی داشت که نتونستم اینجا آپلودش کنم اما از لینک زیر میتوانید سورس کامل برنامه را دریافت کنید. ولی فایل setup برنامه را همینجا تونستم در ضمیمه قرار بدم.
لینک برای دانلود سورس برنامه:
توجه:
از دوستان پوزش می خواهم لینک قبلی مشکل داشت اما اکنون لینک اصلاح شده و در سایت دیگری آپلود کرده ام.
لینک جدید:
www.bigupload.com/en/file/3855/jadvale-sudoko27.zip.html (http://www.bigupload.com/en/file/3855/jadvale-sudoko27.zip.html)
اینم یه لینک کمکی دیگه:
https://www.transferbigfiles.com/3e71de79-97a0-4d0e-b045-d31c868f98be?rid=xmQDJngP0WOBYCd8QyYVww%3d%3d

Nima NT
شنبه 13 فروردین 1390, 01:20 صبح
از لینک 4Shared امکان دانلود وجود نداشت ، اگر امکانش هست تو یه هاست دیگه آپلود کنید.
ممنونم.

shadi khanum
شنبه 13 فروردین 1390, 11:29 صبح
لینک دانلود سورس مشکل داشت!

wanted_boy_2010
شنبه 13 فروردین 1390, 12:17 عصر
منم نتونستم دانلود کنم:گریه:

MasoudAliAkbari
یک شنبه 14 فروردین 1390, 02:42 صبح
لینک را اصلاح کردم.لینک جدید را تست کنید دوستان عزیز.

unknown.unforgiven
یک شنبه 14 فروردین 1390, 09:48 صبح
سلام
دوست عزیز، یه سری نکات رو باید بهت بگم:
1. سرعت لود برنامه خیلی پایینه. باید جوری برنامه نویسی بکنی که تو کامپیوترهای کم سرعت هم برنامت با سرعت معقولی اجرا بشه
2. فکر نکنم قرار دادن 369 تا textbox اون هم به صورت دستی ایده خوبی باشه
3. جای توضیحات در مورد چگونگی بازی داخل منوی help و جای توضیحات در مورد نویسنده برنامه داخل منوی about هست نه وسط صفحه اصلی برنامه
4. از 20 تا منویی که تو برنامت گذاشتی فقط 3 تاش کار میکنن. منوی اضافه جلوه خوبی به برنامه نمیده
الگوریتم برنامت رو هنوز نگاه نکردم، به همین خاطر راجع بهش اظهار نظری نمیکنم
موفق باشی

amirsadeghi
یک شنبه 14 فروردین 1390, 10:13 صبح
البته بسیار ممنون از اینکه این برنامه رو نوشتید و قرار دادید
البته نکاتی که دوستمون گفتن رو هم مد نظر قرار بدین
سعی کنین یکم روی استاندارد سازی برنامه ها بیشتر وقت بزارید. اینجوری تو کارای پیچیده تر کمتر به مشکل بر میخورید
باز هم تشکر

MasoudAliAkbari
یک شنبه 14 فروردین 1390, 15:07 عصر
سلام
دوست عزیز، یه سری نکات رو باید بهت بگم:
1. سرعت لود برنامه خیلی پایینه. باید جوری برنامه نویسی بکنی که تو کامپیوترهای کم سرعت هم برنامت با سرعت معقولی اجرا بشه
2. فکر نکنم قرار دادن 369 تا textbox اون هم به صورت دستی ایده خوبی باشه
3. جای توضیحات در مورد چگونگی بازی داخل منوی help و جای توضیحات در مورد نویسنده برنامه داخل منوی about هست نه وسط صفحه اصلی برنامه
4. از 20 تا منویی که تو برنامت گذاشتی فقط 3 تاش کار میکنن. منوی اضافه جلوه خوبی به برنامه نمیده
الگوریتم برنامت رو هنوز نگاه نکردم، به همین خاطر راجع بهش اظهار نظری نمیکنم
موفق باشی

با تشکر بسیار از شما دوست عزیز به خاطر انتقادهای مفیدتون اما یک سوال از خدمتتون داشتم
موارد 3 و 4 را متوجه شدم اما اگه میشه لطف کنید بگید اگه بخوام سرعت لود برنامم بالا نره چه کار کنم و به جای استفاده از textbox از چی استفاده کنم
آخه من تازه #C را یاد گرفته ام و هنوز حرفه ای نیستم اگه بتونید کمکم کنید ممنون میشم.

unknown.unforgiven
یک شنبه 14 فروردین 1390, 16:29 عصر
اگه بخوام سرعت لود برنامم بالا بره چه کار کنم و به جای استفاده از textbox از چی استفاده کنم
میتونی برنامت رو گرافیکی بکنی و با استفاده از بدست آوردن مختصات مکان کلیک شده روی فرم فقط توی همون خونه یه textbox بسازی. با این کار عملاً تو هر مرحله داری 368 تا textbox از برنامت حذف میکنی

MasoudAliAkbari
یک شنبه 14 فروردین 1390, 23:54 عصر
میتونی برنامت رو گرافیکی بکنی و با استفاده از بدست آوردن مختصات مکان کلیک شده روی فرم فقط توی همون خونه یه textbox بسازی. با این کار عملاً تو هر مرحله داری 368 تا textbox از برنامت حذف میکنی

اگه لطف کنید بیشتر واسم توضیح بدید ممنون میشم مه تو عمل چه کار باید بکنم
اگرم افتخار بدید و آنلاین تو چت واسم توضیح بدید که دیگه حرف نداره
(البته ببخشید اگه توقعم زیاده ها)

amirsadeghi
دوشنبه 15 فروردین 1390, 00:16 صبح
میتونی عکس جدول رو به صورت خالی بکشی و مثلا توی یه picture box بزاریش
بعد مختصات کلیک موس روی تصویر رو بخونی و بعد پردازشش کنی ببینی مربوط به کئوم خونه میشه
بعد تکست باکست رو میاری اونجا نشونش میدی و مقدار وارد شده رو میریزی توی همون خونه آرایه

unknown.unforgiven
دوشنبه 15 فروردین 1390, 19:40 عصر
اگه لطف کنید بیشتر واسم توضیح بدید ممنون میشم مه تو عمل چه کار باید بکنم
اگرم افتخار بدید و آنلاین تو چت واسم توضیح بدید که دیگه حرف نداره
ترجیح میدم همین جا توضیح بدم تا بقیه دوستان هم استفاده بکنن. از اون جایی که مبحث گرافیک و اضافه/حذف کردن کنترل با استفاده از کد مربوط به تاپیک نمیشه و احتمالش هست که پاک بشه، توضیحات مختصر میدم. واسه گرافیکی کردن فرم و رسم خط توی فرم میتونی این برنامه (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=321431#post321431) رو نگاه بکنی. در مورد اضافه یا حذف کردن کنترل هم نمونه کد زیر کمکت میکنه
private void button1_Click(object sender, EventArgs e)
{
foreach (Control cntrl in this.Controls)
{
if (cntrl.Name == "textBox")
{
this.Controls.Remove(cntrl);
return;
}
}
TextBox textBox = new TextBox();
textBox.Name = "textBox";
textBox.Location = new Point(10, 10);
this.Controls.Add(textBox);
}
تو این قطعه کد با کلیک کردن روی Button1 یه textbox ایجاد و با دوباره کلیک کردنش اون textbox حذف میشه

amirsadeghi
سه شنبه 16 فروردین 1390, 01:41 صبح
البته به جای ایجاد میتونی از خاصیت visible و location استفاده کنی
بسیار بسیار راحت تر و بی دردسر تر!

unknown.unforgiven
سه شنبه 16 فروردین 1390, 10:10 صبح
البته به جای ایجاد میتونی از خاصیت visible و location استفاده کنی
بسیار بسیار راحت تر و بی دردسر تر!

اینم یه راهشه ولی باید دقت کنی که بازم تو لود برنامه همه ی اون textbox ها درست میشن فقط نشون داده نمیشن، که باز هم سرعت لود رو میارن پایین

پ.ن: الآن منظور آقای صادقی رو متوجه شدم، حرفشون کاملاً درست و به جاست. روشی که فرمودن روش خوبیه

MasoudAliAkbari
چهارشنبه 17 فروردین 1390, 00:05 صبح
البته به جای ایجاد میتونی از خاصیت visible و location استفاده کنی
بسیار بسیار راحت تر و بی دردسر تر!
منظورتون اینه که فقط بیام خصلت visible مربوط به textbox ها را false کنم و با کلیک روی یک خانه کدی بنویسم که textbox فعال شده و نمایش داده شود؟

unknown.unforgiven
چهارشنبه 17 فروردین 1390, 07:14 صبح
منظورتون اینه که فقط بیام خصلت visible مربوط به textbox ها را false کنم و با کلیک روی یک خانه کدی بنویسم که textbox فعال شده و نمایش داده شود؟
منظورشون اینه که یه دونه textbox تو برنامه بذار، وقتایی که لازمش نداری نشونش نده و وقتایی که لازمش داری تو مکانی (خونه) که احتیاج داری نشونش بده

amirsadeghi
شنبه 20 فروردین 1390, 23:56 عصر
منظورشون اینه که یه دونه textbox تو برنامه بذار، وقتایی که لازمش نداری نشونش نده و وقتایی که لازمش داری تو مکانی (خونه) که احتیاج داری نشونش بده

دقیقا همینطوره!
شما یه دونه تکست میزاری ولی نشونش نمیدی
هر جا کلیک شد همونجا نشونش بده فقط یادت باشه که تشخیص بدی که باید مقدارش رو تو کدوم خونه آرایه بریزی...