متأسفانه هیچکدوم از سه تاشون به درد تولید پازل نخوردن.
اونی که آیکونش سر آدمه، برا حل مسئله در حد سودوکوی خودم کار می کنه و اصلا Generate نداره.
اونی که آیکونش صفحه شطرنجی سیاه و سفیده، ده تا پازل آماده داره که بطور تصادفی یکی رو انتخاب می کنه (برا برنامه نویسش متأسفم).
اونی هم که تو آیکونش اعداد 1 2 3 5 می بینید، مثل برنامه خودم بعضی مواقع پازل درست میشه و بعضی مواقع هم به بن بست می خوره. اگر توجه کرده باشید بعد از تولید پازل اعلام می کنه که برای تولید این پازل چند بار صفحه رو از اول پر کرده.
n complete rebuilds to generate this puzzle
به عدد n توجه کنید که بعضی مواقع به بیش از 800 بار هم میرسه.
من به این امید که الگوریتمش جواب قطعی پس میده نشستم تو 200 خط نوشتمش ولی مال من هم بعضی مواقع تا 800 بار به بن بست میخوره (آب تو هاون کوبیدم).
البته پیشنهاد می کنم دانلود کنید و کد های Generate رو مقایسه کنید. تعجب نکنید، منطقشون یکی هست ودر واقع من از روش اون تقلید کردم.
یکی از برنامه ها رو هم که به زبان C بود نگاه کردم. مشکلش اینه که از ترکیب های تکراری استفاده می کنه.
![[تصویر: C-SuDoKu.JPG]](http://mojtabamalaekeh.persiangig.ir/image/C-SuDoKu.JPG)
فقط یکی دیگه مونده که اونم به زبان C هستش و هنوز اجراش نکردم.
الگوریتم تولید سودوکو باید طوری باشه که با یک بار اجرا جدول در هم ریخته ای تولید کنه نه با سعی و خطا و اجراهای مجدد یا با تولید ترکیب های کلیشه ای.
از آرین جون هم بسیار تشکر می کنم بابت لینک های مفیدی که تو پست 13 گذاشتن.
نقل قول: توصیه میکنم خودت بنویسی
اصلا سخت نیست
کاملا درسته. ولی فکر کنم یه بار باید یاد بگیریم بعد از رو خودمون بنویسیم.
در یک کلام: Solve و Generate با سرعت و کارآیی بالا در اختیار شماست. دانلود کنید.
خودش نوشته است:فقط یکی دیگه مونده که اونم به زبان C هستش و هنوز اجراش نکردم.
اون رو هم روش کار کردم. به VB هم تبدیلش کردم. سرعت Generate ش پایین بود.
Solve ش هم بعضی مواقع به بن بست می خورد.
خودش نوشته است:بعد از امتحانات روش بیشتر کار می کنم که وقتی بجای یک حالت قطعی چندین حالت وجود داره بیاد و یکی یکی اون حالت ها رو تست کنه (یه الگوریتم سرعت پایین )
حالشو ببرید. حتی پازل خالی رو هم Solve می کنه. تازه سرعتش هم خیلی پایین نیست.
دو تا الگوریتم نوشتم که صحت داده های ورودی و منطقی بودن داده های ورودی رو چک می کرد. بعد فکر کردم که برنامم خیلی خوب کار می کنه.
اما به عکس زیر توجه کنید (دو انتخاب برای سه خانه که من بهش میگم خطای منطقی)
![[تصویر: 167m23l.jpg]](http://i25.tinypic.com/167m23l.jpg)
برنامه ای عالیه که همچین مشکلاتی رو هم تشخیص بده.
یادتون باشه که بعضی پازل ها غیر قابل حل هستند. یک نمونه گذاشتم براتون. فایل Indissoluble.sdk رو Load کنید خودتون ببینید.
راستی بعد از کنکور قراره نرم افزار رو به یه بازی تبدیل کنم.
تولید پازل با چند درجه سختی (Difficulty Level) با امکان ساختن پازل به صورت دستی (Manual).
لطفا نظر یادتون نره.

یادم رفت: Generate رو حتما از نظر سرعت و تلاش مجدد، امتحان کنید بعد نظرتون رو بگید.
واقعا برام جالبه! آمار دانلود فقط یک بار. به هر حال نسخه جدید رو هم آپ می کنم.
الگوریتم حل سودوکو سریعتر از این سراغ داشتین معرفی کنید.
اینبار دیگه سرعت حل پازل خیلی بالاست. اما هنوز روش منطقی برای تولید جدول سودوکو پیدا نکردم. با اینکه 99% اوقات با بار اول به نتیجه میرسه ولی هنوز اونی نیست که باید باشه.
جالب تر اینه که اون یه نفر هم من بودم که همینطوری گرفتمش .
هیچی هم ازش سر در نیاوردم .
سلام
ببخشید می دونم خیلی وقته از که زمان آخرین پست گذشته.
اما می خواستم بدونم generate یعنی چی؟
من با سی++ دو ترم پیش یک برنامه نوشتم که اولا خیلی سریع به جواب می رسید دوما یه چیزی حدود 200 تا نمونه سودوکو (از طریق فایل) رو حدود 16 میلی ثانیه حل کرد.
1000 تا رو حدود 100 میلی حل می کرد.
حالا می خواستم بدونم سریع تر از این هم هست یا خیر؟
اگه هست چه روشی رفته؟
(۲۳-مهر-۱۳۹۰, ۲۳:۲۳:۴۰)mehrangol نوشته است: [ -> ]سلام
ببخشید می دونم خیلی وقته از که زمان آخرین پست گذشته.
اما می خواستم بدونم generate یعنی چی؟
من با سی++ دو ترم پیش یک برنامه نوشتم که اولا خیلی سریع به جواب می رسید دوما یه چیزی حدود 200 تا نمونه سودوکو (از طریق فایل) رو حدود 16 میلی ثانیه حل کرد.
1000 تا رو حدود 100 میلی حل می کرد.
حالا می خواستم بدونم سریع تر از این هم هست یا خیر؟
اگه هست چه روشی رفته؟
سلام به همه. دوست عزیز خوب بود برنامه ای که نوشتین رو اپلود میکردین تا ما هم با مدل خودمون مقایسه کنیم. من هم این برنامه رو نوشتم. جدول 9*9 و 16*16 رو با سرعت قابل توجهی حل میکنه ولی برای حل 25*25 باید یکم تغییرش بدم تا سریع تر بشه. فایلشو گذاشتم هرکی خواست دانلود کنه
http://www.4shared.com/file/RrjrJRcS/Rez...odoko.html